摘要:做過地圖相關(guān)開發(fā)的同學(xué)肯定會遇到這樣一個問題同樣的經(jīng)緯度坐標,在百度地圖和高德地圖上位置不一樣。解決方案百度地圖以及高德地圖都提供了一些方法來轉(zhuǎn)換不同坐標系下的坐標,但是它們都需要進行網(wǎng)絡(luò)請求,性能很差。
做過地圖相關(guān)開發(fā)的同學(xué)肯定會遇到這樣一個問題:同樣的經(jīng)緯度坐標,在百度地圖和高德地圖上位置不一樣。
我們通常用經(jīng)緯度來表示一個地理位置,但是由于一些原因,我們從不同渠道得到的經(jīng)緯度信息可能并不是在同一個坐標系下。
高德地圖、騰訊地圖以及谷歌中國區(qū)地圖使用的是GCJ-02坐標系
百度地圖使用的是BD-09坐標系
底層接口(HTML5 Geolocation或ios、安卓API)通過GPS設(shè)備獲取的坐標使用的是WGS-84坐標系
不同的坐標系之間可能有幾十到幾百米的偏移,所以在開發(fā)基于地圖的產(chǎn)品,或者做地理數(shù)據(jù)可視化時,我們需要修正不同坐標系之間的偏差。
WGS-84 - 世界大地測量系統(tǒng)WGS-84(World Geodetic System, WGS)是使用最廣泛的坐標系,也是世界通用的坐標系,GPS設(shè)備得到的經(jīng)緯度就是在WGS84坐標系下的經(jīng)緯度。通常通過底層接口得到的定位信息都是WGS84坐標系。
GCJ-02 - 國測局坐標GCJ-02(G-Guojia國家,C-Cehui測繪,J-Ju局),又被稱為火星坐標系,是一種基于WGS-84制定的大地測量系統(tǒng),由中國國測局制定。此坐標系所采用的混淆算法會在經(jīng)緯度中加入隨機的偏移。
國家規(guī)定,中國大陸所有公開地理數(shù)據(jù)都需要至少用GCJ-02進行加密,也就是說我們從國內(nèi)公司的產(chǎn)品中得到的數(shù)據(jù),一定是經(jīng)過了加密的。絕大部分國內(nèi)互聯(lián)網(wǎng)地圖提供商都是使用GCJ-02坐標系,包括高德地圖,谷歌地圖中國區(qū)等。
導(dǎo)航電子地圖在公開出版、銷售、傳播、展示和使用前,必須進行空間位置技術(shù)處理。—?GB 20263―2006《導(dǎo)航電子地圖安全處理技術(shù)基本要求》,4.1BD-09 - 百度坐標系
BD-09(Baidu, BD)是百度地圖使用的地理坐標系,其在GCJ-02上多增加了一次變換,用來保護用戶隱私。從百度產(chǎn)品中得到的坐標都是BD-09坐標系。
解決方案百度地圖以及高德地圖都提供了一些方法來轉(zhuǎn)換不同坐標系下的坐標,但是它們都需要進行網(wǎng)絡(luò)請求,性能很差。
在春節(jié)假期時,我做了一個庫gcoord來做這些事。
gcoord主要解決了兩個問題
能將坐標在不同坐標系下相互轉(zhuǎn)換
能夠處理GeoJSON
GeoJSON是地理行業(yè)一種通用的數(shù)據(jù)格式,它本質(zhì)上就是JSON,不過對字段有一些約定。
gcoord使用起來非常簡單
例如從手機的GPS得到一個經(jīng)緯度坐標,需要將其展示在百度地圖上,則可以通過gcoord將當前坐標從WGS-84坐標系轉(zhuǎn)換為BD-09坐標系
var result = gcoord.transform( [ 116.403988, 39.914266 ], // 經(jīng)緯度坐標 gcoord.WGS84, // 當前坐標系 gcoord.BD09 // 目標坐標系 ); console.log( result ); // [ 116.41661560068297, 39.92196580126834 ]
詳細的使用方式請查看gcoord的文檔
歡迎大家star
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/110122.html
摘要:實際中我們可能會用到不同的地圖,那么就對應(yīng)到不同坐標系的轉(zhuǎn)換,比如說,你有一份的數(shù)據(jù)服務(wù),你要展現(xiàn)在百度或者高德地圖上,這時候你就需要轉(zhuǎn)換了。 地圖坐標轉(zhuǎn)換 LBS,基于位置的服務(wù)(Location Based Service),近年來已經(jīng)無處不在,尤其是我們前端,相信或多或少都有接觸一些地圖API服務(wù),比如高德、百度啊、谷歌啊~但是用的時候可能看到下面這些字眼:比如BD09、火星坐標...
摘要:高德和在國內(nèi)都是使用坐標系或在此基礎(chǔ)上面加密為直接的坐標系,可以說,是國內(nèi)最廣泛使用的坐標系百度坐標系,百度坐標系是在坐標系的基礎(chǔ)上再次加密偏移后形成的坐標系,只適用于百度地圖。 概述 一:在進行地圖開發(fā)過程中,我們一般能接觸到以下三種類型的地圖坐標系: 1.WGS-84原始坐標系,一般用國際GPS紀錄儀記錄下來的經(jīng)緯度,通過GPS定位拿到的原始經(jīng)緯度,Google和高德地圖定位的的經(jīng)...
眾所周知,Python的一個使用場景還是比較多的,在工作當中,也會涉及到多方面的一些事情。那么,今天小編寫這篇文章的一個主要目的,給大家來介紹關(guān)于如何用Python完成百度與搞得地圖轉(zhuǎn)換,下面就給大家詳細介紹下。 一、地理編碼與逆編碼 地理編碼與逆編碼表示的是地名地址與地理坐標(經(jīng)緯度)互相轉(zhuǎn)換的過程。其中,將地址信息映射為地理坐標的過程稱之為地理編碼;將地理坐標轉(zhuǎn)換為地址信息的過程稱之為...
摘要:前提了解坐標系分類經(jīng)緯度美國,國際通用,如谷歌國外地圖地圖火星系國測局制定的標準,國內(nèi)地圖必須至少使用此對位置進行首次加密,高德地圖騰訊搜搜地圖阿里云地圖靈圖地圖谷歌中國地圖百度在標準基礎(chǔ)上進行二次加密,百度地圖這兩天一直在研究經(jīng)緯度 前提了解: 坐標系分類(經(jīng)緯度): WGS84 美國GPS,國際通用,如谷歌國外地圖、osm地圖 火星系GCJ-02 國測局制定的標準,國內(nèi)地圖必須至少...
摘要:轉(zhuǎn)換的結(jié)果和百度提供的接口精確到小數(shù)點后位請放心使用衛(wèi)星橢球坐標投影到平面地圖坐標系的投影因子。 WGS-84:是國際標準,GPS坐標(Google Earth使用、或者GPS模塊) GCJ-02:中國坐標偏移標準,Google Map、高德、騰訊使用 BD-09:百度坐標偏移標準,Baidu Map使用 WGS-84 to GCJ-02 GPS.gcj_encrypt(); GC...
閱讀 696·2021-11-18 10:07
閱讀 2887·2021-09-22 16:04
閱讀 889·2021-08-16 10:50
閱讀 3363·2019-08-30 15:56
閱讀 1793·2019-08-29 13:22
閱讀 2702·2019-08-26 17:15
閱讀 1249·2019-08-26 10:57
閱讀 1117·2019-08-23 15:23