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.floor(((lng + 180.0) / 360.0) * n);
// 当前坐标瓦片纵坐标y
// 看不懂...大概意思是-90°~90°,不平均分n份
tan = math.tan(toRadians(lat));
sec = math.sec(toRadians(lat));
y = math.floor((1 - (math.log(tan + sec) / math.pi)) / 2 * n);
下载地图时,可取一个矩形区域2个对角经纬度坐标,根据以上公式计算瓦片坐标,访问瓦片下载地址进行下载保存图片。
注意(坑!)
瓦片横纵坐标范围是 0 ~ 2^zoom,1级1×1,2级2×2,3级4×4,……
卫星图,路线图建议分别下载,在地图显示控件中分层显示,这样可以选择性展示不同内容。