为 Leaflet TileLayer 指定纬度和经度

Specifying Lat & Long for Leaflet TileLayer

这似乎是个简单的问题,但我已经纠结了几个小时了。

我有一系列文件,即

kml_image_L1_0_0.jpg
kml_image_L2_0_0.jpg
kml_image_L2_0_1.jpg
kml_image_L2_1_0.jpg
kml_image_L2_1_1.jpg

等然而,将它们绘制在传单地图表面上可以理解地把图像放在地球表面的 0,0 处,文件推断的 0 缩放级别实际上应该在 15 左右。

所以我想指定图像的起始纬度和经度,以及它们应该从什么缩放级别开始。我试过边界(不显示任何东西),我试过偏移缩放级别。

我需要这个,因为用户需要点击离线地图来指定他们所在的位置,而我需要 GPS 坐标。

我也有一个 KML 文件,但它似乎对在地图上绘制矢量数据更有帮助。

非常感谢任何帮助,干杯。

如果我没理解错的话,你的 "kml_image_Lz_x_y.jpg" 图像实际上是图块,文件名中有缩放、水平和垂直索引?

你的问题是他们使用 (z,x,y) 数字就好像他们从最顶层开始一样(缩放 0,整个世界的单个图块),但实际上它们只是一小部分瓷砖金字塔?

而且您不能按原样使用它们,因为您仍然想获得实际的地理坐标(纬度、经度),如果您使用这些图块就好像它们在展示整个世界,那将是完全错误的?

在这种情况下,您有几种解决方法:

最简单可靠的方法可能是简单地编写一个小脚本来重命名您所有的图块为其真实的 (z,x,y) 编号。

另一种选择是在写入图块 src 属性之前修改 (z,x,y) 数字,并应用适当的偏移量(z 为常量,x 和 y 按 z 缩放)。那应该会发生在 L.TileLayer.getTileUrl() method.

祝你好运! :-)