掌握了文件之间的关系之后,可以用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格式地图显示相关推荐

  1. 车载DMI linux系统,基于嵌入式的CTCS3级车载DMI系统的设计与实现

    基于嵌入式的CTCS3级车载DMI系统的设计与实现 本文根据CTCS3级列控系统仿真实验室的实际情况,设计了一款基于嵌入式Linux操作系统的模拟CTCS3级车载DMI系统.它通过无线通信实现了车载与 ...

  2. Linux 手势识别,基于嵌入式Linux的手势识别技术研究

    摘要: 随着科学技术的发展,手势识别技术也得到了很大的提升,基于视觉的手势识别逐渐成为人机交互技术中的研究热点.它应用于各种控制领域,如智能控制,机械手以及手语识别等.目前,嵌入式技术和相关产品也早已 ...

  3. 嵌入式linux编码器,基于嵌入式平台的视频编码器的实现-嵌入式系统-与非网

    引言 H.264是由ISO(国际标准化组织)/IEC(国际电工协会)和ITU(国际电信标准化部门)合作制定的新一代视频编码标准,目前正处于应用开发阶段.与以往的视频编码标准相比,h.264具有更高的压 ...

  4. gsm基于linux程序,基于嵌入式Linux下GSM模块的短信收发系统设计

    摘要:移动通信中的短消息业务以其方便.可靠和价廉得到了广泛应用,本文在嵌入式Linux系统中,通过西门子MC35模块,实现了短信收发系统,该系统采用PDU短信模式,能支持中文短信.程序设计采用异步事件 ...

  5. 嵌入式linux dlna,基于嵌入式Linux的家用蓝光播放机上DLNA功能的实现

    基于嵌入式Linux的家用蓝光播放机上DLNA功能的实现 随着网络的普及,各种支持上网和支持联网功能的家用电器设备的推广,人们迫切地寻求使其家庭网络的各种设备互通互联的方式,从而实现轻松的数字媒体共享 ...

  6. 嵌入式linux毕业设计,基于嵌入式Linux平台的智能小区终端系统设计与实现

    内容简介: 硕士学位论文 基于嵌入式Linux平台的智能小区终端系统设计与实现,正文共69页. [摘要] 智能化小区通过采用智能终端系统,为住户提供了一种更加安全.舒适.方便.快捷和开放的智能化.信息 ...

  7. 闸机安装linux系统,基于嵌入式Linux的闸机监控系统设计

    摘要: 闸机监控系统,因其具备安全防范和人员管理功能,而被广泛应用于工厂自动化.安全保卫.物流管理等行业.同时,随着射频身份识别(RFID)技术和嵌入式技术的广泛应用,将三者结合使用,必会极大地提高闸 ...

  8. 嵌入式arm linux产品,基于ARM——Linux的嵌入式产品平台构建

    摘要: 随着计算机技术的发展,嵌入式系统已成为计算机领域一个重要组成部分,并成为近年来新兴的研究热点.ARM7TDMI是一种高效,低功耗的RISC处理器,以该内核为核心的 LPC2210 是一款基于以 ...

  9. 面向多媒体 linux 版本,基于MX Linux 的 AV Linux 新版发布,此AV非彼AV

    原标题:基于MX Linux 的 AV Linux 新版发布,此AV非彼AV 作者:Linux迷 链接:https://www.linuxmi.com/av-linux-2020-11-23-mx-l ...

  10. 嵌入式基于linux电机控制器,基于嵌入式Linux的移动机器人控制系统

    使用select机制监控是否语音识别结果,在超出等待时间后,会退出等待并重新初始化语音模块LD3320,释放公共资源,这样也使得系统能够及时响应LD3320的MP3播放功能,避免了在长时间没有语音识别 ...

最新文章

  1. 当代研究生应当掌握的5种Pytorch并行训练方法(单机多卡)
  2. 南京廖华计算机二级考试答案,计算机二级习题答案
  3. RocketMQ 使用及常见问题
  4. 分布式理论CAP定理
  5. SqlMap自动化SQL注入测试工具简绍
  6. sigar-amd64-linux.so,sigar,no libsigar-amd64-linux.so in java.library.path
  7. USACO stamps
  8. 通过adb查看当前页面中显示的窗口Activity名称
  9. MYSQL 无重复插入数据更新语法 sql一句话使insert时若主键重复则更新
  10. Linux 中软件使用及常见问题 QA
  11. win10系统引导丢失,无法进入的解决办法
  12. 少儿编程软件Scratch下载(Mac、Windows皆可)
  13. 湖南省中职计算机应用教资面试流程?
  14. 2018百度之星程序设计大赛 - 资格赛 三原色图 problem 1006
  15. 经典推荐:盛大架构师周爱民回顾职业历程,分享十项建议
  16. 我的世界修改服务器视距,教程/测量距离 - Minecraft Wiki,最详细的官方我的世界百科...
  17. 山东超级计算机神威,世界最快超级计算机“神威·太湖之光”获得100多项应用成果...
  18. 【MATLAB】绘制阶梯图、枝干图
  19. 云课堂计算机测试答案,2020智慧职教云课堂计算机应用答案完整满分课后作业答案...
  20. 几种光纤接口(ST,SC,LC,FC)

热门文章

  1. android studio 工程rebuild没反应,Andriod Studio Clear Project或Rebuild Project出错
  2. struts如何使用命名空间_Python基础篇:作用域和命名空间
  3. pb9.0.3 8836补丁包_英语单数/复数名词傻傻分不清楚?3种不规则形态一次性搞懂!...
  4. 电脑c盘空间不足怎么清理_C盘空间不足怎么办?如何给C盘扩容?
  5. 求和函数计算机语言,在 Excel 中,计算求和的函数是 ____。
  6. 把数据对象转成字符串_R语言处理环境监测数据(2):时间数据处理
  7. 解决idea使用jdbc连接数据库失败的方法(针对驱动导入失败)
  8. 05-2_部署 kube-apiserver 集群
  9. MyBatis(九)------MyBatis的优缺点知多少
  10. 谈谈对于企业级系统架构的理解