各种地图下载器都要花钱,无奈太穷只好本身写一个。google
瓦片地址
https://mts1.google.com/vt/lyrs={type}&gl=CN&hl={language}&x={x}&y={y}&z={z}code
lyrs = 类型图片
gl = 坐标系get
hl = 地图文字语言it
Google Map采用蒙卡托投影(Mercator),记住了就行,由于使用地图的时候须要用到。class
假设某点经度=lng,纬度=lat,缩放级别为zoom,那么对应的瓦片坐标为:map
// 全球地图瓦片总行数、总列数 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级1x1,2级2x2,3级4x4,……地图
卫星图,路线图建议分别下载,在地图显示控件中分层显示,这样能够选择性展现不一样内容。英文