Openlayers图标定位

问题描述 投票:0回答:1

我试图在Openlayers中的现有多边形中定位一个图标。

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

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

然后在地图上设置标记位置。

如果多边形的形状相对简单,它就可以工作。但是对于一些更高级的多边形,图标似乎放在多边形之外。

在这幅图片中:

enter image description here

我用黑色圆圈标记了大“三角形”的图标和标签。

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

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

有没有办法让图标定位在标签所在的位置,或者只是某种方式让它始终位于绘制的多边形内?

openlayers
1个回答
1
投票

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

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

© www.soinside.com 2019 - 2024. All rights reserved.