Leaflet - How to match marker and polyline on drag and drop #2(通过单击按钮删除最后一个标记和折线)

Leaflet - How to match marker and polyline on drag and drop #2 (delete the last marker and polyline with button click)

我又卡住了。 放置标记并连接它们是有效的。感谢“Falke 设计”:-) 现在我想删除最后一个标记(Waypoint),当我点击“删除最后一个 Waypoint”按钮时。 我设法做到了并且运行良好,但最后一行没有被删除。 完整代码你可以在这里找到: Demo code

这个问题应该在 函数 delteLastWp() 第 218 行

function delteLastWp(id) { 

    var new_markers = []
    marker_new.forEach(function(marker) {
        if (marker._id == id) {
            map.removeLayer(marker);
        }
        else new_markers.push(marker)
    })
    marker_new = new_markers

    // remove the last point/line in the polyline as well ! 
    var new_polylines = []  
    tempLine.forEach(function(polyline) {
        if (polyline._id == id) {
            map.removeLayer(polyline); //*** This si not working ****
            // remove the last point in the polyline as well !
        }
        else new_polylines.push(polyline)
    })      
}

请帮帮我!非常感谢您:-)

将您的代码更改为:

function delteLastWp()  // ## with the last segment of the polyline 
{ //marker_new[lineCount]

    var new_markers = []
    marker_new.forEach(function(marker) {
        if (marker._id == lineCount) {
            map.removeLayer(marker);  // Working :-)
      lineCount--;
        }
        else new_markers.push(marker)
    })
    marker_new = new_markers;

    var latlngs = tempLine.getLatLngs()
    latlngs.splice(-1); 
    tempLine.setLatLngs(latlngs);
        
}

您从行中加载 latlng,然后删除最后一个 latlng,然后再次将其添加到 tempLine