2011-05-19 41 views
17

Estoy creando un círculo utilizando el método google.maps.Circle(). Todo esto funciona bien y dandy, pero ¿cómo puedo eliminar dicho círculo?Eliminar un mapa/forma de Google maps

Mi código:

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); 

Respuesta

55

Es necesario llamar al método setMap en el objeto Círculo de nulo:

cityCircle.setMap(null); 
+0

Hmm, su revés! jajaja - genial, gracias - acepto lo antes posible –

+0

@Neurofluxation Sin problemas :) Al principio es un poco contra intuitivo (google maps v2 lo hizo al revés), pero creo que en realidad tiene sentido una vez que estás acostumbrado. – RedBlueThing

+0

cómo eliminar todo el dibujo o el círculo múltiple ..? –

9

Para eliminar un círculo en el mapa, llamar al método setMap() pasar null como el argumento.

circle.setMap(null); 

Tenga en cuenta que el método anterior no elimina el círculo. Simplemente elimina el círculo del mapa. Si, por el contrario, desea eliminar el círculo, debe eliminarlo del mapa y luego establecer el círculo en el null.

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

+1

Asignar a null tampoco "elimina el círculo", simplemente reasigna el valor de la referencia. – zerkms

+0

La forma correcta de decirlo sería "perder todas las referencias al objeto del círculo". Establecer null para todos ellos funcionaría. – Hoffmann

+0

cómo eliminar todo el dibujo o círculo múltiple ..? –

1

Es necesario eliminar eventos oyentes también, no sólo ocultar el círculo, en el hecho circle.setMap(null) simplemente se oculta el círculo

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); 
}