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));
}
答案 0 :(得分:10)
我知道这篇文章已经过时但是要从标记图层列表中删除所有标记:
markerLayer.clearMarkers();
答案 1 :(得分:9)
您可以使用以下标记从标记图层中删除单个标记:
markers.removeMarker(marker);
使用标记删除整个图层:
markers.destroy();
您应该能够删除弹出窗口:
map.removePopup(popup);
其中popup是之前创建的Popup对象。
答案 2 :(得分:0)
尝试以下任何代码,希望对您有所帮助。
this.markerSource.removeFeature(this.iconFeature);
或
this.markerSource.removeFeature(iconFeature);