Javascript 更改L.layerGroup中L.Marker的坐标
我找不到如何更改放置在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): 但此解决方案会产生如下错误
我创建了全局变量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));