摘 要: 随着交通的便利,自驾车出门游玩已经成为常事,人们对导航的需求也日渐强烈。市面上的导航以线框图的方式为主,而这种方式比较适用于城市内部的导航,当有需要去郊区或者山地野外等活动时这种方式就显得力不从心。而基于Google Earth的GPS导航能有效地满足对这些需求。在Google Earth免费版本上,利用Google Earth的KML,实现GPS导航和轨迹记录。系统由三个部分组成:GPS接口,实现与GPS模块之间的通讯;通过内嵌Web服务器实现与GoogleEarth之间的通讯;基于预定轨迹的导航功能,实现偏离预定轨迹时的报警。
1 绪论
随着科技的发展车辆的普及,人们对GPS实时导航的需求变的越来越突出。随之出现了,许多GPS实时导航系统,这其中有软硬件集成一体的GPS导航设备,也有基于其他GPS设备的软件系统。而所有的这些GPS导航几乎都是以线框图为主。线框图的方式比较适用于城市内部的导航,当有需要去郊区或者山地野外去探险等活动时,这种方式就显得力不从心了。
因为这些地方的地图信息少,图示比较粗糙,其次,它提供的时线框的方式去描述地理,显然不能很深刻的反应该地的地貌特征,比如海拔,山野等。而且为了及时更新维护这些线框图带来的代价也时很大的。而这些需求的信息可以在卫星地图上找到。
与此同时Google公司在近些年出来的Google Earth软件,是一款十分优秀的卫星地图服务软件,它免费提供的卫星地图精度很高。大部分地区的地区都比较清晰,特别是各个城市的照片,可以清晰的看到马路上的车辆。在中国卫星图像里,一线城市以2009、2010年拍摄的为主,二、三线城市以05、06年的库存图片为主,能较好地满足导航的要求。
在Google Earth Plus以上的收费版本中还提供了GPS接口,能实时地显示当前位置的地图和移动轨迹。而在免费版本中不带这个功能。因此,设计一个基于Google Earth的GPS导航系统也是很有实际意义的。通过该系统,完成对Google Earth软件的控制,从而达到基于GPS的实物图导航的目的。
此外近期, 基于Google Earth的开发已经很多了, 例如, 利用Google官方提供的3D图形绘制工具,绘制各种建筑或者树木等物品,可以上传摆置在Google Earth上面作为产品展出,也可以设计各种树木摆放到山林的平面卫星照片上,从而勾勒出具有3D特性的卫星地图,便于防止森林火灾抢救等应用。
2 需求分析
2.1 功能需求
本系统由如下的四部分构成:
1)GPS导航系统与GPS设备的通讯模块。
2)WEB服务器,接受来至于Google Earth的Network Link的请求,响应当前的坐标及轨迹信息。
3)预定轨迹的导航,根据预定轨迹对位置进行检测,实现偏离预定轨迹时的报警功能。
4)提供轨迹管理和与其他GPS数据交换的工具。
2.2 数据流分析
如图1,在整个系统中,数据的流动比较的重要,各个功能之间的数据信息的交互都是数据的流动。GPS硬件设备是个数据源,不停的接受来自卫星的信号,通过计算,组织成有格式的数据流传递到本系统,而本系统对这些GPS信息进行读取,并与系统内部的其他的功能配合完成一系列功能。由于系统要控制Google Earth来完成卫星地图的导航功能,所以必须要有一个可以控制Google Earth软件的方式来完成这个任务。这个功能需要把之前从GPS硬件设备读取的信息以某种方式来控制Google Earth。此外,系统的轨迹管理功能也需要与其他功能配合才能完成一系列的管理功能。
图1 数据流图
3 系统设计
3.1 系统模型
图2 系统模型图
完成GPS导航的整个系统的模型如图2所示。这其中包含了很多外部硬件设备和软件系统,而我们的GPS导航系统是安装在用户的PC机或笔记本电脑中的。
首先GPS设备不断的接受来至于各个卫星的无线信号,通过它本身的固件计算得出当前的坐标等相关地理信息。然后与计算机进行蓝牙通讯传送这些地理信息,而在计算机中,操作系统底层把蓝牙通讯模拟成基本的串口通讯,供应用程序调用。本GPS导航系统,自动识别当前计算机中的被模拟为串口的端口号,并不断的读取来至于GPS设备的地理信息。再通过Google Earth控制模块,控制Google Earth的显示,若当前的地图信息还未加载,Google Earth会根据当前的网络情况,连接Google Earth服务器获取对应坐标视角的地图信息。用户一般都是在驾车行驶的时候需要这种导航,所以一般可能的话,可以通过笔记本无线网络连接Google Earth服务器,正如图2所示。