如何计算Leaflet中的Tiles坐标来请求TMS服务器?

How to Calculate Tiles Coordinates in Leaflet to Request TMS Server?

为了缓存瓦片供离线使用,我尝试根据一定的缩放级别计算瓦片坐标。计算出的 x 坐标正确,但 y 坐标不正确。

Old example 将实际接收到的坐标与计算出的坐标进行比较。 (点击地图显示结果)

我使用 map.project(latlng,zoom) 获取投影坐标,然后除以 tileSize,即 256。这种方法是否正确?

编辑: 感谢 Ivan Sanchez 对 TMS 中 y 反转的定位。实际上,在用 map.project(latlng,zoom) 投影点后,您需要反转 y 坐标,如下所示:

  1. 你计算对应缩放级别的_globalTileRange(zoom),然后
  2. InvertedY = _globalTileRange(zoom).max.y - y ;

这是另一个 Link,显示了针对当前地图缩放比例正确计算 y 坐标,对于其他缩放级别,需要相应地重新计算 globalTileRange。

此致,

你的做法是正确的。 然而: