在InfoWindow中显示Google地图标记的纬度和经度

Displaying latitude and longitude of Google Maps marker in InfoWindow

本文关键字:纬度 经度 图标 地图 InfoWindow 显示 Google      更新时间:2023-09-26

如何动态更新URL在我的谷歌地图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="/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);
});

初始化InfoWindow时,变量是未知的。设置click -listener中InfoWindow的content-属性。

//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);
    });