Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/api/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript OpenLayers-围绕标记的矢量要素绘制一个框_Javascript_Css_Svg_Openlayers - Fatal编程技术网

Javascript OpenLayers-围绕标记的矢量要素绘制一个框

Javascript OpenLayers-围绕标记的矢量要素绘制一个框,javascript,css,svg,openlayers,Javascript,Css,Svg,Openlayers,经过无休止的搜寻,我撞到了墙。我有一个使用许多标签的OpenLayers地图。我的两个选择是使用弹出类或标记向量功能。我尝试过使用Popup类,但它在DOM上非常沉重,在更新层时占CPU负载的大约75%(通过Chrome Developer CPU评测验证)。在从弹出窗口切换到带有标签的向量特性之后,所有处理器的重量都从DOM中释放出来,现在一切都运行顺利。但唯一的问题是,我无法在标签后面找到一个纯色的盒子 标签在文本和tspan svg元素内呈现。据我所知,没有办法使用text或tspan的属

经过无休止的搜寻,我撞到了墙。我有一个使用许多标签的OpenLayers地图。我的两个选择是使用弹出类或标记向量功能。我尝试过使用Popup类,但它在DOM上非常沉重,在更新层时占CPU负载的大约75%(通过Chrome Developer CPU评测验证)。在从弹出窗口切换到带有标签的向量特性之后,所有处理器的重量都从DOM中释放出来,现在一切都运行顺利。但唯一的问题是,我无法在标签后面找到一个纯色的盒子

标签在文本和tspan svg元素内呈现。据我所知,没有办法使用text或tspan的属性来指定backcolor属性。这是一个无休止的搜索。我可以使用getBBox在文本元素周围添加一个rect,但是OpenLayers管理tspan元素,并且在OpenLayers旁边处理它似乎是不可能的


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

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