gpt4 book ai didi

javascript - Bing map 满载事件

转载 作者:行者123 更新时间:2023-12-03 02:39:38 27 4
gpt4 key购买 nike

我使用的是 Bing map 版本 8。我试图查找但无法理解 map 完全加载时是否有事件。

我遇到的问题是我首先创建一张 map :

var theMap = new MM.Map(document.getElementById('divMap'), ...

然后在我获取 map 数据后的某个时刻,我调用

theMap.setView({
bounds: MM.LocationRect.fromLocations(locations)
});

问题是存在某种竞争条件,我注意到本地图未完全加载时这不能很好地工作。当“divMap”尚不包含由 bing map 渲染的 map Canvas 时, map 的高度为 0,并且 setView 函数设置的缩放不正确。

但是,本地图完全加载并且我稍后通过 Chrome 中的控制台调用同一行时,它工作正常。

我想我应该在 map 完全加载时调用 setView,但我找不到可以用于此目的的事件。有什么想法吗?

编辑:我认为问题出在 DIV 的高度上。在您的示例中,DIV 具有静态 400px 高度,而在我的情况下,它是动态的,在加载 map 和渲染 Canvas 之前,div 高度为 0px,导致 setView 无法正常工作。我试图在 javascript 中调试 bing 源文件,并注意到它依赖于高度,所以这就是问题所在。 enter image description here

Canvas 准备好时的事件在这种情况下会有所帮助。现在我正在考虑添加一个 setInterval 来定期检查。

最佳答案

我在使用 Bing map 版本 8 (V8) 时遇到了类似的问题并用以下代码解决了它:

    this.map.viewchangeend._handlers[0]  = () => {
this.map._rootElement[0].childNodes[1].childNodes[1].style.display = "none";
}

上面的代码从 map 中删除了包含当前位置地址信息的 div。

后来我在 Bing map 文档中发现了处理此问题的正确方法 https://www.bing.com/api/maps/sdk/mapcontrol/isdk/addeventhandler#JS

关于javascript - Bing map 满载事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48385105/

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