我找不到方法如何更改放置在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));