algorithm - 比质心更好的“中心点”
问题描述
我正在使用多边形的质心在地图应用程序中附加标记。这对于凸多边形绝对适用,并且对于许多凹多边形非常好。
但是,某些多边形(香蕉、甜甜圈)显然不会产生预期的结果:在这些情况下,质心位于多边形区域之外。
有没有人知道在任何多边形区域(可能包含孔!)内找到合适的点来附加标记的更好方法?
解决方案
一种方法是生成和细化多边形的骨架,然后使用骨架的中点放置标记(如果是文本,则正确定位文本)。这适用于大多数形状,包括带有孔的形状,以及香蕉形或蝌蚪形的新月形。
CGAL 库有一个2D Straight Skeleton and Polygon Offsetting模块,或者您可以使用 PostGIS,例如。