在下面的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>
答案 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");
});
};