Подтвердить что ты не робот

Удаление карт Google Circle/shape

Я создаю круг, используя метод google.maps.Circle(). Все это прекрасно работает и денди, но как я могу удалить указанный круг?

Мой код:

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

Ответ 1

Вам нужно вызвать метод setMap объекта Circle в значение null:

cityCircle.setMap(null);

Ответ 2

Чтобы удалить круг из карты, вызовите метод setMap(), передающий null в качестве аргумента.

circle.setMap(null);

Обратите внимание, что вышеупомянутый метод не удаляет круг. Он просто удаляет круг с карты. Если вместо этого вы хотите удалить круг, вы должны удалить его с карты, а затем установить сам круг null.

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

Ответ 3

Вам нужно также удалить прослушиватели событий, а не просто скрыть круг, а на самом деле circle.setMap(null) просто скроет круг

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