對互聯網中常見地圖的坐標系探討

文章版權由作者李曉暉和博客園共有,若轉載請于明顯處標明出處: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/

????????????????????????????????????????????????????????????????????? 如果您覺得本文確實幫助了您,可以微信掃一掃,進行小額的打賞和鼓勵,謝謝 ^_^

                                      

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/458910.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/458910.shtml
英文地址,請注明出處:http://en.pswp.cn/news/458910.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

unsigned int + int型結果分析

*************************************************** 更多精彩,歡迎進入:http://shop115376623.taobao.com *************************************************** 代碼如下: “//”后為調試中的結果 unsigned int a 6; //a 6 …

MAC OSX在視圖port哪個程序占用,殺死進程的方法

sudo lsof -i :9000COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAMEjava 61342 a 313u IPv6 0x1111111111111 0t0 TCP *:cslistener (LISTEN)在此基礎PID殺死進程:sudo kill -9 61342 版權聲明:本文博主原創文章&am…

訊飛輸入法有沒有Linux,Debian testing 安裝訊飛輸入法 - Linux系統與應用 - LinuxApp - 水木社區...

突然發現Deepin發行版帶有訊飛輸入法,于是折騰了一會,安裝好了這個輸入法,現把安裝過程分享如下:軟件包的依賴:Package: iflyimeVersion: 0.9.962Section: develPriority: optionalArchitecture: amd64Depends: libboo…

幾種C#程序讀取MAC地址的方法

原文:幾種C#程序讀取MAC地址的方法以下是收集的幾種C#程序讀取MAC地址的方法&#xff0c;示例中是讀取所有網卡的MAC地址&#xff0c;如果僅需要讀取其中一個&#xff0c;稍作修改即可。 1 通過IPConfig命令讀取MAC地址 ///<summary>///根據截取ipconfig /all命令的輸出流…

寫出float x 與“零值”比較的if語句——一道面試題分析

*************************************************** 更多精彩&#xff0c;歡迎進入&#xff1a;http://shop115376623.taobao.com *************************************************** 寫出float x 與“零值”比較的if語句 請寫出 float x 與“零值”比較的 if 語句&…

Conditional project or library reference in Visual Studio

Conditional project or library reference in Visual Studio In case you were wondering why you haven’t heard from me in a while, I’ve been busy, which isn’t really of much importance unless you know me on a personal level. What is relevant is that I recen…

linux 雙mipi攝像頭,VS-RK3399 在linux系統下面調試Mipi camera接口介紹

該樓層疑似違規已被系統折疊 隱藏此樓查看此樓debian系統目前支持Usb camera是沒有問題&#xff0c;走UVC功能接口。那么mipi 接口camera和并口接口的camera&#xff0c;在Debian系統怎么設置呢&#xff0c;其實原理一樣&#xff0c;也走uvc接口封裝函數.下面深圳視壯給大家簡單…

HTTP必知必會

2019獨角獸企業重金招聘Python工程師標準>>> HTTP消息HTTP請求消息HTTP響應消息消息首行請求行響應行消息頭部請求頭請求頭消息正文請求正文響應正文Web服務器把接收到的HTTP請求消息封裝成request對象&#xff0c;作為service的參數傳入service函數&#xff0c;ser…

float數據在計算機內存中的存儲方法

*************************************************** 更多精彩&#xff0c;歡迎進入&#xff1a;http://shop115376623.taobao.com *************************************************** 浮點型變量在計算機內存中占用4字節&#xff08;Byte&#xff09;,即32-bit。遵循IEEE…

Geometric Shapes - POJ 3449(多邊形相交)

題目大意&#xff1a;給一些幾何圖形的編號&#xff0c;求出來這些圖形都和那些相交。分析&#xff1a;輸入的正方形對角線上的兩個點&#xff0c;所以需要求出來另外兩個點&#xff0c;公式是&#xff1a;x2:(x1x3y3-y1)/2; y2:(y1y3x1-x3)/2;x4:(x1x3-y3y1)/2; y4:(y1y3-x1x3…

更新10_linux,時隔十年,QQ更新了Linux版本

昨天1024程序員節&#xff0c;QQ悄悄地更新了QQ for Linux&#xff0c;也許是給各位一個驚喜吧。官網及其的簡陋。和一個Word文檔似的。十年一更&#xff0c;有網友稱&#xff0c;瞬間回到QQ2006&#xff0c;確實界面功能有些落后&#xff0c;相信QQ可以跟上潮流的&#xff0c;…

[滲透測試]掃目錄,Sqlmap利用均超時,利用dirb掃描

今天碰到一個網友傳來的Webshell地址&#xff0c;問我對方如何取得webshell。 網站為阿里云服務器&#xff0c;存在明顯的注入漏洞&#xff0c;但是任何語句都會令網頁報錯&#xff0c;sqlmap一直超時&#xff0c;御劍掃描目錄1個線程也會導致被屏蔽IP。 經一學長提點&#xff…

x = x+1,x+=1,x++那個的執行效率高

*************************************************** 更多精彩&#xff0c;歡迎進入&#xff1a;http://shop115376623.taobao.com *************************************************** x x1的效率最低 1&#xff09;讀取右邊x的地址 2&#xff09;執行x13&#xff09;讀…

修正線性單元(Rectified linear unit,ReLU)

修正線性單元&#xff08;Rectified linear unit&#xff0c;ReLU&#xff09; Rectified linear unit 在神經網絡中&#xff0c;常用到的激活函數有sigmoid函數f(x)11exp(?x)、雙曲正切函數f(x)tanh(x)&#xff0c;今天要說的是另外一種activation function&#xff0c;recti…

C語言綜合期末作業,內蒙古農業大學2010年期末c語言綜合作業.doc

內蒙古農業大學2010年期末c語言綜合作業綜合練習作業#includeint main(void){int choice,i;void shuai();void ge();void wang();void bing();for(i1;i<5;i){printf("[1]統計字符個數\n");printf("[2]判斷素數\n");printf("[3]求斐波那契數列\n&qu…

鏈表創建、逆置、刪除詳解

*************************************************** 更多精彩&#xff0c;歡迎進入&#xff1a;http://shop115376623.taobao.com *************************************************** 對鏈表的理解&#xff1a;http://www.nowamagic.net/librarys/veda/detail/2220 #inc…

python與shell的3種交互方式介紹

【目錄】 1.os.system(cmd) 2.os.popen(cmd) 3.利用subprocess模塊 4.subprocessor模塊進階 【概述】 考慮這樣一個問題&#xff0c;有hello.py腳本&#xff0c;輸出”hello, world!”&#xff1b;有testinput.py腳本&#xff0c;等待用戶輸入&#xff0c;然后打印用戶輸入的數…

C語言里if語句變量作為判斷條件,C語言教學(九-上)if else判斷語句

原標題&#xff1a;C語言教學(九-上)if else判斷語句今天講if else判斷語句&#xff0c;簡單理解就是進行條件判斷&#xff0c;如果條件達到則執行if 里或else里的語句。先來看if。if的寫法和for差不多,就是不用括號里的兩個分號&#xff0c;if (條件) { }&#xff0c;if加括號…

const修飾指針和引用的用法【轉貼】

*************************************************** 更多精彩&#xff0c;歡迎進入&#xff1a;http://shop115376623.taobao.com *************************************************** const修飾的指針會額外的占內存嗎&#xff1f; 仍然是4&#xff0c;不會占額外的…

調整linux系統時區

cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime 好吧&#xff0c;使用tzselect又靠譜些&#xff0c;使用前把/etc/localtime刪除了。 執行上前那個告訴我文件重新了&#xff0c;所以就沒有搞了轉載于:https://www.cnblogs.com/hark0623/p/4807426.html