LOADPIN是将标记添加到地图的函数。它在第一个呼叫上初始化了层。地图是一个开放层映射对象。

但是使用map.removelayer(“标记”)或“标记”,不会从地图上删除标记。我看到了一个销毁行动来做到这一点,但找不到。

而且,如何删除弹出窗口?

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));
}
有帮助吗?

解决方案

您可以从标记层中删除单个标记:

markers.removeMarker(marker);

删除整个层,并使用以下标记来实现:

markers.destroy();

您应该能够删除以下弹出窗口:

map.removePopup(popup);

其中弹出窗口是前面创建的弹出对象。

其他提示

我知道这篇文章是旧的,但要从“标记层”列表中删除所有标记:

markerLayer.clearMarkers();
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top