2016-05-26 104 views
2

我已经创建使用MapTilerLeafletjs其中包含了数百个,我想从我的代码来引用点的虚构的地图自动。我在Leafletjs中创建了一个参考标记,我可以拖动到我的地图上的特定位置并获取像素坐标。获取多个点的坐标在Leafletjs

我现在需要做的一样,所有这些几百点,以产生一个键/值对的[location_name as key, coordinates as value]。如果我手动这样做,它可能需要几周时间。

是否有一个自动化的方法,我可以按照Leaflet,让我找回坐标更容易吗?该地图最初是一个矢量图像,我将其转换为png,然后使用MapTiler来满足所有不同尺寸的需求。

下面的代码显示了参考标记是如何工作的:

var map = L.map('map').setView([60, 0], 0); 

    L.tileLayer('{z}/{x}/{y}.png', { 
     maxZoom: 5, 
     minZoom: 1, 
     continuousWorld: false, 
     noWrap: true, 
     crs: L.CRS.Simple 
    }).addTo(map); 

    var marker = L.marker([70, 0], { 
     draggable: true, 
    }).addTo(map); 
    marker.bindPopup('<b>Test</b>').openPopup(); 

    marker.on('dragend', function(e) { 
     alert(marker.getLatLng().toString()); 
    }); 
+0

呃。这太难读了。如何处理一些空格,格式和一些代码? –

+0

哇,事情已经在Stackoverflow上发生了。 – Dimitris

+0

现在看看差异。 – Dimitris

回答

1

一个更好的工作流程是这样的:

  • 添加click事件处理程序的地图,让新的标志物可创建
  • 将这些新创建的标记添加到全局可访问数组
  • 使所有标记可拖动
  • 添加一个按钮,地图之外,它可以console.log()一次全部标记(然后复制粘贴)

在不知道数据的原始格式,这是很难看的数据可以自动转换,但是制定一个快速工具来缓解定位几百点的痛苦是可行的。

+0

这是一个很好的工作流程,但仍然需要耗费时间从地图上的每个区域进行搜索。基本上,我在我的地图上标注了300个伦敦的几百个街区,我想获取每个街区的坐标。 – Dimitris

+0

但是,如果您制作了图像拼贴,那么您将这些标签栅格化为图像的一部分,但无法提取它们。如果不知道手工地图的原始格式,就不可能考虑更好的解决方案。 – IvanSanchez

+0

原始地图是一个矢量图像,因此我可以使用它,但我是Leaflet的新手,并使用PNG方法开始此项工作。 – Dimitris