6
votes

Avec OpenLayers, quelle est la bonne façon d'éliminer une couche de marqueurs et les popups?

LoadPin est une fonction pour ajouter un marqueur à une carte. Il initialise la couche sur le premier appel. Carte est un objet de carte OpenLayers.

mais à l'aide de Map.Removelayer ("marqueurs") ou "marqueurs", ne supprime pas les marqueurs de la carte. J'ai vu une mention d'une opération de destruction pour le faire, mais je ne peux pas trouver cela. P>

et, comment puis-je supprimer les popups? P>

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 commentaires

3 Réponses :


10
votes

Vous pouvez éliminer les marqueurs individuels d'une couche de marqueur avec: xxx pré>

Retrait de la couche entière, les marqueurs doivent être obtenus avec: P>

map.removePopup(popup);


1 commentaires

Travaillé comme un charme! Merci!



10
votes

Je sais que ce message est vieux, mais pour supprimer tous les marqueurs de la liste de la couche de marqueur Utilisez:

markerLayer.clearMarkers();


2 commentaires

J'aime cette méthode, mais incertaine la pertinence de Docs Desc: "Cette méthode supprime tous les marqueurs d'une couche. Les marqueurs ne sont pas détruits par cette fonction, mais sont supprimés de la liste des marqueurs."


@Haydenthhring s'il n'y a pas d'autre référence à eux, ils seront recueillis.



0
votes

Essayez l'un des codes ci-dessous, j'espère que cela vous aidera.

this.markerSource.removeFeature(iconFeature);


0 commentaires