既然不是写论文,前言和总结就省了,大家肯定清楚这是干什么的。
GPS通过串口输出一些定位数据,每一行是一个NMEA语句,每一句开头是$,结尾是换行符
我们盯着这一句就行了:
推荐定位信息(GPRMC)
$GPRMC,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,<10>,<11>,<12>*hh
<1> UTC时间,hhmmss.sss(时分秒.毫秒)格式
<2> 定位状态,A=有效定位,V=无效定位
<3> 纬度XXXXXXXmm(度分)格式(前面的0也将被传输) <4> 纬度半球N(北半球)或S(南半球)
<5> 经度XXXXXXXXmm(度分)格式(前面的0也将被传输) <6> 经度半球E(东经)或W(西经)
<7> 地面速率(000.0~999.9节,前面的0也将被传输)
<8> 地面航向(000.0~359.9度,以正北为参考基准,前面的0也将被传输)
<9> UTC日期,ddmmyy(日月年)格式
<10> 磁偏角(000.0~180.0度,前面的0也将被传输)
<11> 磁偏角方向,E(东)或W(西)
<12> 模式指示(仅NMEA0183 3.00版本输出,A=自主定位,D=差分,E=估算,N=数据无效)
提取数据很容易,问题是,如何显示到google maps上面?
来看看google maps api
XXXXXXXXXXXXXXXXXXXXXXXXXXXXX/maps/documentation/javascript/reference呃,似乎太复杂了
那就简单一点,从现成的代码讲起。
请复制以下代码,填入记事本中,保存为XXXXXXXXXXml,然后用浏览器打开它<!DOCTYPE html><html> <head> <title>KML Viewer - Driven by Google Maps</title> <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no"> <meta charset="utf-8"> <style> html, body, #map_canvas { margin: 0; padding: 0; height: 100%; } </style> <script src="XXXXXXXXXXXXXXXXXXXXXXXXXXX/maps/api/js?v=3.exp&sensor=false"></script> <script> function initialize() { var mapOptions = { zoom: 11, center: new XXXXXXXXXXXXXXtLng(22.573601,113.917435), mapTypeId: XXXXXXXXXXXXXXXXXXXXXXXXADMAP } var map = new XXXXXXXXXXXXXXp(XXXXXXXXXXXtElementById('map_canvas'), mapOptions); var poslist = [ ['A',113.917435,22.573601], ['B',113.987335,22.549183], ['C',114.058334,22.516199], ['D',114.058281,22.516199], ['E',114.098732,22.538082], ['F',114.110817,22.535583], ['G',114.062019,22.532650], ['H',114.059013,22.525883], ['I',114.058968,22.525833] ]; var posrows; for(i=0;i<poslist.length;i++) { var mypos = new XXXXXXXXXXXXXXtLng(poslist[i][2],poslist[i][1]); var marker = new XXXXXXXXXXXXXXrker({ position: mypos, map: map, title: poslist[i][0] }); } } </script> </head> <body onload="initialize()"> <div id="map_canvas"></div> </body></html>估计到这里,大家都知道关键所在了var poslist = [ ['A',113.917435,22.573601], ['B',113.987335,22.549183], ['C',114.058334,22.516199], ['D',114.058281,22.516199],
坐标填进去,位置显示出来
200字以内,仅用于支线交流,主线讨论请采用回复功能。