百度與Google地圖瓦片組織方式對比

來源:互聯網
上載者:User

百度是從中心點經緯度(0,0)度開始計算瓦片,在第1級時百度將世界地圖分為4塊。

中心點右上部分(中國地區)佔1塊。

 

Google是從左上方經緯度(-180,90)度開始計算瓦片,在第1級時Google將世界地圖分為1塊。

 

在第2級時,百度地圖(中心點右上部分)分為2塊,

這是因為在這級百度的地圖解析度為65536米/像素,解析度=math.pow(2,(18 - n))。

WGS84球體周長:40075016.685578488,球體周長一半為20037508.34米。

瓦片個數=20037508.34/(65536*256)=1.19。

因此在第2級百度地圖(中心點右上部分)有2塊瓦片。

 

瓦片編號類似於Excel表格儲存格編號,原點向上和向右為正,向下和向左為負。儲存格X,Y編號從0開始,如右上方第一格X=0,Y=0,X是指向右方向即水平,Y是指向上方向即垂直。

而Google地圖在第2級將世界地圖分為4塊,瓦片編號是向右和向下,沒有負數。

在經緯度(0,0) 的右上方部分即中國區,只有1塊瓦片,而百度卻是2塊。這是為何呢?

這是由於兩者在這級的解析度不同導致的。

經緯度(0,0)右上方瓦片計算:

百度瓦片個數=20037508.34/(65536*256)=1.19,取最大整數為2塊。

Google瓦片個數=20037508.34/( 78271.5169639999*256)=1塊。

百度解析度計算公式:

Double res = math.pow(2,(18 - n)) // n為層數(1-18)

Google解析度計算公式:

Double tileSize=256 //瓦片尺寸(256*256)

Double initialResolution = 2 * math.pi * 6378137 / tileSize //6378137為球體半徑

Double res = initialResolution /math.pow(2,zoom) //zoom為層數(0-21)

 

ArcGISServer的瓦片組織方式與Google類似。如果想在AGS for Flex中採用百度地圖作為底圖,且想將百度地圖下載為離線資料,並發布瓦片地圖服務供flex 調用,有什麼方法?

以下提供一種解決方案:

1) 開發一個工具,下載百度地圖成離線資料。

2) 開發一個工具,將百度地圖瓦片編號轉成AGS地圖瓦片編號。當然這樣做的話底圖資料就與Google地圖無法吻合。但我們假設底圖只用百度地圖,業務圖座標也是從百度中採集的情況。

3) 如何將百度的瓦片編號轉成AGS瓦片編號,這個沒有什麼公式,我建議固定一個經緯度點,並計算該點的百度和Google的瓦片編號,做為瓦片轉換的參照目標。

以北京天安門的地理座標點(116.407945,39.91349)計算出百度與Google各層瓦片編號。

百度

Google

層級

行

列

層級

行

列

1

0

0

0

0

0

2

0

0

1

1

0

3

1

0

2

3

1

4

3

1

3

6

2

5

6

2

4

13

5

6

12

4

5

26

12

7

24

9

6

52

24

8

49

18

7

105

48

9

98

36

8

210

97

10

197

73

9

421

194

11

395

147

10

843

387

12

790

294

11

1685

776

13

1581

589

12

3372

1551

14

3163

1178

13

6744

3103

15

6327

2356

14

13489

6207

16

12654

4712

15

26979

12415

17

25308

9425

16

53958

24830

18

50617

18851

17

107917

49661

4) 有了這張對照表,我們就可以通過百度的瓦片編號來計算對應的Google瓦片編號。

計算公式如下:

Google瓦片行編號=[Google參照瓦片行編號+(百度行編號 – 百度參照瓦片行編號)] //向右,行為遞增

Google瓦片列編號=[Google參照瓦片列編號- (百度列編號 – 百度參照瓦片列編號)] //向上,列為遞減

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.