在升级Leaflet 1.0之前,我使用spliceLatLngs方法将坐标放置在折线对象内,例如:
line.spliceLatLngs(index, 1, new L.LatLng(lat, lng));
但是,随着最近的升级,spliceLatLngs被重构,因为新的折线与嵌套的坐标数组是一样的。
我试图做一个这样的选择:
var latLngs = line.getLatLngs();
// Because I don't need the multi-dimensional array here
if (line instanceof L.Polygon) {
latLngs = latLngs[0];
}
if (data) {
latLngs.splice(index, 1, data);
} else {
latLngs.splice(index, 1);
}
line.redraw();
但是使用这种替代方法似乎可以摆脱尾随坐标。 :(
我是否只是缺少明显的东西来将坐标拼接到现有折线中?
先感谢您!
最佳答案
您可以创建一个辅助函数来替换spliceLatLngs
,
这是一个用Typescript编写的示例:
spliceLatLngs(polyline: L.Polyline, start: number, deleteCount: number, ...items: L.LatLng[]) {
const latlngs: L.LatLng[] = polyline.getLatLngs();
latlngs.splice(start, deleteCount, ...items);
polyline.setLatLngs(latlngs);
}