Отображение широты и долготы маркера Google Maps в InfoWindow

Как динамически обновлять URL-адрес в Google Maps InfoWindow с широтой и долготой моего (подвижного) маркера? Я могу отобразить InfoWindow в щелкнутом местоположении, и я могу успешно вернуть lat и lng с event.latLng.lat() и event.latLng.lng(), но если я попытаюсь использовать их для определения переменных, а затем использовать эти переменные в моем InfoWindow я получаю Uncaught ReferenceError: lat is not defined ошибки.

var newpostmarker;
 var newpost = new google.maps.InfoWindow({
 content: '<a href="." target="_blank">Add New</a>'
 });

 function placeNewPostMarker(location) {
 if (newpostmarker) {
 newpostmarker.setPosition(location);
 } else {
 newpostmarker = new google.maps.Marker({
 position: location,
 map:map_canvas,
 });
 }
 newpostmarker.setVisible(false);
 }

 google.maps.event.addListener(map_canvas, 'click', function(event) {
 var lat = event.latLng.lat();
 var lng = event.latLng.lng();
 alert("Lat=" + lat + "; Lng=" + lng);
 placeNewPostMarker(event.latLng);
 newpost.open(map_canvas,newpostmarker);
 });
1 ответ

Переменные неизвестны при инициализации InfoWindow. Задайте свойство содержимого InfoWindow в click -listener.

//infowindow without properties
var newpost = new google.maps.InfoWindow();

google.maps.event.addListener(map_canvas, 'click', function(event) {
 var lat = event.latLng.lat();
 var lng = event.latLng.lng();
 alert("Lat=" + lat + "; Lng=" + lng);
 placeNewPostMarker(event.latLng);
 newpost.setContent('<a href="." target="_blank">Add New</a>');
 newpost.open(map_canvas,newpostmarker);
 });

licensed under cc by-sa 3.0 with attribution.