概述
掌握了文件之间的关系之后,可以用C或C++语言编程实现对.TAB或.MIF文件的读取。为了存储对应地理图元的记录的信息,本文构造了如下的数据结构,如图2所示:
其中NTz结构指明该文件包含多少个字段,ONETz指明该字段包含多少个部分,kind指明改部分是点、线还是标注,ONEPART又给出了各个部分包含的坐标点的数量和位置信息。接下来在MiniGUI中主要对这个ONETz结构进行处理。
图 2 存储地理图元数据结构
4. 地图的绘制
4.1 基本的点、线、多边形的绘制
在把将上一步得到的坐标和坐标系的定义通过高斯投影变换[5],再将得到的坐标经过变换到MiniGUI的显示窗口,在本文中即平台的LCD的某个区域上,按照MiniGUI中定义的POINT类型,最后在MiniGUI中的MSG_PAINT消息中进行地图的绘制。
进入MiniGUI的绘制窗口前,首先完成对MapInfo格式文件的解析,得到上述的数据结构。进入窗口后,根据不同的地图元数据中指示的类型特点,如点、线、面、文本,调用不同的MiniGUI的绘图函数,如PollyLineTo、FillPolygon、 TextOut、Circle等函数在绘制区进行图元的绘制。增加坐标的变换和比例尺的分析后,可实现放大,缩小,漫游,测距功能。
4.2 功能扩展
在基本的绘制完成后,还可以根据之前得到的数据结构和MiniGUI库函数的API扩展其他的功能。
选取图元的功能可以通过截取鼠标键弹起的信息,得到当前的屏幕位置信息,如果将该位置与线元素的距离比较,如果小于一定的像素阈值,则认为选中,并显示提示信息;如果是选取面,可以用是否在多边形内部来判断是否被选中。
另外,对一些特殊的标注点的图形显示,如医院、学校,可以采用加载bmp格式的图标在显示区标注。
笔者的平台要实时的通过串口接受GPS定位坐标和农田采集的信息,通过一个按钮控制一个线程的开关,该线程读取串口数据记录到文件中。该线程和MiniGUI之间可采用信号量同步,最终根据属性信息对农田区,即MiniGUI的API对多边形区域进行着色,产生某种属性的分布图。最后还可以将所有农田数据整合,得到预测的产量等分布图等等。
5. 结束语
本文提供了一种面向手持设备的工具嵌入式地图显示的具体方案,通过对MiniGUI的移植和对MapInfo格式文件的分析,达到最终地图的显示。采用北京市二环以内的MapInfo地图进行显示(含1000个左右的各种图元),将嵌入式平台显示结果(图3)和PC机上的 MapInfo软件显示的结果(图4)进行对比,显示效果良好,这种方案支持漫游、查询、地图匹配等功能,并可利用Linux和MiniGUI的API进行功能扩展,在手持平台上很好的满足一般的地图显示的要求,为今后地图匹配,农田数据采集打下了基础。
本文由北京市教委基金委教育委员会发展计划项目支持 项目名称:CANOPEN现场总线与电动汽车综合监控系统关键技术研究项目编号:KZ20041000501
文章创新点:本文提供了一种面向手持设备的工具嵌入式地图显示的具体方案--采用Linux和MiniGUI开发,在保证系统稳定性的同时,减小系统大小,保持稳定性,最终形成一个低成本的但能支持主流MapInfo格式地图文件的地图显示平台,平台在小型地图中应用良好,平台用途广泛,可扩展功能,满足一些对地图基本操作的应用,为农田信息采集或其它进一步功能的实现打下了基础。
参考文献:
[1] 三味工作室 MapInfo6.0 应用开发指南[M] 北京人民邮电出版社 2001年
[2] 刘瑜,张晶等 地理信息系统——原理、方法和应用[M] 北京 科学出版社 2003
[3] 赵森 地理坐标与直角坐标相互转换的算法[J] 火力与指挥控制 2001年12月
[4] 胡伍生,高成发 GPS测量原理及其应用[M] 北京 人民交通出版社 2002年
[5] 邓玉娇 高斯投影与经纬度投影VC++ 编程转换——以MIF 文件中投影转换为例[J]中国地质大学计算机应用研究 2003年
[6] 陈讽,毛洋林,潘志浩 基于嵌入式Linux的图形界面显示系统的设计[J] 微计算机信息 2004 20卷 01期 76页
[1] [2]
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。
最后
以上就是甜蜜电灯胆为你收集整理的嵌入式linux地图,基于嵌入式Linux的MapInfo格式地图显示的全部内容,希望文章能够帮你解决嵌入式linux地图,基于嵌入式Linux的MapInfo格式地图显示所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复