gpt4 book ai didi

javascript - 缩放更改时不会触发谷歌地图 v3 zoom_changed 事件

转载 作者:搜寻专家 更新时间:2023-11-01 04:53:07 26 4
gpt4 key购买 nike

我有一个 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);
}

最佳答案

2 件事...

  1. 现在您的 zoom_changed 监听器未被添加,因为它是在 map 初始化之前调用的。 Javascript 执行 map_initialise() 函数,然后在 map 加载完成之前立即尝试添加监听器。所以把addListener放到最后的initialize函数中。

  2. 您的 map 变量对 map_initialise() 函数是私有(private)的,因此当调用 reCentre() 时它看不到您的 map 对象。如果您从 map 前面删除 var 它将变成全局的并且 reCentre() 将能够看到它。我建议在 map_initialise() 函数上方添加 var map;,这样代码的读者就会看到 map 是全局的。

关于javascript - 缩放更改时不会触发谷歌地图 v3 zoom_changed 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4044859/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com