【问题标题】:Displaying latitude and longitude of Google Maps marker in InfoWindow在 InfoWindow 中显示谷歌地图标记的纬度和经度
【发布时间】:2014-04-13 21:33:49
【问题描述】:

如何使用我的(可移动)标记的纬度和经度动态更新我的 Google 地图信息窗口中的 URL?我可以在点击的位置显示一个 InfoWindow,我可以使用event.latLng.lat()event.latLng.lng() 成功返回 lat 和 lng,但是如果我尝试使用它们来定义变量然后在我的 InfoWindow 中使用这些变量,我会得到@987654323 @错误。

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

【问题讨论】:

  • 您必须将变量 lat/lng 设为全局变量。目前它们在事件监听器中是本地的。

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


【解决方案1】:

初始化信息窗口时变量是未知的。在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);
    });

【讨论】:

猜你喜欢
  • 2014-10-04
  • 2014-04-30
  • 2012-11-29
  • 2013-04-17
  • 1970-01-01
  • 1970-01-01
  • 2013-08-16
  • 1970-01-01
  • 2018-02-17
相关资源
最近更新 更多