Google Map瓦片下載

Google Map瓦片下載

各類地圖下載器都要花錢,無奈太窮只好自己寫一個。

地址

瓦片地址
https://mts1.google.com/vt/lyrs={type}&gl=CN&hl={language}&x={x}&y={y}&z={z}

參數說明

  • lyrs = 類型

    • h = roads only
    • m = standard roadmap
    • p = terrain
    • r = somehow altered roadmap
    • s = satellite only
    • t = terrain only
    • y = hybrid
  • gl = 座標系

    • CN = 中國火星座標系
  • hl = 地圖文字語言

    • zh-CN = 中文
    • en-US = 英文
  • x = 瓦片橫座標
  • y = 瓦片縱座標
  • z = 縮放級別 衛星圖0-14,路線圖0-17

xyz座標計算

Google Map採用蒙卡託投影(Mercator),記住了就行,因爲使用地圖的時候需要用到。

假設某點經度=lng,緯度=lat,縮放級別爲zoom,那麼對應的瓦片座標爲:

// 全球地圖瓦片總行數、總列數
n = 2 ^ zoom; 
// 當前座標瓦片橫座標x
// 橫座標計算比較簡單,-180°爲0,+180°爲n,需要向下取整來包含當前的座標
x = math.ceil(((lng + 180.0) / 360.0) * n);

// 當前座標瓦片縱座標y
// 看不懂...大概意思是-90°~90°,不平均分n份
tan = math.tan(toRadians(lat));
sec = math.sec(toRadians(lat));
y = math.ceil((1 - (math.log(tan + sec) / math.pi)) / 2 * n);

下載地圖時,可取一個矩形區域2個對角經緯度座標,根據以上公式計算瓦片座標,訪問瓦片下載地址進行下載保存圖片。

注意(坑!)

瓦片橫縱座標範圍是 0 ~ 2^zoom,1級1x1,2級2x2,3級4x4,……

衛星圖,路線圖建議分別下載,在地圖顯示控件中分層顯示,這樣可以選擇性展示不同內容。

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