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

Only print ol.style.Text to polygon if text label fits inside its geometry

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

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

我知道我可以根据 resolutionol.style.Textfont 属性 设置为特定大小,但这在这里没有帮助,因为文本仍然有时会重叠边界...

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