使用QT開發GoogleMap瓦片顯示和下載工具(2)——Google地圖瓦片投影和獲取網址解析

這篇主要說的是Google地圖採用的投影方式,瓦片劃分方式以及如何從給定的經緯度獲取瓦片的數據的網址。全部資料均來自於網絡,並親自試驗可行。html

  1. Google地圖投影

    首先是地圖投影問題,由於地球自己是一個球體,理論上不可能將球面展開成一個沒有裂縫的平面(就像圓柱側面能夠展開成一個矩形,可是球面不可能展開成相似的無縫平面),所以須要採用投影的方式將地球展開成一張平面,方面使用者閱讀。地圖投影有不少種方法,來實現不一樣的應用目的(等角投影,等面積投影,等長度投影等),能夠從地圖學相關數據中進行了解。這裏主要說的是Google地圖採用的投影方式,用術語來講就是正軸等角切圓柱投影,是墨卡託投影的一種,通常稱爲Web墨卡託投影,ESPG編號是4326(GDAL能夠直接使用該編號加載該投影相關信息)。具體相關信息能夠從這篇博客中進行學習Google Maps地圖投影全解析網絡

    須要注意的是,通過投影計算後使用的是投影座標系座標進行計算,也就是博文中所說的[-20037508.3427892,20037508.3427892]這個範圍內的座標進行計算。也就是說x軸和y軸使用該數值能夠線性計算某點座標,而不能使用經緯度進行線性計算某點座標,由於投影后的經緯度不是均勻的。這麼說可能比較抽象,舉個例子說,對於Google地圖0級圖像(以下圖),須要計算(x,y)像素點(左下角點爲起始點)座標,須要使用投影座標系座標採用下式計算:post

    [X座標] = -20037508.3427892 + x * [分辨率]學習

    [Y座標] = -20037508.3427892 + y* [分辨率]網站

    而後若是須要計算經緯度的話則在上面座標計算的基礎上在進行逆投影計算就能夠得出該點的經緯度數值google

  2. Google地圖瓦片切分方式以及索引計算方式

    這裏我就很少寫了,請參見這篇博客OpenStreetMap/Google/百度/Bing瓦片地圖服務(TMS),裏面講了目前主流地圖服務的瓦片切分方式以及索取網址形式,不止包括Google地圖。之後有時間沒準可能會多作幾個網站吧,畢竟TMS服務都是大同小異的。htm

    恩,本身又仔細看了下,仍是稍微補充點原博客沒有講清楚的東西,你們翻到google地圖瓦片地址格式那裏,原做者給出了以下這樣的瓦片地圖格式:blog

    http://mt2.google.cn/vt/lyrs=m@167000000&hl=zh-CN&gl=cn&x=420&y=193&z=9索引

    這個後面的x,y,z分別表明上圖所說的x軸方向序號,y軸方向序號以及瓦片金字塔層級z(TMS服務地圖瓦片通常都是採用徹底四叉樹金字塔方式進行數據組織,高層的每一個瓦片被一分爲四,肯定低層瓦片覆蓋的範圍,具體的能夠搜索瓦片金字塔學習相關概念)。注意通常來講z的取值範圍爲[0,x],x值因不一樣的服務和數據精度相關,但通常在20左右,x和y的取值範圍是[0,2^(z-1)],獲取不一樣的地點的瓦片只須要修改x,y,z便可。get

 

這篇大概就寫這麼多吧,主要是一些基礎知識方面的內容,並且主要是轉載別人的一些博客,並按照本身的理解進行了補充。有什麼疑問或者問題歡迎留言。

相關文章
相關標籤/搜索