基于Google Earth的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文件。
3.3.3 串口通讯模块分析
图5 串口通讯模块
在这个过程中,首先GPS设备不断的接受来至于各个卫星的无线信号,通过它本身的固件计算得出当前的坐标等相关地理信息。然后与计算机进行蓝牙通讯传送这些地理信息,而在计算机中,操作系统底层把蓝牙通讯模拟成基本的串口通讯,供应用程序调用。我们的GPS导航系统,自动识别当前计算机中的被模拟为串口的端口号,并开启线程,不断的读取来至于GPS设备的地理信息。这里并不是所有的地理信息在本系统都是有用的,通过程序过滤,提取出当前坐标点经纬度、速度、方向等几个基本的数据信息。把这些信息存储到结构体中,并通过与之前的坐标点的累加,可以构造出一连串的坐标,从而构成行驶轨迹。
3.3.4 WEB服务器模块分析
WEB服务器模块中首先开启HTTP服务线程, 等待来至于GoogleEarth的Network Link的请求,结合之前更新在结构体中的坐标信息,生成用来改变Google Earth显示的KML文件,并响应Google Earth.这里有三个KML文件,其中Network Link中的URL直接指向http://127.0.0.1:5080/index.kml.这里的5080是WEB服务器注册的端口号。
3.3.5 预定轨迹导航模块分析
图6 预定轨迹导航及越界警报模块
预定轨迹导航及越界警报模块中,首先在导航之前要加载预定轨迹。
为了便于绘制和存储,我们就采用Google Earth中对轨迹的存储的KML轨迹文件作为预定轨迹的载体。在加载完预定轨迹之后就可以开启GPS导航,串口通讯模块不断的读取当前坐标信息,而系统专门启动一个线程定时的去检测当前坐标与预定轨迹之间的距离,当超出设置的预定轨迹的范围的时候,即偏离预定轨迹时,启动警报系统,发出声音警报,提醒用户当前坐标已经偏离预定的轨迹范围了。若是没有偏离预定轨迹,则线程睡眠一段时间,再次检测当前位置与预定轨迹之间的距离,开始下一轮的检测与警报。
Google Earth GPS HTTP服务线程 相关文章:
- 可以应对移动电话的设计挑战的GPS导航系统(01-11)
- 互联网史上最重要50人榜单出炉 马云上榜(02-06)
- BO为商业智能加入文本分析能力(05-11)
- Google Earth与Second life:虚拟世界的真实(07-13)
- Google退出中国?新病毒散布谣言力挺百度(07-17)
- 六大国际公司投资3亿美元合建连接美日海底光缆(01-28)