gpt4 book ai didi

javascript - 区分程序化 Bing AJAX map 导航与用户平移/缩放和窗口大小调整

转载 作者:行者123 更新时间:2023-12-05 01:13:07 26 4
gpt4 key购买 nike

我有一个场景,我需要不断地保持特定的 LocationRect 最适合(即 map.setView({ bounds: myLocationRect }) 的结果)可见跨窗口调整大小或平板电脑方向更改的 map ,直到用户与 map 交互以更改当前 View 。

我需要一些关于如何做到这一点的指导。考虑到有多少种不同的鼠标和键盘交互可以改变 View ,我不想过滤所有这些交互;过滤掉 map 包含的 HTML 元素改变大小的场景似乎更合适。

我已经尝试通过跟踪 map 元素之前的宽度/高度并监听 targetviewchanged 事件来做到这一点;但是,这对我来说并不可靠。原因是,如果我重置 View ,我无法可靠地暂停收听 targetviewchanged。例如:

function resetView() {
if(!_keepAoiInView) return; // unhook setInterval as well; omitted for brevity

_suspend = true;
_map.setView({ bounds: theBoundsIWant });
_suspend = false;
}

function ontargetviewchanged() {
// This suspend check doesn't work -
// resetView() isn't always lower in the call stack;
// therefore, _suspend is set back to false before the
// targetviewchanged event fires.
if(_suspend) return;

_keepAoiInView = false; // unhook setInterval as well; omitted for brevity
}

最佳答案

如果您似乎无法使 targetviewchanged 正常工作,或许值得重新考虑跟踪其他事件。

您可以使用 pointer.js 更轻松地跟踪所有不同的可能交互.这样,您只需捕获几种类型的事件,这些事件在幕后代表多种类型的事件。如果它与 Bing map 配合得很好,那可能会解决鼠标、触摸和可能的手势事件的问题。

我怀疑这可能无法解决键盘事件的问题,但也许监控这些事件也是可管理的。

关于javascript - 区分程序化 Bing AJAX map 导航与用户平移/缩放和窗口大小调整,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11441781/

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