Openlayers 将图像平铺为XYZ平铺

Openlayers 将图像平铺为XYZ平铺,openlayers,Openlayers,我找不到OpenLayers使用的XYZ tiles源代码的任何规范 我有一些图像,其中我每个人都知道墨卡托投影中的4个角(EPSG:3857) 我想将这些图像平铺到XYZ目录中,但不确定如何在每个缩放级别找到每个XYZ平铺的角。如果我能计算出所有的xyz瓦片角点,也就是EPSG:3857坐标,我就可以简单地将图像的4个角点的交点部分切掉。一般的想法是假设地球是球形的,赤道的周长为40075公里。然后在北/南和东/西方向将其分成两半,换算成米,左上角的起点为(-20037508.34200375

我找不到OpenLayers使用的XYZ tiles源代码的任何规范

我有一些图像,其中我每个人都知道墨卡托投影中的4个角(EPSG:3857)


我想将这些图像平铺到XYZ目录中,但不确定如何在每个缩放级别找到每个XYZ平铺的角。如果我能计算出所有的xyz瓦片角点,也就是EPSG:3857坐标,我就可以简单地将图像的4个角点的交点部分切掉。

一般的想法是假设地球是球形的,赤道的周长为40075公里。然后在北/南和东/西方向将其分成两半,换算成米,左上角的起点为(-20037508.3420037508.34)。因此,要找到任何平铺,只需取左上角和当前点之间的差值(单位:米球形墨卡托(EPSG:3857))除以分辨率乘以平铺大小,即在任何缩放级别上平铺覆盖的米数

x = Math.round((bounds.left - maxExtent.left) / (resolution * tileSize.w));
y = Math.round((maxExtent.top - bounds.top) /  (resolution * tileSize.h));
这些计算可以在这里的getXYZ函数中看到:为了保持干净,您可能不想偏离标准的EPSG:3857分辨率,这些分辨率在这里的initMercatorProjection函数中定义


这里有一个有趣的页面,直观地显示了各种平铺方案计算:

maptiler链接帮助很大。我能够将函数移植到matlab中,并做了一个简单的演示,发现在不同的zoom lvlsi中,tiles只能作为学生来做。公司不想为此付出代价:染料。我正在将其移植到opencv,现在为我们的平铺编写真正的提取算法