如何使用我的(可移动)标记的纬度和经度动态更新Google Maps InfoWindow中的网址?我可以在单击的位置显示InfoWindow,我可以使用event.latLng.lat()
和event.latLng.lng()
成功返回lat和lng,但是如果我尝试使用它们来定义变量然后在我的InfoWindow中使用这些变量,我收到Uncaught ReferenceError: lat is not defined
次错误。
var newpostmarker;
var newpost = new google.maps.InfoWindow({
content: '<a href="/posts/add?lat=' + lat + '&lng=' + lng + '">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);
});
答案 0 :(得分:4)
初始化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="/posts/add?lat=' + lat + '&lng=' + lng + '">Add New</a>');
newpost.open(map_canvas,newpostmarker);
});