3

我已經成功地將一個圓圈綁定到我的標記使用谷歌地圖api v3。我知道這一點,因爲如果我讓標記拖動,圓圈也會移動。谷歌地圖API v3隱藏和顯示一個標記的圓圈

如何點擊標記來引用圓。如果不可見,我需要顯示圓圈,反之亦然。

下面是創建我發現了計算器的回答使我覺得我需要做的rem'd出地圖的結合,以及中心結合的標誌和圓形

var markerOptions = { 
title: title, 
icon: markerImage, 
shadow: markerShadow, 
position: latlng, 
map: map 
} 
var marker = new google.maps.Marker(markerOptions); 
// Add a Circle overlay to the map. 
var circle = new google.maps.Circle({ 
map: map, 
radius: 50*1609.34,// 50 MI 
visible: false 
}); 
//circle.bindTo('map', marker); 
circle.bindTo('center', marker, 'position'); 

的代碼,但那沒用。

這是我的標記點擊事件。

google.maps.event.addListener(marker, "click", function() { 
var infowindowOptions = { 
content: html 
} 
var infowindow = new google.maps.InfoWindow(infowindowOptions); 
cm_setInfowindow(infowindow); 
infowindow.open(map, marker); 
marker.setIcon(markerImageOut); 
marker.circle({visible: true}); 

任何想法。我需要與剛被點擊或被遮蔽的標記的邊界相互作用。

回答

5

一種選擇是使圓圈成爲標記的屬性(如._myCircle),在click處理程序中將其引用爲marker._myCircle。

添加圓作爲標記的_myCircle屬性:

var circle = new google.maps.Circle({ 
    map: map, 
    radius: 50*1609.34,// 50 MI 
    visible: false 
}); 
circle.bindTo('center', marker, 'position'); 
marker._myCircle = circle; 

要切換它使用類似(未測試):

if(marker._myCircle.getMap() != null) marker._myCircle.setMap(null); 
else marker._myCircle.setMap(map); 
+0

感謝您的答覆。我如何使圓圈成爲標記的屬性? – Timberline411

+0

我的答案中有一個示例(marker._myCircle是「標記的屬性」)。它不適合你嗎? – geocodezip

+0

原諒我,但我只是從這個api開始,並不熟悉對象模型。如何設置market._myCircle等於我創建的中心與我們正在談論的標記綁定的圓圈。換句話說,創建與我剛剛創建的圓相等的標記屬性的JS代碼是什麼? – Timberline411

0
var rad =".$this->conf['radius'] * 1000 ."; //convert km to meter 
var populationOptions = { 
    strokeColor: '#FF0000', 
    strokeOpacity: 0.8, 
    strokeWeight: 1, 
    fillColor: '#FF0000', 
    fillOpacity: 0.35, 
    map: map,//map object 
    center: new google.maps.LatLng($corr_match[0], $corr_match[1]),//center of circle 
    radius: rad 
}; 
var cityCircle = new google.maps.Circle(populationOptions);