我正在編寫一個Web應用程序,該應用程序在Google Map上顯示圍繞一個標記的一個Circle。 placeMarker(location, radius)
在location
處設置標記並將其綁定到具有半徑的圓。每次調用placeMarker時,我都希望腳本重新繪製Circle和Marker。當我在控制檯中嘗試它時,它會用新位置重新繪製標記,但保留原始圓的半徑。 undefined
也被打印。我需要改變什麼才能使這個工作?通過函數調用重繪Google Maps圈和標記
var map;
var marker;
function placeMarker(location, radius) {
if (typeof radius === 'undefined') { radius = initialRadius; }
if (marker) {
marker.setPosition(location);
} else {
marker = new google.maps.Marker({
position: location,
map: map,
draggable: true
});
}
var circle = new google.maps.Circle({
map: map,
radius: radius,
fillColor: '#AA0000',
});
circle.bindTo('center', marker, 'position');
}
function initialize() {
map = new google.maps.Map(document.getElementById('map'), {
center: {lat: 0, lng: 0},
zoom: 1
});
google.maps.event.addListener(map, 'click', function (event) {
placeMarker(event.latLng);
});
google.maps.event.addDomListener(window, "resize", function() {
var center = map.getCenter();
google.maps.event.trigger(map, "resize");
map.setCenter(center);
});
}
隨着發佈的代碼,我得到一個JavaScript錯誤:'未捕獲的ReferenceError:initialRadius未定義'。如果我解決了這個問題,[它可以像我期望的那樣工作](http://jsfiddle.net/geocodezip/e9v5kL9s/)(以及我認爲你想要的方式,除了每次點擊地圖時圓圈變暗)。我沒有看到任何機制來改變半徑。 – geocodezip