我正在使用多边形的质心在 map 应用程序中附加标记。这对于凸多边形非常有效,对于许多凹多边形也非常好。
但是,一些多边形(香蕉、 donut )显然不会产生预期的结果:在这些情况下,质心位于多边形区域外部。
有没有人知道在任何多边形区域(可能包含孔!) 中找到合适的点来附加标记的更好方法?
最佳答案
一种方法是生成并优化 skeleton的多边形,然后使用骨架的中点放置标记(如果是文本,则正确定位文本)。这适用于大多数形状,包括有孔的形状、香蕉形或蝌蚪形新月形。
CGAL 库有一个 2D Straight Skeleton and Polygon Offsetting模块,或者你可以 use PostGIS ,例如。
关于algorithm - 比质心更好的 "centerpoint",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50588009/