Question

est une fonction axe dynamométrique pour ajouter un marqueur à une carte. Il initialise la couche sur le premier appel. la carte est une carte openlayers objet.

Mais en utilisant map.removeLayer ( « marqueurs ») ou « marqueurs », ne supprime pas les marqueurs de la carte. J'ai vu une mention d'une opération détruire pour ce faire, mais ne peux pas trouver ça.

ET, comment puis-je supprimer les popups?

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));
}
Était-ce utile?

La solution

Vous pouvez supprimer des marqueurs individuels d'une couche de marquage avec:

markers.removeMarker(marker);

Retrait de la couche entière, avec des marqueurs doit être réalisé avec:

markers.destroy();

Vous devriez être en mesure de supprimer une fenêtre contextuelle avec:

map.removePopup(popup);

où pop-up est l'objet Popup créé précédemment.

Autres conseils

Je sais que ce poste est vieux, mais pour supprimer tous les marqueurs de la liste des couches de marqueur utilisation:

markerLayer.clearMarkers();
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top