我找不到方法如何更改放置在layerGroup中的layer(L.Marker)的坐标。
我创建了全局变量var markerGroup = new L.layerGroup();

然后,我有一个函数可以在其中创建如下图层:

var newMarker = L.marker([decimal_lat, decimal_lon]);
markerGroup.addLayer( newMarker );


我有一个模态对话框窗口,可在其中更改标记的坐标(取决于id,我从图层中更改的标记是什么):

(markerGroup.getLayer(id)).setLatLngs( L.latLng(parseFloat(lat_p), parseFloat(lon_p)) );


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


  无法读取未定义的属性“ setLatLngs”


有什么办法可以更改L.layerGroup中特定位置的L.Marker坐标?

最佳答案

标记层没有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));

07-28 06:51