2016-09-24 84 views
0

在下面的HTML代码中,我想在地图更改(例如缩放,拖动,单击)时发出提醒。Google地图addListener不起作用

该警报将在未来更改以显示拖动,缩放或单击时的角坐标。 “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> 

回答

0

尝试移动监听器代码用来初始化函数

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"); 
    }); 
}; 
+0

@迈克尔和scaisEdge里面:把中的addListener初始化函数的工作!非常感谢您的快速响应! – henk

+0

@henk如果我的回答是正确的,请将其标记为已接受...请参阅http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work。 – scaisEdge

1

这是因为在浏览器甚至知道你的地图对象之前调用google.maps.event.addListener。可能还有控制台错误。 把这段代码放到initialize()那么它应该可以工作。

一般来说,在所有的HTML元素被定义之后,包括例如,在所有的脚本之前立即放置所有脚本是可取的。拿着地图的div。此外,剧本的分裂有点令人困惑,似乎没有必要。