改变L.layerGroup中L.Marker的坐标

时间:2016-03-06 16:11:13

标签: javascript leaflet

我找不到如何更改layerGroup中放置的图层(L.Marker)坐标的方法 我创建了全局变量var newMarker = L.marker([decimal_lat, decimal_lon]); markerGroup.addLayer( newMarker );

然后我有一个功能,我在这里创建像:

这样的图层
(markerGroup.getLayer(id)).setLatLngs( L.latLng(parseFloat(lat_p), parseFloat(lon_p)) );

我有一个模态对话框窗口,我可以更改标记的坐标(取决于我更改了我的图层中的标记):

{{1}}

但是这个解决方案会产生如下错误:

  

无法读取属性' setLatLngs'未定义的

有没有办法如何改变L.Marker在L.layerGroup中特定位置的坐标?

1 个答案:

答案 0 :(得分:2)

标记图层没有setlatLngs方法,它们确实有setLatLng。很可能你犯了一个拼写错误。

以下fiddle我正确地重现了您的问题。首先,我添加了一个带有任意坐标的标记,然后我将其移动到地图的中心,确切地说是设置地图视图的位置。

var markerGroup = new L.layerGroup();
var newMarker =  L.marker([1000, 1000]);
markerGroup.addLayer( newMarker );
markerGroup.addTo(map);   
markerGroup.getLayer(24).setLatLng(new L.LatLng(0,0));