openlayers-3 - 如果文本标签适合其几何图形,则仅将 ol.style.Text 打印到多边形

标签 openlayers-3

在 OpenLayers 中,我使用 ol.style.Text向联邦州多边形添加文本标签。这些州有不同长度的名称以及不同大小的多边形。它看起来像这样:

enter image description here

如果文本标记适合其多边形(例如放大后),是否可以仅打印文本标记?例如,在上面的示例中,将打印 Hessen、Thüringen、Sachsen 和 Bayern,但 Rheinland-Pfalz、Saarland 和 Baden-Württemberg 将被省略,因为文本超出了其特征的几何形状……

我知道我可以设置 font ol.style.Text 的属性到基于 resolution 的特定大小但这在这里无济于事,因为有时文本仍然会与边框重叠......

最佳答案

这在图书馆的帮助下目前是不可能的。但是你可以使用 CanvasRenderingContext2D#measureText()在您的矢量图层的 stlyeFunction 中获取标签的宽度,并将其与特定分辨率下多边形的范围宽度进行比较,并根据此决定是否渲染。您也可以比使用范围的宽度更聪明,但对于许多情况,它可能是一个足够好的近似值。

关于openlayers-3 - 如果文本标签适合其几何图形,则仅将 ol.style.Text 打印到多边形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41061279/

相关文章:

性能测试 OpenLayers 与 Leaflet

openlayers-3 - OL3中如何获取图层或源的类型?

javascript - 在 Openlayers 3 中查询多个层中的多个特征

openlayers-3 - 在 OL3 中将 drawend 添加到源后如何捕获事件?

javascript - Openlayers 3 - 绘制后修改多边形

css - 如何在openlayers 3中的固定屏幕位置显示文本

javascript - 在 Openlayers 3 中只允许一个绘图功能

javascript - Open Layers 3层可见性——传递变量的问题

openlayers-3 - OpenLayers - 是否可以在 LocalStorage 之外进行(本地)缓存?

javascript - 开放层 3 : how to set fill style of a vector feature