指定Lat& Leaf for TileLayer

时间:2015-11-25 03:40:56

标签: leaflet gis kml

看起来像一个简单的问题,但我现在已经把头发撕了几个小时了。

我有一系列文件,即。

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文件,但它似乎对在地图上绘制矢量数据更有帮助。

非常感谢任何帮助,欢呼。

1 个答案:

答案 0 :(得分:1)

如果我理解正确的话," kml_image_Lz_x_y.jpg"您拥有的图像实际上是图块,文件名中有缩放,水平和垂直索引吗?

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

你不能按原样使用它们,因为你仍然想要获得实际的地理坐标(纬度,经度),如果你使用瓷砖就好像它们展示了整个世界一样,那将是完全错误的?

在这种情况下,您有几个选项作为解决方法:

最简单可靠的可能是简单地编写一个小脚本来重命名所有瓷砖到真正的(z,x,y)数字。

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

祝你好运! : - )