• 易迪拓培训,专注于微波、射频、天线设计工程师的培养
首页 > 无线通信 > 技术文章 > 基于MaPX的校园导航系统设计

基于MaPX的校园导航系统设计

录入:edatop.com     点击:

2.2 电子地图基本功能实现

电子地图基本功能包括选择、标注、缩小、放大、漫游等。采用MapX可以很容易的实现这些功能,下面以缩小功能为例,简单介绍一下程序里如何实现地图缩小。
    添加一个新的Toolbar资源。输人标题"IDR_TOOL_BARMAP"。在"IDR_TOOLBARMAP"下添加按钮,在其上绘制缩小图形来表示"缩小",其ID为ID_MAP_TOOL_ZOOMOUT。打开类向导.选择视图类CMapXView.为菜单项ID_MAP_TOOL_ZOOMOUT添加COOMMAND消息映射函数OnMapToolZoomout(),并编辑代码如下:

编译运行程序.点击缩小按钮,在电子地图上单击鼠标就会实现电子地图的缩小功能。可用相同方法实现其他标准工具的功能。

2.3 GPS数据的接收和处理

此模块完成了从串口读取数据,并对数据按照GPS所遵循的NMEA0183协议进行处理,得出经纬度坐标等信息的功能。此模块包括两个部分串口通信和数据处理。

由于GPS模块每一秒更新一次数据,当上空有4颗卫星时串口会源源不断的接收到定位数据.为了在对串口实时监控的同时还可以在前台进行一些其他的操作。采用基于多线程的CSerialPort类的串口通信方法可以很好的解决这一问题。

此模块的工作流程可分为以下几步:(1)利用CSerial-Port的InitPort()初始化串口配置。(2)如果配置成功用StartMonitoring()打开串口并创建监视串口的线程。(3)在相应的类里添加响应WM_COMM_RXCHAR消息的消息处理函数,并且在其中做接收字符处理。(4)添加定时器.在OnTimer中处理NMEA 0183格式的GPS定位数据.将提取到的纬度数据保存到相应类上的成员变量中。

2.4 目标定位和播报

该模块从GPS数据处理模块中得到经纬度坐标等信息,并且把它赋值给目标图元,通过定时器更新图元位置从而完成实时定位。

由于程序实时接收定位数据来更新图元的位置.就需要程序频繁的刷新整个图层,就会影响效率。动态图层的目的是为了加速图层的刷新率从而提高效率,设置动态图层后。每次刷新都只刷新动态图层,这样就很好的解决了这个问题。示例代码如下:

程序最后运行界面如下:

3 结束语

本文在GIS二次开发日新月益的背景下.结合校园实际特点开发了基于MapX的校园导航系统。经过调试,程序运行稳定,实现了电子地图放大、缩小、漫游等功能。程序由Mi-crosoft Visual C++6.0编译、在Windows XP下运行通过。

作者:冯正 中北大学   来源:山西电子技术

上一篇:基于GSM、GPS及CAN总线的列车行程测量系统的研究
下一篇:集成多媒体功能的GPS方案

手机天线设计培训教程详情>>

手机天线设计培训教程 国内最全面、系统、专业的手机天线设计培训课程,没有之一;是您学习手机天线设计的最佳选择...【More..

射频和天线工程师培训课程详情>>

  网站地图