騰訊與百度地圖瓦片規則分析

1.騰訊地圖瓦片與Google地圖瓦片區別和聯繫

1)騰訊地圖瓦片與Google的地圖瓦片切割方法相同,只不過騰訊地圖瓦片完全遵循TMS標準,Google地圖瓦片則是TMS的一種變種

2)地圖投影座標系均採用Web Mercator投影,地圖瓦片分辨率也完全一致。

3)騰訊地圖瓦片的座標原點在左下角【-85.05112877980659,-180】,Google 地圖瓦片的座標原點在左上角【85.05112877980659,-180】。

4)騰訊瓦片的最小縮放級別爲4級,通過與騰訊低級別瓦片地址的對比分析,得出其ULR地址與xyz參數的對應關係如下:

騰訊瓦片計算方法:URL = z  /  Math.Floor(x / 16.0)  / Math.Floor(y / 16.0) / x_y.png,其中x,y,z爲TMS瓦片座標參數。

5)與Google瓦片座標的關係,上式中騰訊地圖瓦片座標的x,z與Google 瓦片座標系的X 、Z是相等的,Y 的轉換關係爲:Y(Tencent) +  Y(Google) = Math.pow(2,zoom) - 1

6)爲了保密,騰訊地圖與Google地圖在大陸地區均進行了偏移處理,採用的是國家火星座標系GCJ-02。

注:瓦片解析方法參考以前的博文:Google 地圖切片URL地址解析

2.騰訊與Google地圖瓦片轉換實例:

Google瓦片: http://mt2.google.cn/vt/lyrs=m@258000000&hl=zh-CN&gl=CN&src=app&x=214130&y=114212&z=18&s=Ga

騰訊瓦片:http://p3.map.gtimg.com/maptilesv2/18/13383/9245/214130_147931.png?version=20130701

下面示例中 xyz爲Google瓦片地圖的參數。

int x = 214130;
int y = 114212;
int z = 18;
y = int.Parse( Math.Pow(2, z).ToString()) - 1 - y;
string url = z.ToString() + "/" + Math.Floor(x / 16.0).ToString() + "/" 
    + Math.Floor(y / 16.0).ToString()  + "/" + x.ToString() + "_" 
    + y.ToString() + ".png"; //計算結果:18/13383/9245/214130_147931.png

3.百度地圖座標系統及地圖瓦片分辨率

1)百度地圖座標系統解析:http://www.cnblogs.com/jz1108/archive/2011/07/02/2095376.html

2)百度地圖瓦片分辨率與比例尺:http://hi.baidu.com/chuansl/item/5e646bc2cad418334494161d

18級,1個像素代表1米,17級,1個像素代表2米,16級代表4米,依此類推。


3)百度地圖地圖投影採用的依然是Web Mercator投影,地圖瓦片的切片規則遵循TMS標準,瓦片座標原點在經緯度爲0的附近,但卻做了一定的偏移處理,經測算深圳地區的偏移量約爲(-865,15850),即地圖瓦片(0, 0)是從Web Mercator投影座標系的(-865,15850)點開始的。

4)爲了保密,百度地圖做了偏移處理,使用的是百度的BD-09座標系,在國家要求的火星座標系GCJ-02上做了進一步的處理,因此GPS經緯度定位會出現偏移。

4.地圖分辨率、比例尺及像素PPI之間的關係

比例尺,通常以比率(如 1:10000 )來表示,表示圖上距離與實地距離之比。例如 1:10000 表示圖上 1cm 代表實際距離 10000cm,即100米。 由於比例尺起源較早,通常用(紙質)圖上的距離衡量實際距離;而分辨率則通常用設備屏幕上的距離來衡量實際距離。而同一個地圖視圖,尺度是唯一的,比例尺和分辨率只不過是兩種表示方法,因此它們是一一對應的。 比例尺與分辨率之間的換算公式如下:


Scale:地圖比例尺;Resolution:地圖分辨率;PPI:每英寸的像素點數。

其中 PPI,即 Pixel per Inch,即每英寸的像素點數(在不混淆情況下,也有用 DPI 來表示該參數)。0.0254 爲英寸和米的轉換常數。

參考:分辨率與比例尺

5.總結

騰訊、百度、Google的地圖投影均採用Web Mercator 投影座標系;騰訊與Google的地圖瓦片分辨率及切片範圍是完全相同的,僅僅是命名規則稍有不同,這就使得同一位置和縮放級別的地圖瓦片是完全可以重疊的;而百度地圖每個縮放級別分辨率與前兩者均不相同,而且地圖瓦片的座標原點做了一定的偏移,導致百度地圖與前兩者的瓦片是無法重疊的,這是因爲百度在GCJ-02的基礎上又進行了加密處理,形成了百度獨有的BD-09座標系。

6.應用

網絡地圖基本採用的是同一投影(Web Mercator),依據地圖瓦片索引算法可以對不同來源的地圖進行Mushup應用,綜合座標轉換可與地方座標系很好的匹配。以下是在ArcGIS中匹配地方座標系的應用效果。


應用參考:開源項目ArcBruTile 和BruTile。

ArcBruTile display basemaps from OpenStreetMap, Bing, MapQuest, CloudMade, Mapbox, Stamen Design, PDOK (NL), National Park Service (US), Waag Society (NL) and others in ArcGIS Desktop 10.0/10.1/10.2.

BruTile is a C# open source library to access tile services like OpenStreetMap and Bing. BruTile has few dependencies, is platform independent and has a limited scope. It is intended for reuse by other more sophisticated libraries

ArcBruTile is based on the generic tiling library BruTile. For other viewers based on BruTile library  see theMapsui project (Silverlight, WPF, Pixelsense, Windows Phone, Windows 8).

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章