我试图定位一个图标在一个现有的多边形在开放层。
我用多边形的范围找到它的中心:
extent.getCenter(feature.getGeometry().getExtent());然后将地图上的标记位置设置为。
如果多边形的形状相对简单,它就能工作。然而,对于一些更高级的多边形,图标似乎被放置在多边形之外。
在这张图中:

我已经标记了大“三角形”的图标和标签一个黑暗的圆圈。
标签似乎知道如何坐在多边形内,但图标却不知道,可能是因为标签的位置是在Openlayers内部计算的。
标签是通过将标签上的样式定义为文本对象来设置的。也可以在样式中定义图像,但不幸的是,它也被放置在多边形之外。
是否有任何方法使图标定位在标签所在的位置,或者只是让它始终位于绘制的多边形内?
发布于 2018-07-10 21:34:59
您应该使用来自getInteriorPoint的ol.geom.Polygon方法。有关详细信息,请参见API Polygon-Polygon.html#getInteriorPoint‘
您还可以看到演示使用“月亮”形状的多边形来演示“它工作”。通常,质心应该在这种形状之外,而对于函数,返回的点在内部。
https://stackoverflow.com/questions/51268268
复制相似问题