嵌入式linux地图,基于嵌入式Linux的MapInfo格式地图显示

本文介绍了在嵌入式Linux系统中,如何利用C/C++解析MapInfo的.TAB和.MIF文件,并结合MiniGUI库进行地图绘制。通过高斯投影变换和MiniGUI的绘图函数,实现了地图的缩放、漫游和测距功能。此外,还讨论了如何扩展功能,如图元选择、特殊标注显示和农田数据集成。该方案为手持设备提供了一个低成本且稳定的MapInfo地图显示平台。
摘要由CSDN通过智能技术生成

掌握了文件之间的关系之后,可以用C或C++语言编程实现对.TAB或.MIF文件的读取。为了存储对应地理图元的记录的信息,本文构造了如下的数据结构,如图2所示:

其中NTz结构指明该文件包含多少个字段,ONETz指明该字段包含多少个部分,kind指明改部分是点、线还是标注,ONEPART又给出了各个部分包含的坐标点的数量和位置信息。接下来在MiniGUI中主要对这个ONETz结构进行处理。

69ba3043e24a9b341b9b861f5899f74b.gif

图 2  存储地理图元数据结构

4. 地图的绘制

4.1 基本的点、线、多边形的绘制

在把将上一步得到的坐标和坐标系的定义通过高斯投影变换[5],再将得到的坐标经过变换到MiniGUI的显示窗口,在本文中即平台的LCD的某个区域上,按照MiniGUI中定义的POINT类型,最后在MiniGUI中的MSG_PAINT消息中进行地图的绘制。

进入MiniGUI的绘制窗口前,首先完成对MapInfo格式文件的解析,得到上述的数据结构。进入窗口后,根据不同的地图元数据中指示的类型特点,如点、线、面、文本,调用不同的MiniGUI的绘图函数,如PollyLineTo、FillPolygon、 TextOut、Circle等函数在绘制区进行图元的绘制。增加坐标的变换和比例尺的分析后,可实现放大,缩小,漫游,测距功能。

4.2    功能扩展

在基本的绘制完成后࿰

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值