0

我正在尝试这样做,以便有人点击地图,然后弹出一个 infoWindow 告诉他们 latlng。现在,只是想弄清楚如何让 infoWindow 出现。我在这里用标记发现了一个类似的问题并稍微编辑了函数,但我错过了一些我确定很简单的东西,我只是无法指出。这是代码:

        function InfoWindow(location) {
          if ( marker ) {
            marker.setPosition(location);
          } else {
            marker = new google.maps.infoWindow({
              position: location,
              content: "sam"
            });
          }
        }

        google.maps.event.addListener(map, 'click', function(event) {
          InfoWindow(event.latLng);
        });
                }

非常感谢帮助!谢谢

4

4 回答 4

0

您传递事件的 LatLng (event.latLng) 是正确的,而不是整个事件。为了帮助输出,我包含了将 lat 和 lng 拆分为字符串的代码。我修复的其他几件事:需要在 google.maps.InfoWindow 中成为大写“I”;如果窗口已经存在,则将内容设置为新的 latLng;添加了代码以在最后实际打开窗口。这应该照顾你的一切

function InfoWindow(location) {
    var lat = location.lat().toString();
    var lng = location.lng().toString();
    var new_content = "Lat: " + lat + "<br />Long: " + lng
  if ( marker ) {
    marker.setPosition(location);
    marker.setContent(new_content);
  } else {
      marker = new google.maps.InfoWindow({
      position: location,
      content: new_content
    });
  }
  marker.open(map);
}

google.maps.event.addListener(map, 'click', function(event) {
  InfoWindow(event.latLng);
});
于 2012-07-26T14:48:09.403 回答
0

事件是一个 LatLng

 google.maps.event.addListener(map, 'click', function(event) {
      InfoWindow(event);
    });
于 2012-07-26T14:03:35.887 回答
0

我正在使用 InfoBubble,它看起来比 InfoWindow 更好,而且处理起来也更容易。试试看。

于 2012-07-26T13:59:24.403 回答
0

Map MouseEvent有一个 latLng 属性

google.maps.event.addListener(map, 'click', function(event) 
{
   new google.maps.InfoWindow({
              map:map, 
              content:"coordinates:"+event.latLng.toUrlValue(),
              position:event.latLng});});
}

“地图”是对您的 google.maps.Map 的引用。

通过将其粘贴到地址栏中,然后单击地图在此地图上进行测试:

javascript:google.maps.event.addListener(map, 'click', function(event) {new google.maps.InfoWindow({map:map, content:"coordinates:"+event.latLng.toUrlValue(),position:event.latLng});});
于 2012-07-26T14:49:52.320 回答