当前位置: 首页 > 后端技术 > Node.js

GoogleMaptiledownload

时间:2023-04-03 15:15:36 Node.js

GoogleMaptiledownload各种地图下载器都是要钱的,我穷得懒得自己写一个。地址瓦片地址https://mts1.google.com/vt/lyrs={type}&gl=CN&hl={language}&x={x}&y={y}&z={z}参数说明lyrs=typeh=roadsonlym=standardroadmapp=terrainr=roadmaps=satelliteonlyt=terrainonlyy=hybridgl=coordinatesystemCN=ChineseMarscoordinatesystemhl=maptextlanguagezh-CN=Chineseen-US=Englishx=tile横坐标y=tile纵坐标z=zoomlevel卫星地图0-14,roadmap0-17xyz坐标计算GoogleMap使用的是蒙卡托投影(Mercator),记住就好了,因为在使用地图的时候需要用到。假设某点的经度=lng,纬度=lat,缩放级别为zoom,那么对应的tile坐标为://globalmaptile的总行列数n=2^zoom;//当前坐标tilex的横坐标//横坐标计算比较简单,-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个对角线的经纬度坐标,根据上面的公式计算瓦片坐标,访问瓦片下载地址下载保存图片。注意(坑!)tile的横纵坐标范围为0~2^zoom,1x1为level1,2x2为level2,4x4为level3,...卫星图和路图建议单独下载,并在地图显示控件中分层显示。这允许您有选择地显示不同的内容。