欢迎光临散文网 会员登陆 & 注册

GIS杂谈:底图切片的换算

2023-03-08 09:28 作者:地理信息技术杂谈  | 我要投稿

现在网上有各种类型的地图下载器,通过设置地图范围,能够将一块区域中指定级别的底图切片下载下来,导出成切片文件夹,或者拼成一张影像图,这种下载涉及到底图切片的换算,下边借助gdal2tile的python代码,讲一下大概的换算原理。 

参考地址:

https://github.com/wclwksn/gdal2tiles/blob/master/gdal2tiles/gdal2tiles.py  

Web墨卡托(EPSG:3857)  

坐标系范围(单位:米):[-20037508.342789244, -20037508.342789244, 20037508.342789244, 20037508.342789244]  

切片尺寸是256*256,中心点为(xyz)(ox,oy):[-20037508.342789244, 20037508.342789244]的情况,

地图初始分辨率(第0级)是:initialResolution = 20037508.342789244 * 2 / 256 = 156543.03392804062  

第n级的分辨率是:resolution = initialResolution/(2的n次方)  

有经纬度坐标(x,y),转换成墨卡托坐标(mx,my),  

对应的(xyz)像素坐标: 

px=(mx-ox)/resolution; 

py=(my-oy)/resolution; 

再根据每张切片的尺寸,就能计算出切片的索引数,这样就能进行下载了,在js的开发中,推荐使用global-mercator类库。  

wgs84/cgcs2000(EPSG:4326)

分成两种情况:

第0级两张切片:initialResolution = 180 / 256 = 0.703125  

第0级两张切片:initialResolution = 180 / 256 = 1.40625  

切片尺寸是256*256,中心点为(xyz)(ox,oy):[-180, 90]的情况,  

第n级的分辨率是:resolution = initialResolution/(2的n次方)  

有经纬度坐标(x,y,  

对应的(xyz)像素坐标: 

px=(x-ox)/resolution; 

py=(y-oy)/resolution; 

再根据每张切片的尺寸,就能计算出切片的索引数,这样就能进行下载了。   


GIS杂谈:底图切片的换算的评论 (共 条)

分享到微博请遵守国家法律