【发布时间】:2013-01-23 18:17:59
【问题描述】:
我在一家车队跟踪公司工作,当我们将所有代表服务调用的图钉放在地图上时,Bing 地图的整体速度会减慢到无法使用的速度。我们推测它与拖动地图时它必须移动的 DOM 元素的数量有关。地图上可能同时有数十辆汽车和数百个服务电话。
为了解决这个问题,我创建了一个自定义TileLayer,它的源转到我们的服务器,并且构建了磁贴以使我们的图钉显示在磁贴上。到目前为止一切都很好,只是现在我不知道如何为图块上的“图钉”执行MouseOver 事件。
我正在寻找一种无需添加 DOM 元素即可在地图上某些位置引发鼠标事件的方法。
一个可靠但可能非常慢的方法是在整个地图对象上设置一个MouseOver 事件,该事件将查看鼠标靠近哪个服务调用。如果鼠标足够近,它可以以这种方式调用事件。我真的很想避免这样做。
我尝试添加具有定义的高度/宽度且没有图标的 PushPins,希望有一个易于移动的元素(不需要重绘的元素),它可以触发鼠标事件,但无济于事。没有事件触发。
【问题讨论】:
-
我在交互式 SDK 上尝试了 5000 个带有图标的图钉,性能不是很好,但在我的机器上仍然可以使用。您的自定义图钉只是带有图标的图钉还是 html 内容图钉。每次视图更改时,必应地图是否会不断尝试获取图钉图标图像?您也可以尝试图钉聚类。
-
由于引脚可能会移动(我们的服务调用被重新定位到新的纬度/经度),我们每 10 秒更新一次。我们正在使用一个集群模块,每次我们调用它
setData它都会清除旧数据并添加新数据。这种不断删除和重新添加使 IE 陷入困境的引脚是我们之前向 Microsoft 提出的问题,但他们仍然没有修复它。它们只是带有图标的图钉。此外,我们希望改进的最大性能下降是在 IE 上。 Chrome 当然可以很好地处理它。
标签: javascript dom-events bing-maps