6

LoadPinは、地図にマーカーを追加する関数です。最初の呼び出しでレイヤーを初期化します。mapはopenlayersマップオブジェクトです。

ただし、map.removeLayer( "markers")または "Markers"を使用しても、マップからマーカーは削除されません。これを行うための破棄操作についての言及を見ましたが、それを見つけることができません。

また、ポップアップを削除するにはどうすればよいですか?

var markers = null
function LoadPin(LL, name, description) {
    var size = new OpenLayers.Size(36, 47);
    var offset = new OpenLayers.Pixel(-(size.w / 2), -size.h);
    var icon = new OpenLayers.Icon('http://www.waze.co.il/images/home.png', size, offset);

    if (markers == null) {
        markers = new OpenLayers.Layer.Markers("Markers");
        map.addLayer(markers);
    }

    var marker = new OpenLayers.Marker(LL, icon)
    markers.addMarker(marker);
    var bounds = markers.getDataExtent();
    map.zoomToExtent(bounds);

    map.addPopup(new OpenLayers.Popup.FramedCloud("test", LL, null,
                "<div style='font-family:Arial,sans-serif;font-size:0.8em;'>" + name + "<br>" + description + "</div>",
                anchor = null, true, null));
}
4

3 に答える 3

10

次の方法で、マーカーレイヤーから個々のマーカーを削除できます。

markers.removeMarker(marker);

マーカーを使用してレイヤー全体を削除するには、次の方法を実行する必要があります。

markers.destroy();

次のコマンドでポップアップを削除できるはずです。

map.removePopup(popup);

ここで、popupは以前に作成されたPopupオブジェクトです。

于 2010-11-03T21:12:59.100 に答える
10

この投稿が古いことは知っていますが、マーカーレイヤーリストからすべてのマーカーを削除するには、次を使用します。

markerLayer.clearMarkers();
于 2012-12-06T09:02:12.017 に答える
0

以下のコードのいずれかを試してみてください。お役に立てば幸いです。

this.markerSource.removeFeature(this.iconFeature); 

また

this.markerSource.removeFeature(iconFeature);
于 2019-10-24T13:11:20.457 に答える