這篇文章主要介紹了如何調(diào)用百度地圖API實(shí)現(xiàn)坐標(biāo)轉(zhuǎn)換,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
創(chuàng)新互聯(lián)服務(wù)項(xiàng)目包括通榆網(wǎng)站建設(shè)、通榆網(wǎng)站制作、通榆網(wǎng)頁制作以及通榆網(wǎng)絡(luò)營(yíng)銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢(shì)、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,通榆網(wǎng)站推廣取得了明顯的社會(huì)效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到通榆省份的部分城市,未來相信會(huì)繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!
Python代碼
因?yàn)椴煌牡貓D使用的經(jīng)緯度坐標(biāo)系不同(如百度地圖使用的是百度坐標(biāo),高德、谷歌等使用的是GCJ-02坐標(biāo)),所以在實(shí)際應(yīng)用中需要進(jìn)行不同坐標(biāo)的轉(zhuǎn)化,不然將百度經(jīng)緯度的點(diǎn)畫在高德地圖上,會(huì)出現(xiàn)位置偏移。
實(shí)現(xiàn)百度坐標(biāo)向高德坐標(biāo)轉(zhuǎn)化有兩種方法,一種就像調(diào)用百度地圖API一樣,調(diào)用高德API接口實(shí)現(xiàn)坐標(biāo)變換,另一種可以直接通過計(jì)算實(shí)現(xiàn)轉(zhuǎn)化。
調(diào)用高德API接口
#通過web api 將百度經(jīng)緯度轉(zhuǎn)換為高德經(jīng)緯度def getGCJ02(lng,lat): url = 'https://restapi.amap.com/v3/assistant/coordinate/convert?coordsys=baidu&output=json&key=' ak = '你的ak' #生成完整url uri = url + ak + '&locations=' + str(lng) + ',' + str(lat) html = requests.get(uri)#獲取網(wǎng)頁內(nèi)容 bs_getDetail = BeautifulSoup(html.text,'lxml') #解析網(wǎng)頁 #找到存放經(jīng)緯度數(shù)據(jù)的文字,轉(zhuǎn)換為字典,取得相應(yīng)經(jīng)緯度 location = eval(bs_getDetail.p.text)["locations"] return location
也可以通過直接計(jì)算得到相關(guān)結(jié)果,這里注意要提前加載math庫(kù)。
#通過計(jì)算將百度經(jīng)緯度轉(zhuǎn)換為高德經(jīng)緯度def getGCJ02_2(lng, lat): PI = math.pi * 3000.0 / 180.0; x = lng - 0.0065; y = lat - 0.006; z = math.sqrt(x * x + y * y) - 0.00002 * math.sin(y * PI); theta = math.atan2(y, x) - 0.000003 * math.cos(x * PI); gg_lng = z * math.cos(theta); gg_lat = z * math.sin(theta); return str(list([gg_lng, gg_lat]))
[120.30092835093511, 30.429908332211145]->[120.2943448753952, 30.424254963690057]
感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“如何調(diào)用百度地圖API實(shí)現(xiàn)坐標(biāo)轉(zhuǎn)換”這篇文章對(duì)大家有幫助,同時(shí)也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,更多相關(guān)知識(shí)等著你來學(xué)習(xí)!