Google Maps addListener不起作用

时间:2016-09-24 21:20:53

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

在下面的HTML代码中,我希望在更改地图时发出提醒(例如缩放,拖动,点击)。

将来会更改该警报,以便在拖动,缩放或点击时显示角坐标。按钮" Get Corners"然后将被省略(现在完美无缺)。

我从很多网站上尝试了很多建议。但仍然没有成功。

警报的addListener不起作用。另外使用addDomListener也行不通。这段代码的罪魁祸首是什么?

提前感谢您的帮助!

<!DOCTYPE html>
<html>
<head> 
</head>      
<script src="http://maps.googleapis.com/maps/api/js">
</script>

<body>
<script>
   var map;
   function initialize()
   {
    var mapOpt = {center:new google.maps.LatLng(41.5,2.0),zoom:10, mapTypeId:google.maps.MapTypeId.SATELLITE};
    map=new google.maps.Map(document.getElementById("googleMap"),mapOpt); 
   };
</script>

<script>
  function getCorners()
  {
   var bounds = map.getBounds();
   var ne = bounds.getNorthEast(); 
   var sw = bounds.getSouthWest();
   document.getElementById('ne').innerHTML = ne;
   document.getElementById('sw').innerHTML = sw;
  }
</script>

<! THIS addListener SCRIPT DOES NOT WORK>
<script>
  google.maps.event.addListener(map, 'idle', function()
  {
   window.alert("Map clicked");
  });
</script>

<script>
  google.maps.event.addDomListener(window, "load", initialize);  
</script>
<p id="ne">NE</p>
<p id="sw">SW</p>
<button onclick="getCorners()">Get Corners</button> 

<br><br> 
<div id="googleMap" style="width:500px;height:500px"></div>
</body> 
</html>   

2 个答案:

答案 0 :(得分:2)

这是因为在浏览器知道你的地图对象之前调用了google.maps.event.addListener。可能还有控制台错误。 将此代码放入initialize()然后它应该有效。

在定义所有HTML元素(包括例如HTML元素)之后,通常建议将所有脚本放在body标记结束之前不久。拿着地图的div。此外,脚本的拆分有点令人困惑,似乎没有必要。

答案 1 :(得分:1)

尝试在initilize函数中移动侦听器代码

function initialize()
{
  var mapOpt = {center:new google.maps.LatLng(41.5,2.0),zoom:10, mapTypeId:google.maps.MapTypeId.SATELLITE};
  map=new google.maps.Map(document.getElementById("googleMap"),mapOpt); 
  google.maps.event.addListener(map, 'idle', function(){
      window.alert("Map clicked");
  });
};