Jas*_*son 4 javascript google-maps
我有一个v3谷歌地图正在按照我的预期加载,标记符合我的意图.但是,当我更改缩放时,我添加的zoom_changed事件似乎不会触发.有人能够阐明原因吗?我的代码如下.
function map_initialise() {
var mapCentre = new google.maps.LatLng(53.75, -1.50);
var mapOptions = {
zoom: 6,
center: mapCentre,
mapTypeId: google.maps.MapTypeId.HYBRID
}
var map = new google.maps.Map(document.getElementById('map_canvas'), mapOptions);
var latlong1 = new google.maps.LatLng(52.456550,1.680182);
var windowtext1 = 'Some text';
var popup1 = new google.maps.InfoWindow({
content: windowtext1
});
var marker1 = new google.maps.Marker({
position: latlong1,
title: "Some text"
});
google.maps.event.addListener(marker1, 'click', function() {
popup1.open(map,marker1);
});
marker1.setMap(map);
}
google.maps.event.addDomListener(window, 'load', map_initialise);
google.maps.event.addListener(map, 'zoom_changed', function() {
setTimeout(reCentre, 3000);
});
function reCentre() {
var newcentre = new google.maps.LatLng(53.000,0.000);
map.panTo(newcentre);
}
Run Code Online (Sandbox Code Playgroud)
Gal*_*len 11
2件事......
现在你没有添加你的zoom_changed监听器,因为它是在初始化地图之前调用的.Javascript执行map_initialise()函数,然后在地图加载完成之前立即尝试并添加侦听器.所以将addListener放在最后的initialize函数中.
您的map变量对map_initialise()函数是私有的,因此当调用reCentre()时,它无法看到您的地图对象.如果你var从地图前面删除它将变为全局,reCentre()将能够看到它.我建议var map;在map_initialise()函数上面添加,以便代码的读者看到map是全局的.
| 归档时间: |
|
| 查看次数: |
15505 次 |
| 最近记录: |