2011-05-19 76 views
17

我使用google.maps.Circle()方法創建了一個Circle。這一切都正常工作,但我怎樣才能刪除所述的圈子?刪除Google地圖Circle/shape

我的代碼:

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

回答

55

你需要調用Circle對象上setMap方法爲null:

cityCircle.setMap(null); 
+0

嗯,它的倒退!大聲笑 - 很酷,謝謝 - 不好接受盡快 – 2011-05-19 12:59:46

+0

@Neurofluxation沒有問題:)它有點反直覺起初(谷歌地圖V2做它的另一種方式),但我認爲它實際上是有道理的,一旦你習慣了它。 – RedBlueThing 2011-05-19 13:04:35

+0

如何去除所有繪圖或多個圓..? – 2017-03-22 10:22:12

9

要從地圖上刪除某個圈子,叫setMap()方法傳遞null爲爭論。

circle.setMap(null); 

請注意,上述方法不會刪除該圓圈。它只是從地圖上刪除該圈子。如果您希望刪除該圓圈,則應將其從地圖中刪除,然後將圓圈設置爲null

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

+1

賦值爲null也不會「刪除該圓」,它只是重新分配引用的值。 – zerkms 2014-01-22 01:24:10

+0

正確的說法是「失去對圓對象的所有引用」。將null設置爲全部都可以。 – Hoffmann 2014-04-08 19:15:33

+0

如何去除所有繪圖或多個圓..? – 2017-03-22 10:21:57

1

您需要刪除的事件監聽器也一樣,不只是隱藏了一圈,在-其實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); 
}