经过无休止的搜索,我碰壁了。我有一个使用许多标签的 OpenLayers 地图。我的两个选择是使用弹出类或标记的矢量特征。我曾尝试使用 Popup 类,但在更新层时它对 DOM 的影响非常大,约占 CPU 负载的 75%(通过 Chrome Developer CPU Profiling 验证)。在从弹出窗口切换到带有标签的矢量特征之后,所有处理器的重量都从 DOM 上消失了,现在一切运行顺利。唯一的问题是,我无法在标签后面找到一个纯色框。
标签呈现在 text 和 tspan svg 元素内。根据我的阅读,无法使用 text 或 tspan 的属性来指定背景色属性。这是一个无止境的搜索。我可以使用 getBBox 在文本元素周围添加一个矩形,但 OpenLayers 管理 tspan 元素,并且与 OpenLayers 一起操作它似乎是不可能的。
接下来,我想我可以添加一个带标签的矢量特征,它是一个矩形。但是,这里没有办法在标签的确切大小及其后面绘制矩形。也许这是不可能的。希望你们中的一个人知道一个解决方案。谢谢。