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

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

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

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

我知道我可以根据分辨率将ol.style.Text的font属性设置为特定大小,但这在这里没有用,因为文本有时会重叠边框…

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

点赞