日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

EC20定位模块+百度地图API使用踩坑

發(fā)布時(shí)間:2023/12/20 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 EC20定位模块+百度地图API使用踩坑 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

1 模塊獲得定位數(shù)據(jù)

? ? 模塊裝上gps天線,使用usb線連接電腦。安裝模塊usb驅(qū)動(dòng),成功后打開(kāi)設(shè)備管理器,可以看見(jiàn)模塊虛擬了3個(gè)串口。主要使用到AT和NMEA兩個(gè)串口(本設(shè)備為COM10和COM9)。

? ? ?使用串口調(diào)試助手連接COM10,波特率115200,發(fā)送指令:AT+QGPS=1(回車(chē)),返回OK打開(kāi)定位。然后打開(kāi)COM9,可以看見(jiàn)模塊發(fā)送上來(lái)的定位數(shù)據(jù),需要等一段時(shí)間才能得到穩(wěn)定的數(shù)據(jù)。也可以返回COM10,發(fā)送指令:AT+QGPSLOC?(回車(chē)),模塊會(huì)返回一條定位數(shù)據(jù):

+QGPSLOC:151219.0,2934.525787N,11413.135641E,0.7,188.0,2,208.25,0.0,0.0,050520,07

參考文章:EC20Demo。

注:本文所用數(shù)據(jù)是以百度給出例子生成的假數(shù)據(jù),僅作示例使用。

? ? 上述數(shù)據(jù)有效坐標(biāo)信息為??2934.525787N,11413.135641E,這個(gè)為NMEA的坐標(biāo)表示形式,需要轉(zhuǎn)換為標(biāo)準(zhǔn)格式,轉(zhuǎn)換代碼如下:

/** NMEA to 國(guó)際WGS-84 nm_lat:NMEA緯度,nm_lon:NMEA經(jīng)度*/private double[] NMEAToWGS84(double nm_lat, double nm_lon){double[] WG_lat_lon = new double[2];int laH = (int)Math.Floor(nm_lat / 100);double laL = (nm_lat - laH * 100) / 60;int loH = (int)Math.Floor(nm_lon / 100);double loL = (nm_lon - loH * 100) / 60;WG_lat_lon[0] = laH + laL;//標(biāo)準(zhǔn)緯度WG_lat_lon[1] = loH + loL;//標(biāo)準(zhǔn)經(jīng)度return WG_lat_lon;}

? ? 得到經(jīng)度為:114.21892734521,緯度為:29.575429778924,這個(gè)就是國(guó)際標(biāo)準(zhǔn)WGS-84坐標(biāo)。

?2 坐標(biāo)轉(zhuǎn)換

? ? ?百度坐標(biāo)和國(guó)際坐標(biāo)不同,直接使用國(guó)際坐標(biāo)定位有很大的偏差,我們需要使用百度API轉(zhuǎn)換,API接口如下:

https://api.map.baidu.com/geoconv/v1/?coords=114.21892734521,29.575429778924&from=1&to=5&ak=你的密鑰 //GET請(qǐng)求

? ? 其中coords=114.21892734521,29.575429778924就是上一步得到的經(jīng)緯度,from1&to&5表示從WGS84坐標(biāo)轉(zhuǎn)換為百度坐標(biāo),具體數(shù)字見(jiàn)下表。ak為開(kāi)發(fā)者密鑰,申請(qǐng)方法見(jiàn)下一節(jié)。

??

? ? 返回結(jié)果:

{"status":0,"result":[{"x":114.2307519546763,"y":29.57908428837437}]}

? ? 其中x即百度地圖經(jīng)度:114.2307519546763,y即百度地圖緯度:29.57908428837437。

? ? 得到百度坐標(biāo)后可以用百度坐標(biāo)拾取系統(tǒng)或者地球在線輸入坐標(biāo),查看地圖上的定位點(diǎn)。

延申閱讀:關(guān)于GPS坐標(biāo)系和地圖定位偏差、WGS84轉(zhuǎn)高德(火星)、高德轉(zhuǎn)百度。

注:民間未經(jīng)審批的測(cè)量糾偏是違法行為。

?3 地圖API示例

??? ? ?使用百度地圖API應(yīng)先在百度地圖開(kāi)發(fā)平臺(tái)注冊(cè)為開(kāi)發(fā)者,然后進(jìn)入控制臺(tái),創(chuàng)建一個(gè)應(yīng)用,得到密鑰(AK)。

? ? 打開(kāi)百度地圖JS API示例,示例提供了各種應(yīng)用場(chǎng)景的代碼,最簡(jiǎn)單的顯示地圖代碼如下:

<!DOCTYPE html> <html lang="zh-CN"> <head><meta charset="utf-8"><title>地圖展示</title><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta name="viewport" content="initial-scale=1.0, user-scalable=no"><meta http-equiv="X-UA-Compatible" content="IE=Edge"><style>body,html,#container {overflow: hidden;width: 100%;height: 100%;margin: 0;font-family: "微軟雅黑";}.info {z-index: 999;width: auto;min-width: 22rem;padding: .75rem 1.25rem;margin-left: 1.25rem;position: fixed;top: 1rem;background-color: #fff;border-radius: .25rem;font-size: 14px;color: #666;box-shadow: 0 2px 6px 0 rgba(27, 142, 236, 0.5);}</style><script src="https://api.map.baidu.com/api?type=webgl&v=1.0&ak=您的密鑰"></script> </head> <body><div class = "info">最新版GL地圖命名空間為BMapGL, 可按住鼠標(biāo)右鍵控制地圖旋轉(zhuǎn)、修改傾斜角度。</div><div id="container"></div> </body> </html> <script> var map = new BMapGL.Map('container'); // 創(chuàng)建Map實(shí)例 map.centerAndZoom(new BMapGL.Point(116.404, 39.915), 12); // 初始化地圖,設(shè)置中心點(diǎn)坐標(biāo)和地圖級(jí)別 map.enableScrollWheelZoom(true); // 開(kāi)啟鼠標(biāo)滾輪縮放 </script>

? ? ?新建一個(gè)txt文檔(例如Map.txt)將代碼復(fù)制粘貼進(jìn)去,保存,把后綴txt改成html(Map.html)再用瀏覽器打開(kāi)即可顯示地圖。

? ? 需要注意的是,百度原示例中:

<script src="https://api.map.baidu.com/api?type=webgl&v=1.0&ak=您的密鑰"></script>

這條沒(méi)有https:,直接寫(xiě)成src="//api.map.baidu.com/api?type=webgl&v=1.0&ak=您的密鑰",這樣會(huì)導(dǎo)致部分設(shè)備無(wú)法加載地圖,打開(kāi)為空白頁(yè)。

? ? 可以使用其他程序載入這個(gè)地圖,例如C#中可以用webBrowser控件:

string str_url = Application.StartupPath + "\\Map.html"; Uri url = new Uri(str_url); webBrowser1.Url = url;

?參考文章:C#調(diào)用百度地圖API經(jīng)驗(yàn)分享

總結(jié)

坑1:輸入AT命令時(shí)記得加回車(chē),不然不會(huì)有回應(yīng)

坑2:模塊返回來(lái)的坐標(biāo)是必須轉(zhuǎn)換才能用在百度地圖上,不然偏差很大

坑3:不要試圖自己測(cè)量糾偏,不然滴滴就是你的前車(chē)之鑒

坑4:src后網(wǎng)址要加https: 不然無(wú)法加載

總結(jié)

以上是生活随笔為你收集整理的EC20定位模块+百度地图API使用踩坑的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。