在開始這個(gè)題目之前,先給大家再次掃掃盲,掃的不是坐標(biāo)系統(tǒng)的盲,而是我們國家所使用的坐標(biāo)系統(tǒng)。大家都知道,美國GPS使用的是WGS84的坐標(biāo)系統(tǒng),以經(jīng)緯度的形式來表示地球平面上的某一個(gè)位置,這應(yīng)該是國際共識(shí)。但在我國,出于國家安全考慮,國內(nèi)所有導(dǎo)航電子地圖必須使用國家測(cè)繪局制定的加密坐標(biāo)系統(tǒng),即將一個(gè)真實(shí)的經(jīng)緯度坐標(biāo)加密成一個(gè)不正確的經(jīng)緯度坐標(biāo),我們?cè)跇I(yè)內(nèi)將前者稱之為地球坐標(biāo),后者稱之為火星坐標(biāo),具體的說明可以參看百度百科中關(guān)于火星坐標(biāo)系統(tǒng)的解釋。
1.國內(nèi)各地圖API坐標(biāo)系統(tǒng)比較
參考http://rovertang.com/labs/map-compare/
結(jié)論是:
API
坐標(biāo)系
百度地圖API
百度坐標(biāo)
騰訊搜搜地圖API
火星坐標(biāo)
搜狐搜狗地圖API
搜狗坐標(biāo)*
阿里云地圖API
火星坐標(biāo)
圖吧MapBar地圖API
圖吧坐標(biāo)
高德MapABC地圖API
火星坐標(biāo)
靈圖51ditu地圖API
火星坐標(biāo)
2.下面是百度官方對(duì)百度坐標(biāo)為何有偏移的解釋
國際經(jīng)緯度坐標(biāo)標(biāo)準(zhǔn)為WGS-84,國內(nèi)必須至少使用國測(cè)局制定的GCJ-02,對(duì)地理位置進(jìn)行首次加密。百度坐標(biāo)在此基礎(chǔ)上,進(jìn)行了BD-09二次加密措施,更加保護(hù)了個(gè)人隱私。百度對(duì)外接口的坐標(biāo)系并不是GPS采集的真實(shí)經(jīng)緯度,需要通過坐標(biāo)轉(zhuǎn)換接口進(jìn)行轉(zhuǎn)換。
3.火星坐標(biāo)系 (GCJ-02) 與百度坐標(biāo)系 (BD-09) 的轉(zhuǎn)換算法
GCJ-02(火星坐標(biāo)) 和 BD-09 (百度坐標(biāo))
算法代碼如下,其中 bd_encrypt 將 GCJ-02 坐標(biāo)轉(zhuǎn)換成 BD-09 坐標(biāo), bd_decrypt 反之。
void bd_encrypt(double gg_lat, double gg_lon, double &bd_lat, double &bd_lon)
{
double x = gg_lon, y = gg_lat;
double z = sqrt(x * x + y * y) + 0.00002 * sin(y * x_pi);
double theta = atan2(y, x) + 0.000003 * cos(x * x_pi);
bd_lon = z * cos(theta) + 0.0065;
bd_lat = z * sin(theta) + 0.006;
}
void bd_decrypt(double bd_lat, double bd_lon, double &gg_lat, double &gg_lon)
{
double x = bd_lon - 0.0065, y = bd_lat - 0.006;
double z = sqrt(x * x + y * y) - 0.00002 * sin(y * x_pi);
double theta = atan2(y, x) - 0.000003 * cos(x * x_pi);
gg_lon = z * cos(theta);
gg_lat = z * sin(theta);
}
4.地球坐標(biāo)系 (WGS-84) 到火星坐標(biāo)系 (GCJ-02) 的轉(zhuǎn)換算法
WGS-84 到 GCJ-02 的轉(zhuǎn)換(即 GPS 加偏)算法是一個(gè)普通青年輕易無法接觸到的“公開”的秘密。這個(gè)算法的代碼在互聯(lián)網(wǎng)上是公開的,詳情請(qǐng)使用 Google 搜索 "wgtochina_lb" 。
整理后的算法代碼請(qǐng)參考 https://on4wp7.codeplex.com/SourceControl/changeset/view/21483#353936 。知道了這個(gè)算法之后,就可以離線進(jìn)行 Google 地圖偏移校正,不必像之前那么麻煩。
至于 GCJ-02 到 WGS-84 的轉(zhuǎn)換(即 GPS 糾偏),可以使用二分法。
高德百度坐標(biāo)系轉(zhuǎn)換方法
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
相關(guān)閱讀更多精彩內(nèi)容
- 眾所周知地球是一個(gè)不規(guī)則橢圓體,GIS中的坐標(biāo)系定義由基準(zhǔn)面和地圖投影兩組參數(shù)確定,而基準(zhǔn)面的定義則由特定橢球體及...
- 一、國內(nèi)地圖坐標(biāo)系簡(jiǎn)介 1、 WGS84(地圖坐標(biāo)) 美國GPS使用的是WGS84的坐標(biāo)系統(tǒng)。GPS系統(tǒng)獲得的坐...
- #import<CoreLocation/CoreLocation.h> CLLocation類擴(kuò)展 */ @in...
- // // coordinatesChangeHelper.h //// Created by 冰淚 on 201...
- /** * 地圖位置計(jì)算工具(將GPS坐標(biāo)轉(zhuǎn)換成百度地圖坐標(biāo)) * 參考文檔:http://bbs.lbsyu...