Jos*_* E. 5 javascript leaflet
在Leaflet 1.0升级之前,我使用spliceLatLngs方法将坐标放置在折线对象中,如:
line.spliceLatLngs(index, 1, new L.LatLng(lat, lng));
Run Code Online (Sandbox Code Playgroud)
然而,随着最近的升级,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();
Run Code Online (Sandbox Code Playgroud)
但是有了这个替代方案,它似乎摆脱了尾随坐标.:(
我只是遗漏了将坐标拼接成现有折线的明显缺陷吗?
先感谢您!
您可以创建一个辅助函数来替换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);
}
Run Code Online (Sandbox Code Playgroud)