gpt4 book ai didi

javascript - 停止 Google Maps API v3 中的空闲事件

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:44:06 24 4
gpt4 key购买 nike

我正在使用带有标记设置的 Google map 在 map 上显示位置。我正在使用 idle 事件来确定何时提交新数据请求,这样当用户平移或缩放 map 时,将调用 ajax 服务并更新标记以查找新视口(viewport)中的位置。

问题是,当用户点击标记弹出信息窗口时, map 通常会稍微移动到信息窗口的中心——这会触发另一个 idle 事件并重置 map ,关闭信息窗口。

有这方面的最佳实践吗?有没有办法在打开信息窗口时禁用 idle 监听器,或者是否有标准的解决方法?

最佳答案

我的 googleMaps 也有类似的问题,这是我的解决方法....

在调用标记期间,我下载了视口(viewport)之外的点。例如....如果我的 N 边界纬度是 85,我的 S 边界是 88,我会在 83 和 90 纬度之间拉点。

viewportN = 85;
viewportS = 88;
searchBoundN = 83;
searchBoundS = 90;

当你点击标记时,它会自动平移你,这样你的 Northbound 现在是 84。你在你的空闲函数中放置一个 if 语句,它说:

 map.addListener("idle", function () {
//get map viewport bounds
.....
// check if you're in territory that doesn't have markers
if (viewPortN < searchBoundN || viewportS > searchBoundS || <<repeat for E, W>>) {
refreshMarkers();
}
});

应该解决您的问题。它告诉您的脚本仅在大幅移动后刷新标记。为了安全起见,我的 map 从视口(viewport)区域的两倍处拉出标记。它还可以防止您的数据从小盘中刷新,这将减少对您的服务器的请求数量。

关于javascript - 停止 Google Maps API v3 中的空闲事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24064803/

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