摘要:實際中我們可能會用到不同的地圖,那么就對應到不同坐標系的轉(zhuǎn)換,比如說,你有一份的數(shù)據(jù)服務,你要展現(xiàn)在百度或者高德地圖上,這時候你就需要轉(zhuǎn)換了。
地圖坐標轉(zhuǎn)換
LBS,基于位置的服務(Location Based Service),近年來已經(jīng)無處不在,尤其是我們前端,相信或多或少都有接觸一些地圖API服務,比如高德、百度啊、谷歌啊~
但是用的時候可能看到下面這些字眼:比如BD09、火星坐標、WGS84……不由得還是蒙圈了啊?
那么接下來,我們就來了解一下,關于當前用到的一些互聯(lián)網(wǎng)地圖的基礎坐標轉(zhuǎn)換知識~
0、首先給大家出一個題地圖上的經(jīng)緯度轉(zhuǎn)換到平面坐標時,和平面坐標的XY的對應關系是什么,就是經(jīng)度(longitude)和維度(latitude)分別給對應X,Y中的誰?
這是在實際中經(jīng)常會用到的一個知識點,我之前沒有想太多,反正就把數(shù)值往里嘗試,因為位置差異很大,正確還是錯誤一眼就看出來了的,但是這樣其實很不好,被師兄說了,我一個GISer的連這個都弄不明白不應該,哈哈哈。不求甚解是可以的,但是專業(yè)性還是要強化的。
來看看上面的圖:
經(jīng)緯度大家都知道,地球上橫線是緯度,縱線是經(jīng)度。
這也導致了我們下意識就會覺得,橫線是X,縱線是Y。這樣的認知顯然是錯誤的。
但其實,橫線是刻畫了Y軸上的刻度,縱線是刻畫了X軸上的刻度,這里要用到投影的角度來看問題。
所以大家要記住經(jīng)緯XY
經(jīng)度 (longitude) —— 對應 X
維度 ( latitude ) —— 對應 Y
國際標準,從專業(yè)GPS 設備中取出的數(shù)據(jù)的坐標系
國際地圖提供商使用的坐標系
中國標準,從國行移動設備中定位獲取的坐標數(shù)據(jù)使用這個坐標系
國家規(guī)定: 國內(nèi)出版的各種地圖系統(tǒng)(包括電子形式),必須至少采用GCJ-02對地理位置進行首次加密。
百度標準,百度 SDK,百度地圖,Geocoding 使用
(百度在火星坐標上的二次加密)
火星坐標系:
iOS 地圖(其實是高德) Gogole地圖 搜搜、阿里云、高德地圖
百度坐標系:
當然只有百度地圖
WGS84坐標系:
國際標準,谷歌國外地圖、osm地圖等國外的地圖一般都是這個三、從設備獲取經(jīng)緯度(GPS)坐標
如果使用的是百度sdk那么可以獲得百度坐標(bd09)或者火星坐標(GCJ02),默認是bd09 如果使用的是ios的原生定位庫,那么獲得的坐標是WGS84 如果使用的是高德sdk,那么獲取的坐標是GCJ02四、坐標轉(zhuǎn)換方法--JS版本
我在之前的一篇文章里,基于Ionic框架的使用講到了地圖定位:ionic2入門教程(六)地圖服務(谷歌、高德、百度定位),現(xiàn)在重新寫一個小demo來實現(xiàn)我們的坐標轉(zhuǎn)換。
關于方法,我找到了應該是最通用的一種,源碼地址——作者wandergis,大部分的轉(zhuǎn)換方式應該都是基于他的這個版本,相關說明也是最清楚的。
實際中我們可能會用到不同的地圖,那么就對應到不同坐標系的轉(zhuǎn)換,比如說,你有一份wgs84的數(shù)據(jù)服務,你要展現(xiàn)在百度或者高德地圖上,這時候你就需要轉(zhuǎn)換了。
我這里的例子是,我用到百度搜索地名,得到經(jīng)緯度,但是我要將它繪制在以84為坐標系的地圖leaflet之上,這時候我就需要將返回的經(jīng)緯度進行轉(zhuǎn)換。
我們先用百度搜索廣州塔,定位中心
基于我們選擇的OpenStreetMap,未轉(zhuǎn)換之前,我們用百度搜索廣州塔返回的值畫點,可以看出很明顯是偏移了的:
百度地名搜索
myGeo.getPoint(searchVal, function (point) { if (point) { console.log(point); // bd09->gcj02 var myPoint = coordtransform.bd09togcj02(point.lng, point.lat); console.log(myPoint); // gcj02->wgs84 var myPoint2 = coordtransform.gcj02towgs84(myPoint[0], myPoint[1]); console.log(myPoint2); var latlng = L.latLng([myPoint[1], myPoint[0]]); var latlng2 = L.latLng([myPoint2[1], myPoint2[0]]); // 畫點 L.marker(point).addTo(mymap); L.marker(latlng).addTo(mymap); L.marker(latlng2).addTo(mymap); // 設置中心 mymap.setView([point.lat, point.lng], 13); } else { alert("您選擇地址沒有解析到結(jié)果!"); } }, "廣州市");源碼:https://github.com/JiaXinYi/i...
五、EPSG:3857如果你用到了leaflet/openlayers/arcgis jsAPI的話,應該還有一個點需要了解
這個算是題外話,因為一般都是學gis的才會用到這些,一般情況下百度高德這些大概都能夠滿足需求了。
像用到這些地圖的情況,經(jīng)常會涉及到EPSG:3857 或者OpenLayers:900913,acrgis: 102100(3857)。EPSG:3857 其實是EPSG協(xié)會(European Petroleum Survey Group)為 Web Wercator 最終設立的WKID,也就是現(xiàn)在我們常用的Web 地圖的坐標系,并且給定官方命名 “WGS 84 / Pseudo-Mercator“。
Web Mercator 是一個投影坐標系統(tǒng),其基準面是 WGS 1984 。
WGS 1984 是一個長半軸(a)為6378137,短半軸(b)為6356752.314245179 的橢球體,扁率(f)為298.257223563,f=(a-b)/a 。
但是,Web Mercator 坐標系使用的投影方法不是嚴格意義的墨卡托投影而是一個被 EPSG稱為偽墨卡托的投影方法,這個偽墨卡托投影方法的大名是 Popular Visualization Pseudo Mercator,PVPM。
Google 最先發(fā)明了這套系統(tǒng),在投影過程中,將表示地球的參考橢球體近似的作為正球體處理(正球體半徑 R = 橢球體半長軸 a)。
后來,Web Mercator 在 Web 地圖領域被廣泛使用,這個坐標系就名聲大噪。盡管這個坐標系由于精度問題一度不被GIS專業(yè)人士接受,但最終 EPSG 還是給了 WKID:3857。
所以其實看到EPSG:3857,就知道,當前的坐標系是wgs84,而這個屬性,通常在地圖的默認設置中。就是說,如果你不改,這些地圖就應該是wgs84坐標系。
六、坐標轉(zhuǎn)換方法--TS版本(待完成)請輸入代碼如果對你有幫助的話,能否考慮打賞a cup of coffee,比心
參考:
http://wandergis.com/coordtra...
http://blog.csdn.net/kikitamo...
https://www.sogou.com/link?ur...
http://developer.baidu.com/ma...
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://hztianpu.com/yun/93201.html
摘要:不建議底圖選擇中存在兩種不同坐標體系,如下圖坐標存在明顯的偏差,火星坐標在采用坐標系的地圖上位置偏上彩色中國天地圖全球衛(wèi)星地圖例如我們使用的類進行查找,返回的數(shù)據(jù)都是國際坐標,因此必須進行偏差糾正。 ArcGIS for javascript開發(fā)心得 本次實例中采用ArcGIS for javascript3.24版本,由于版本3與4在API等存在較大區(qū)別,就不一一列舉,詳細區(qū)別看官方...
摘要:業(yè)內(nèi)開發(fā)框架層出不窮,,,等等,都在朝著更快,更強大的方向發(fā)展,有統(tǒng)一微信支付寶百度和頭條小程序的大趨勢。最近升級為版本,支持微信支付寶百度和頭條小程序。 原文鏈接 最近小程序的發(fā)展越來越火了,作為各個產(chǎn)品線的extra服務入口,以輕便、快速、強大的社交鏈吸引著大量的用戶和開發(fā)者。業(yè)內(nèi)開發(fā)框架層出不窮,wepy,mpvue,taro等等,都在朝著更快,更強大的方向發(fā)展,有統(tǒng)一 H5、微...
摘要:業(yè)內(nèi)開發(fā)框架層出不窮,,,等等,都在朝著更快,更強大的方向發(fā)展,有統(tǒng)一微信支付寶百度和頭條小程序的大趨勢。最近升級為版本,支持微信支付寶百度和頭條小程序。 原文鏈接 最近小程序的發(fā)展越來越火了,作為各個產(chǎn)品線的extra服務入口,以輕便、快速、強大的社交鏈吸引著大量的用戶和開發(fā)者。業(yè)內(nèi)開發(fā)框架層出不窮,wepy,mpvue,taro等等,都在朝著更快,更強大的方向發(fā)展,有統(tǒng)一 H5、微...
閱讀 3455·2021-10-13 09:39
閱讀 2159·2021-09-27 13:36
閱讀 3204·2021-09-22 16:02
閱讀 2719·2021-09-10 10:51
閱讀 1715·2019-08-29 17:15
閱讀 1604·2019-08-29 16:14
閱讀 3729·2019-08-26 11:55
閱讀 2634·2019-08-26 11:50