| |
|
一、功能描述
undefined
undefined
undefined undefined本工程主要演示:GPS功能、路径分析功能和导航功能使用。
GPS功能:打开GPS、关闭GPS、获取GPS坐标数据、获取GPS卫星状态数据、图上显示GPS定位点
路径分析功能:扩展GPS分析模型、制定出发点、目的地然后进行分析、把分析结果显示出来
导航功能:提供模拟导航和真实导航两种功能,根据导航结果提实导航信息。
undefined
undefined
undefined undefined |
| |
|
二、类及方法:
undefined
undefined
undefined undefined
|
用到的类 |
方法 |
| CSeWorkSpace |
Close、GetDataSourceAt、GetDataSourceCount、GetDataSourceByAlias、GetMaps、IsOpen、Open |
| CSeMapWnd |
AddLayer、Close、GetAction、GetLayer、GetLayerAt、GetLayerCount、OnDraw
OnInitialUpdate、OnLButtonDown、OnLButtonUp、OpenMap、Refresh、RefreshTrackingLayer 、SetAction、ViewEntire |
| CSeDataSource |
GetAlias、GetDatasetCount、GetDataset、GetDatasetAt |
| CSeDataset |
GetName、GetType |
| CSeDatasetVector |
FindNearestNode 、GetChildDataset、QueryByIDs |
| CSeMaps |
AddMap、GetMapCount、GetMap、GetMapAt 、GetMapCount |
| CSeRecordset |
GetGeometry、IsEOF、 MoveFirst、MoveNext、ReleaseRecordset |
| CSeDrawParameters |
ClientToMap |
| CSePathAnalyst CSePathAnalystEx |
Analyse、GetDatasetNetwork、SetDatasetNetwork、GetDistance |
| CSeTrackingLayer |
AddEvent、GetCount 、ReleaseAll、SetStyle |
| CSePathNavigator |
Navigate、GetRouteInfo |
undefined
undefined
undefined undefined |
| |
|
三、说明及约定
undefined
undefined
undefined undefined
1、约定
本工程假定阅读者已经阅读过 eSuperMap 快速入门,已经掌握如何配置开发环境,能独立使用eSuperMap5类库开发功能比较简单的程序。 |
2、说明
本工程使用的测试数据为 …\eSuperMap 5.0\SampleData\Beijing\ 目录下的BeijingRoadnet.pmw / BeijingRoadnet.pmr。
本工程俺功能分为五大块,相应的也有五项菜单组,具体如下: |
| 文件菜单组 |
地图操作菜单组 |
GPS操作菜单组 |
路径分析菜单组 |
导航菜单组 |
| 打开 |
放大 |
启动 |
选择出发地 |
模拟导航 |
| 关闭 |
缩小 |
关闭 |
选择目的地 |
实导航 |
| 退出 |
漫游 |
定位数据 |
最短路径分析 |
|
| |
全幅显示 |
星历数据 |
最快路径分析 |
|
| |
刷新 |
图示定位点 |
清除路径 |
|
|
其中文件菜单组和地图操作菜单组在快速入门中已经说明清楚,在这里就不重复说明。 |
undefined
undefined
undefined undefined |
| |
|
四、实现过程
undefined
undefined
undefined undefined
1. GPS功能
A.在 CarNaviView.h 文件头中声明 GPS接受器实例:
B.在 “启动” 对应的函数中,以指定的端口、波特率等参数打开GPS设备
C.在 “定位数据” 对应的函数中, 从 GPS接受器 读取定位数据, 并用一个字符串来表示定位信息
D.在 “星历数据” 对应的函数中, 从 GPS接受器 读取星历数据, 并用一个字符串来表示定位信息
E.在 “图示定位点” 对应的函数中, 从 GPS接受器 读取定位数据, 并在地图的相应位置显示。
F.在 “关闭” 对应的函数中, 断开 GPS接受器。
详情请参见具体代码。 |
2. 路径分析
模型约定:
网络图层中的 SMLENGTH作为路段长度字段,双精度浮点型;
SMFNODE 作为路段的起始节点,长整型;
SMTNODE 作为路段的终止节点,长整型;
Code 作为路段等级,长整型;
Direction 作为路段行使方向,长整型;
具体约定请见 CMyPathAnalyst 的头文件。
A.从CSePathAnalyst 派生出一个类, 命名为 CMyPathAnalyst,根据规则重载 GetDistance方法:
B.在 CCarNaviView.h 头文件声明一些路径分析相关的变量和方法;
C.在 CCarNaviView.cpp 文件实现路径分析相关的方法;
D.选择 “出发地” 和 “目的地”
E.进行 “最短路径分析” 或者 “最快路径分析”
F.以某种颜色显示分析出来的道路线。
详情请参见具体代码。 |
3. 导航功能
导航约定:必须先进行路径分析,又了分析结果后才能进行模拟导航。如果是进行真实导航,还必须先启动GPS设备。
A.在 CCarNaviView.h 头文件声明一些导航相关的变量和方法;
B.在 CCarNaviView.cpp 文件中实现导航相关的方法;
C.进行 “模拟导航” 或者 “真实导航” 进行导航;
D.导航过程在地图窗口上以某种方式显示车辆当前所在的位置;
E.导航过程以字符串的形式在地图窗口上显示导航信息;
F.导航过程如果偏离航道了,则自动重新进行路径分析,继续导航。
详情请参见具体代码。 |
|