我找不到如何更改放置在layerGroup中的图层(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)) );
但是这个解决方案会产生如下错误:
Cannot read property 'setLatLngs' of undefined
有什么方法可以改变L.layerGroup中特定位置上L.Marker的坐标吗?
最佳答案
标记层没有 setlatLngs
方法,但它们有 setLatLng
。您很可能犯了一个拼写错误。
这是fiddle我已经正确重现了您的问题。首先,我添加了一个具有任意坐标的标记,然后将其移动到 map 的中心,正是设置 map View 的位置。
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));
关于javascript - 改变L.layerGroup中L.Marker的坐标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35829195/