web-dev-qa-db-fra.com

Supprimer un cercle/une carte Google maps

Je crée un cercle à l'aide de la méthode google.maps.Circle (). Tout cela fonctionne très bien, mais comment puis-je supprimer ledit cercle?

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);
25
Barrie Reader

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

cityCircle.setMap(null);
67
RedBlueThing

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

circle.setMap(null);

Notez que la méthode ci-dessus ne supprime pas le cercle. Cela supprime simplement le cercle de la carte. Si, au lieu de cela, 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

11
F. Malina

Vous devez également supprimer les écouteurs d'événements, pas seulement cacher le cercle, mais circle.setMap(null) masquera simplement 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);
}
1
simo