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

时间:2014-03-10 16:34:48

标签: javascript google-maps google-maps-api-3

如何使用我的(可移动)标记的纬度和经度动态更新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);
});

1 个答案:

答案 0 :(得分:4)

初始化InfoWindow时,变量未知。在click - listener。

中设置InfoWindow的content-property
//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);
    });