Openlayers图标定位

时间:2018-07-10 14:48:42

标签: openlayers

我正在尝试将图标放置在Openlayers中的现有多边形中。

我正在使用多边形的范围来找到其中心:

extent.getCenter(feature.getGeometry().getExtent());

,然后将地图上的标记位置设置为该位置。

如果多边形的形状相对简单,则可以使用。但是,对于某些更高级的多边形,图标似乎位于该多边形的外部。

在这张照片中:

enter image description here

我已经在大“三角形”的图标和标签上标记了一个黑圈。

标签似乎知道如何位于多边形内部,但图标却不知道,这可能是因为标签位置是在Openlayers内部计算的。

通过将标签上的样式定义为Text对象来设置标签。也可以用样式定义图像,但不幸的是,图像也放置在多边形之外。

是否有任何方法可以将图标放置在标签所在的位置,或者以某种方式使其始终位于绘制的多边形内?

1 个答案:

答案 0 :(得分:1)

您应该使用getInteriorPoint中的ol.geom.Polygon方法。有关详细信息,请参见API http://openlayers.org/en/latest/apidoc/module-ol_geom_Polygon-Polygon.html#getInteriorPoint`

您还可以看到a demo使用“月亮”形状的多边形来说明“它的工作原理”。通常,质心应该在这种形状的外部,而使用该函数,返回的点在内部。