1.背景
基于百度地圖進(jìn)行數(shù)據(jù)展示是目前項(xiàng)目中常見(jiàn)場(chǎng)景,但是因?yàn)榘俣鹊貓D是基于BD09坐標(biāo)系的,GPS坐標(biāo)(WGS84)或者其他常見(jiàn)的標(biāo)準(zhǔn)坐標(biāo)是無(wú)法準(zhǔn)確在地圖上進(jìn)行展示的,但是互聯(lián)網(wǎng)在線情況下,百度提供了將WGS84經(jīng)緯度轉(zhuǎn)換成百度經(jīng)緯度坐標(biāo)的API,這里不再對(duì)其進(jìn)行研究(離線情況下也有專門方法解決)。這里,我們探討,如何將在百度上獲取的百度坐標(biāo)數(shù)據(jù)反轉(zhuǎn)成WGS84坐標(biāo)。
目前有三種通用方法來(lái)解決此問(wèn)題,分別是算法逼近、誤差逼近和格網(wǎng)逼近方法。
2.算法逼近方法
百度地圖坐標(biāo)系的背景為首先使用國(guó)測(cè)局制定的GCJ-02,對(duì)地理位置進(jìn)行首次加密,然后再利用其自創(chuàng)的BD-09進(jìn)行二次加密措施。所以基于算法的逼近,也是進(jìn)行這樣的反解步驟:首先將BD09坐標(biāo)轉(zhuǎn)換成GCJ02坐標(biāo),然后再將GCJ02坐標(biāo)反算成WGS84坐標(biāo)。
以下為基于算法反解的詳細(xì)代碼: