InfoWindow不显示

时间:2012-07-26 13:47:03

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

我正试图这样做,以便有人点击地图,然后弹出一个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 个答案:

答案 0 :(得分:0)

我正在使用InfoBubble,它看起来比InfoWindow更好,它也可以更轻松地处理。试试吧。

答案 1 :(得分:0)

事件是LatLng

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

答案 2 :(得分:0)

传递事件的LatLng(event.latLng)是正确的,而不是整个事件。为了帮助输出,我包含了将lat和lng分成字符串的代码。我修复了其他一些事情:需要在google.maps.InfoWindow中成为资本“我”;如果窗口已经存在,则将内容设置为新的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);
});

答案 3 :(得分: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});});
}

“map”是对google.maps.Map的引用。

this map上通过将其粘贴到地址栏中进行测试,然后点击地图:

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