在 OpenLayers 中,我使用 ol.style.Text向联邦州多边形添加文本标签。这些州有不同长度的名称以及不同大小的多边形。它看起来像这样:
如果文本标记适合其多边形(例如放大后),是否可以仅打印文本标记?例如,在上面的示例中,将打印 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/