文章版權由作者李曉暉和博客園共有,若轉載請于明顯處標明出處:http://www.cnblogs.com/naaoveGIS/。
1.背景
目前項目中使用百度地圖、高德地圖、谷歌中國地圖、天地圖的需求越來越多,這里我跟大家一起對各地圖使用的坐標系做一個簡單的探討。
2.百度地圖——BD-09
百度地圖是在GCJ-02坐標系上,又自己對坐標加密了一次,它官方文檔里說叫BD-09,目前從GPS坐標轉到百度坐標有接口提供,反過來不提供。
當然,目前反轉方法在我們實際項目中已經解決,精確度可以達到0.5M以內。
2.1百度瓦片獲取思路
百度地圖的投影還是標準的Web橫軸墨卡托投影,所以其切圖的坐標原點、范圍都是可以計算出來的。瓦片大小、基本URL也都可以通過監聽百度的URL獲取。需要注意的是,百度地圖的瓦片行列號和負載地址在不同級別上都會有所不同,其變化規則如下:
瓦片的行列號是每增加一個級別便會進行一個規則的偏移,其偏移算法如下:
? ? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ? ? ? ? ?
2.2本地坐標系圖層與百度底圖疊加的探討
2.2.1 強行對瓦片數據進行糾偏
在最新的arcBruTile0.7中已經支持對百度地圖的添加。可以加載了百度瓦片后,通過尋找百度地圖上與本地地圖上的控制點對進行強行糾偏。
缺點是柵格圖像糾偏形變是很難避免的,而且工作量也大,并且很難自動化。
2.2.2 將矢量數據轉換為百度坐標系——以天津90坐標系為例
a.獲取WGS84到天津90坐標系上的7參數。
b.通過建立控制點庫(已研發),利用工具(已研發)將天津90坐標系數據自動轉換為WGS84坐標系數據。
c.再建立WGS84與百度坐標系之間的控制點庫(已研發),將WGS84數據再轉換為百度坐標系數據。
d.疊加后測試。
2.2.3結果展示
????????????????????????????????????????????
?
3.高德地圖和谷歌中國地圖——GCJ-02
3.1地圖坐標系的探討
高德地圖和谷歌地圖均是使用的GCJ-02坐標系,以下為測試例子:
?
具體來說GCJ-02坐標系與WGS84坐標系偏移一般在100M上下,這種處理技術,是通過一種方法將一張地圖修改為另外一張地圖,修改完成之后,地圖上的點,會發生大到幾百米,小到幾十米的偏移。如果你用幾何上坐標轉換的方法想復原原地圖,難度很大,因為處理技術的處理映射函數是非線性的。網上有很多兩個坐標之間的轉換方法,但是精確度一般般,在10M左右。
在國內,GCJ-02帶來的偏移最大有700米左右,偏移的絕對值可以參考下圖(最紅處接近700 m,最藍處大約 20 米):
?
3.2本地坐標系數據疊加到GCJ-02坐標系上
3.2.1轉換流程
由于本地數據并不會是大范圍的,所以其局部偏移上可以通過線性方法暫時逼近。
a.本地坐標數據轉換為WGS84坐標數據。
b.對本地WGS84坐標數據進行Web橫軸墨卡托投影。
c.將投影后的數據疊加到高德或者谷歌中國地圖上。
d.進行線性偏移。
3.2.2結果展示
?
4.天地圖——CGCS2000
4.1坐標系研究
天地圖上不同省份使用的坐標系可能不同,目前來看我經手過的浙江、四川均為標準的國標2000坐標系。但是有些地方為當地坐標系,還需測繪局提供保密插件進行處理。
國標2000坐標系與WGS84坐標系偏差不大,因為CGCS2000坐標系與WGS84坐標系的原點、尺度、定向及定向演變的定義都是相同的,參考橢球的參數略有不同而已。相同的坐標點,在CGCS2000與WGS84下,經度是相同的,只在緯度上存有0.11mm上下的區別,可以忽略掉。
4.2 本地坐標系矢量數據疊加到天地圖上
a.將本地數據轉換為WGS84或者國標2000坐標系數據。
b.疊加到天地圖上。
4.3結果展示
?
???????????????????????????????????????????????????????????????? ?-----歡迎轉載,但保留版權,請于明顯處標明出處:http://www.cnblogs.com/naaoveGIS/
????????????????????????????????????????????????????????????????????? 如果您覺得本文確實幫助了您,可以微信掃一掃,進行小額的打賞和鼓勵,謝謝 ^_^
?