在OpenLayers中,我使用ol.style.Text为联邦州多边形添加文本标签。州具有不同长度的名称以及不同大小的多边形。它看起来像这样:
如果文本标记适合其多边形(例如放大后),是否可以仅打印文本标记?例如,在上面的例子中,将印刷Hessen,Thüringen,Sachsen和Bayern,但Rheinland-Pfalz,Saarland和Baden-Württemberg将被省略,因为文本超出了其特征的几何...
我知道我可以根据font
将ol.style.Text
的{{1}}属性设置为特定大小,但这对此没有帮助,因为文本有时会与边框重叠。
答案 0 :(得分:2)
目前无法通过图书馆的帮助实现这一目标。但是您可以在矢量图层的stlyeFunction
中使用CanvasRenderingContext2D#measureText()来获取标签的宽度,并将其与特定分辨率下多边形的范围宽度进行比较,并根据是否渲染或不。你也可以比使用范围的宽度更聪明,但在许多情况下它可能是一个足够好的近似值。