0

经过无休止的搜索,我碰壁了。我有一个使用许多标签的 OpenLayers 地图。我的两个选择是使用弹出类或标记的矢量特征。我曾尝试使用 Popup 类,但在更新层时它对 DOM 的影响非常大,约占 CPU 负载的 75%(通过 Chrome Developer CPU Profiling 验证)。在从弹出窗口切换到带有标签的矢量特征之后,所有处理器的重量都从 DOM 上消失了,现在一切运行顺利。唯一的问题是,我无法在标签后面找到一个纯色框。

标签呈现在 text 和 tspan svg 元素内。根据我的阅读,无法使用 text 或 tspan 的属性来指定背景色属性。这是一个无止境的搜索。我可以使用 getBBox 在文本元素周围添加一个矩形,但 OpenLayers 管理 tspan 元素,并且与 OpenLayers 一起操作它似乎是不可能的。

接下来,我想我可以添加一个带标签的矢量特征,它是一个矩形。但是,这里没有办法在标签的确切大小及其后面绘制矩形。也许这是不可能的。希望你们中的一个人知道一个解决方案。谢谢。

4

1 回答 1

-1

我想到了。有一次我花了一些时间查看 GitHub 上的 OpenLayers,我发现它是查看 Popup 类。首先,autosize 必须设置为 false,并且除了 contentsize 之外,还必须设置 size 属性。由于 contentsize 是构造函数的一部分,因此您必须在初始化后显式设置 popup.size。这将阻止执行 setSize() 方法,这将减少大约 50% 的负载。然后,我去修改了这个类并删除了大量的事件处理程序。这两种方法将 CPU 负载降低了大约 50-75%。

于 2013-08-28T05:47:10.627 回答