Javascript 更改L.layerGroup中L.Marker的坐标

Javascript 更改L.layerGroup中L.Marker的坐标,javascript,leaflet,Javascript,Leaflet,我找不到如何更改放置在layerGroup中的图层(L.Marker)坐标的方法。 我创建了全局变量var markerGroup=newl.layerGroup() 然后我有一个功能,我在其中创建层,如: var newMarker = L.marker([decimal_lat, decimal_lon]); markerGroup.addLayer( newMarker ); 我有一个模式对话框窗口,我在其中更改标记的坐标(取决于我更改的图层中的标记的id): 但此解决方案会产生如下错误

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

然后我有一个功能,我在其中创建层,如:

var newMarker = L.marker([decimal_lat, decimal_lon]);
markerGroup.addLayer( newMarker );
我有一个模式对话框窗口,我在其中更改标记的坐标(取决于我更改的图层中的标记的id):

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

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


有没有办法更改L.layerGroup中特定位置上L.Marker的坐标?

标记层没有
setlatLngs
方法,它们有。很可能你犯了一个打字错误

这是我正确复制您的问题的地方。首先,我添加了一个带有任意坐标的标记,然后我将它移动到地图的中心,正好是地图视图设置的位置

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));

真的,你是对的,但是我可以问你,为什么要在getLayer()方法24中使用它?我认为它应该是0,因为MarkerGroup的长度。
getLayer()
接收层的id作为参数,而不是
LayerGroup
中的索引。您可以在这里看到:。遍历标记组以查看每个层的id:
markerGroup.eachLayer(函数(层){console.log(层._传单_id);})这意味着层的ID是自动生成的,对吗?是的,如果您希望通过索引获得一个层,您可以迭代所有层(使用
eachLayer
方法),直到迭代顺序等于您需要的索引。
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));