gpt4 book ai didi

javascript - Google map Javascript API V3 - 连续平移

转载 作者:行者123 更新时间:2023-11-28 13:56:59 25 4
gpt4 key购买 nike

我正在尝试让 Google map 连续平滑地平移,除非用户将鼠标移到 map 上。使用“idle”事件处理程序会导致平移动画不连贯。使用其他事件不会给我结果。我的 initPan() 函数的递归只会导致页面崩溃。 “空闲”连续平移方法示例 here .

function initialize() {
var myOptions = {
zoom: 5,
center: markers.sanjose,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var map = new google.maps.Map(document.getElementById('map_canvas'),
myOptions);

google.maps.event.addListener(map, 'idle', function() {
initPan(map);
});

google.maps.event.addListener(map, 'mouseout', function() {
stopPan(map);
});
}

function initPan(map) {
map.panBy(5, 0);
}

function stopPan(){
}

最佳答案

浏览量不多,没有评论,但如果有人遇到这种情况,这是我的解决方案。

在通过用户事件触发重复方法(例如 panBy())时,我遇到了 API V3 的问题。虽然 V2 有“moveend”事件,但它被“idle”事件取代。然而,“空闲”在平移发生后会有短暂的延迟。另一种选择是使用“bounds_changed”事件,但该事件每秒触发多次,导致 map 永远不会加载图 block (因此没有平移外观)。

我最终通过向“bounds_changed”添加超时延迟解决了这个问题,清除了多个事件触发器上叠加的超时。这是解决问题的代码片段。

google.maps.event.addListener(map, 'bounds_changed', function() {
if (moving) {
if (myTimeout) {
window.clearTimeout(myTimeout);
}
myTimeout = window.setTimeout(initPan(map), 2200);
}
});

我在 API forum 上找到了解决方案,您可以看到我连续平移工作的示例 here 。如果这没有任何意义,请查看示例中的完整代码,祝你好运。

关于javascript - Google map Javascript API V3 - 连续平移,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7493079/

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