2011-05-19 7 views
17

Je crée un cercle en utilisant la méthode google.maps.Circle(). Tout cela fonctionne bien et dandy, mais comment puis-je retirer ce cercle?Suppression d'un cercle/forme Google Maps

Mon code:

var populationOptionsAgain = { 
    strokeColor: "#c4c4c4", 
    strokeOpacity: 0.35, 
    strokeWeight: 0, 
    fillColor: "#ffffff", 
    fillOpacity: 0.35, 
    map: map, 
    center: results[0].geometry.location, 
    radius: 40000 
}; 
cityCircle = new google.maps.Circle(populationOptionsAgain); 

Répondre

55

Vous devez appeler la méthode setMap sur l'objet Circle null:

cityCircle.setMap(null); 
+0

Hmm, son arrière! lol - cool, merci - malade accepter dès que possible –

+0

@Neurofluxation Pas de problèmes :) C'est un peu contre-intuitif au début (google maps v2 l'a fait dans l'autre sens), mais je pense que c'est logique une fois que vous y êtes habitué. – RedBlueThing

+0

comment enlever tous les dessin ou cercle multiple ..? –

9

Pour supprimer un cercle de la carte, appelez la méthode setMap() passant null comme l'argument.

circle.setMap(null); 

Notez que la méthode ci-dessus ne supprime pas le cercle. Il supprime simplement le cercle de la carte. Si à la place vous souhaitez supprimer le cercle, vous devez le supprimer de la carte, puis définir le cercle lui-même sur null.

https://developers.google.com/maps/documentation/javascript/shapes#circle_remove

+1

Affecter à null ne "supprime pas le cercle" non plus, il réaffecte simplement la valeur de la référence. – zerkms

+0

La bonne façon de le dire serait de "perdre toutes les références à l'objet cercle". Définir null à tous fonctionnerait. – Hoffmann

+0

comment enlever tout le dessin ou le cercle multiple ..? –

1

Vous devez supprimer des événements auditeurs, pas seulement cacher le cercle, en fait circle.setMap(null) va juste cacher le cercle

function remove_circle(circle) { 
    // remove event listers 
    google.maps.event.clearListeners(circle, 'click_handler_name'); 
    google.maps.event.clearListeners(circle, 'drag_handler_name'); 
    circle.setRadius(0); 
    // if polygon: 
    // polygon_shape.setPath([]); 
    circle.setMap(null); 
}