Ich schreibe eine Webanwendung, die einen Kreis um einen Marker auf einer Google Map zeigt. placeMarker(location, radius)
setzt einen Marker bei location
und bindet daran einen Kreis mit einem Radius. Ich möchte, dass das Skript den Kreis und die Markierung neu zeichnet, sobald der marker aufgerufen wird. Wenn ich es in einer Konsole ausprobiere, zeichnet es den Marker mit der neuen Position neu, aber der ursprüngliche Kreisradius bleibt erhalten. undefined
wird ebenfalls gedruckt. Was muss ich ändern, damit das funktioniert?Zeichnen Sie Google Maps Circle und Marker auf Funktionsaufruf
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);
});
}
Mit dem geposteten Code bekomme ich einen Javascript Fehler: 'Uncaught ReferenceError: initialRadius ist nicht definiert'. Wenn ich das repariere, [funktioniert so, wie ich es erwarte] (http://jsfiddle.net/geocodezip/e9v5kL9s/) (und die Art, wie ich denke, dass du es willst, außer der Kreis wird immer dunkler, wenn die Karte angeklickt wird). Ich sehe keinen Mechanismus, um den Radius zu ändern. – geocodezip