13

マップからすべてのポリラインをクリアするのに苦労しています。最新のものだけをクリアします。

var polylines;

// add map polylines
function addPolyline(polyArray, colour) {
    polylines = L.polyline(polyArray, {color: colour});
    polylines.addTo(map);
}

// clear polylines   
function clearPolylines() {
    map.removeLayer(polylines);
}

addPolylines は複数回呼び出され、clear Polylines は 1 回呼び出されます。マップ上のすべてのポリラインをクリアするにはどうすればよいですか?

4

6 に答える 6

29

それらをすべて覚えておくか、少しごまかして覗き込んmap._layersで見つける必要があります。

@Benによるサンプルコードを追加して編集:

function clearMap() {
    for(i in m._layers) {
        if(m._layers[i]._path != undefined) {
            try {
                m.removeLayer(m._layers[i]);
            }
            catch(e) {
                console.log("problem with " + e + m._layers[i]);
            }
        }
    }
}
于 2013-01-29T22:48:55.143 に答える