微信獲取用戶地理位置(經緯度)和百度獲取實際地址的經緯度之間相差較大解決

前提了解:php

座標系分類(經緯度):web

  • WGS84

美國GPS,國際通用,如谷歌國外地圖、osm地圖api

  • 火星系GCJ-02

國測局制定的標準,國內地圖必須至少使用此對位置進行首次加密,高德地圖、騰訊搜搜地圖、阿里雲地圖、靈圖51ditu地圖、谷歌中國地圖微信

  • BD-09

百度在GCJ-02標準基礎上進行二次加密 ,百度地圖ide

這兩天一直在研究經緯度的問題,最後發如今微信上獲取用戶的地理位置(經緯度)和在百度上獲取實際地址的經緯度之間的距離相差較大,整整相差了5000多米的距離,這究竟是怎麼回事呢?最後發現原來微信端獲取的經緯度使用的是WGS84(大地座標系),然而在百度上獲取的經緯度使用的是百度本身定義的BD-09(百度座標系),百度對外接口的座標系並非GPS採集的真實經緯度,因此致使了兩個經緯度之間的差距過大,那麼解決方式是什麼呢?ui

既然兩個經緯度的座標系標準不一樣,那麼將其中一個座標系的轉換成另外一個座標系類型不久能夠了嗎?根據這個思路解決方法以下:google

GPS84轉換爲BD-09:阿里雲

在百度api中,提供了將WGS84(大地座標系)和GCJ02(國測局座標系)轉化爲BD-09(百度座標系)的接口加密

百度座標轉換api地址:http://lbsyun.baidu.com/index...接口

百度座標轉換接口地址以下:

http://api.map.baidu.com/geoc...

參數說明:

  • coords

需轉換的源座標,多組座標以「;」分隔,(經度,緯度)

  • ak

開發者密鑰

  • from

源座標類型:
1:GPS設備獲取的角度座標,WGS84座標;

2:GPS獲取的米制座標、sogou地圖所用座標;

3:google地圖、soso地圖、aliyun地圖、mapabc地圖和amap地圖所用座標,國測局(GCJ02)座標;

4:3中列表地圖座標對應的米制座標;

5:百度地圖採用的經緯度座標;

6:百度地圖採用的米制座標;

7:mapbar地圖座標;

8:51地圖座標

  • to

目標座標類型:
5:bd09ll(百度經緯度座標);
6:bd09mc(百度米制經緯度座標)

根據如上就能夠實現將咱們微信端獲取的經緯度轉化成百度本身加密事後的經緯度

當時如何將BD-09轉換成GPS84百度沒有提供接口,具體如何轉換目前不清楚,有知道的,歡迎評論,謝謝

相關文章
相關標籤/搜索