1 绪论
Google公司在近些年出来的Google Earth软件,是一款十分优秀的卫星地图服务软件,它免费提供的卫星地图精度很高。大部分地区的地区都比较清晰,特别是各个城市的照片,可以清晰的看到马路上的车辆。在中国卫星图像里,一线城市以2009、2010年拍摄的为主,二、三线城市以05、06年的库存图片为主,能较好地满足导航的要求。
在Google Earth Plus以上的收费版本中还提供了GPS接口,能实时地显示当前位置的地图和移动轨迹。而在免费版本中不带这个功能。因此,设计一个基于Google Earth的GPS导航系统也是很有实际意义的。通过该系统,完成对Google Earth软件的控制,从而达到基于GPS的实物图导航的目的。
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所示。
3.2 功能模块划分
整个系统由四大模块组成。分别为GPS设备通讯模块,WEB服务器模块,预定轨迹导航模块,用户图形界面。
1)GPS设备的通讯模块根据 *** 作系统底层对蓝牙的模拟串口,读取GPS设备发送过来的地理信息,并过滤无用信息,动态的更新到自定义的数据结构中去。
2)WEB服务器模块接受来至于Google Earth的Network Link的请求,结合之前更新在结构体中的坐标信息,生成用来改变Google Earth显示的KML文件,并响应Google Earth.
3)预定轨迹导航模块先加载KML文件,获得预定的轨迹信息。启动导航功能之后,实时地根据预定轨迹对当前位置检测,并在当前位置偏离预定轨迹时,提供报警功能。
4)用户图形界面为了便于用户的快捷使用,本系统提供类似与金山快译的工具条按钮组,所有的功能全都由工具条上的几个形象的按钮完成。十分便利。
3.3 核心模块分析
3.3.1 GPS模块
图3 GPS模块分析
这里GPS模块的输入是来至于GPS硬件设备发送过来的地理信息,而它的输出是对这些地理信息解析提取出来的坐标和轨迹信息,传递给GoogleEarth控制模块。内部完成串口数据的接受与坐标轨迹的提取。
3.3.2 Google Earth控制模块
图4 Google Earth控制模块分析
这个Google Earth控制模块,有两个输入,一个是外部输入,就是来自于Google Earth的请求,一个是用于构造响应这个请求时用到的坐标与轨迹信息,这些信息来至于GPS模块,对外输出就是响应Google Earth的KML文件。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)