【发布时间】:2016-01-18 14:17:32
【问题描述】:
我有许多以坐标列表形式出现的多边形。这些多边形中的每一个都代表全球地图上的一个区域,并且每个都有一个权重。
我需要在地图上找到此权重最高的区域。这意味着在多边形重叠的地方,权重将是相交区域的两个多边形的总和。我想让计算尽可能高效。任何帮助将不胜感激。
【问题讨论】:
-
多边形的属性是什么?直线、凸、凹、自相交等?
-
@GilbertAllen 我一直在研究它们之间的交叉点,但到目前为止,我还没有看到走得太远。
-
@Paul 每个多边形代表一个区域,例如一个国家。它们不会是自相交的或直线的,但会是凹形的。
-
@Humphrey 在这种情况下,最简单的解决方案是通过最近的邻居对多边形进行聚类,并对每对邻居
(A , B)执行转换为三个多边形A / B、B / A和 @987654324 @ 使用各自的权重weight(A)、weight(B)和weight(A) + weight(B)并刷新集群。重复此操作,直到找不到更多的交叉点并完成。 -
感谢@Paul,这似乎运作良好。如果您想将其作为答案,我可以接受。
标签: python algorithm maps shapes polygons