为了缓存切片以供离线使用,我尝试根据某个缩放级别计算切片坐标。计算的x坐标是正确的,但y坐标不是。
此Old example将实际接收的坐标与计算出的坐标进行比较。 (单击地图以显示结果)
我使用map.project(latlng,zoom)来获取投影坐标,然后除以tileSize为256. 这种方法是否正确?
编辑: 感谢Ivan Sanchez关于TMS中y反转的方向。实际上在使用map.project(latlng,zoom)投影点后,您需要反转y坐标,如下所示:
这是另一个Link,它显示了当前地图缩放的y坐标的正确计算,对于其他缩放级别,需要相应地重新计算globalTileRange。
此致
答案 0 :(得分:1)
你的方法是正确的。的然而强>:
为了获得由Leaflet加载的图块坐标,您循环遍历所有加载的图像并输出这些值的最小值/最大值。
这种方法的问题是Leaflet 没有立即卸载屏幕外的图块。请参阅keepBuffer
option,错误#4039和PR #4650。
要获取地图范围内可见的图块边界,请参阅L.GridLayer
周围y
内部使用的私有方法。
在TMS中,y
坐标上升,而非TMS图块则下降。这是因为TMS由地理学家完成,其中y
坐标是this line of code,而非TMS图块最初是由计算机程序员完成的,计算机程序员将branch
坐标解释为向下像素。
有关更多背景信息,请参阅northing和https://wiki.openstreetmap.org/wiki/TMS#The_Y_coordinate以及https://wiki.osgeo.org/wiki/Tile_Map_Service_Specification#TileMap_Diagram