我在地图上得到了点。获得所有形成的独立内部多边形?

时间:2015-04-29 11:04:26

标签: c# google-maps

我在地图上有点和连接这些点的线。

如何获得所有独立的内部多边形?

链接图片描述了问题。

http://i.imgur.com/0LdA3ji.jpg

我想我需要一个树搜索算法来枚举树结构中的所有点和连接线,然后搜索周期,但这项工作有点过头了。

在一个完美的世界中,例子将在C#中。)

我找到了:

Finding all cycles in undirected graphs

但它没有标记独立的多边形。它找到所有可能的多边形甚至重叠的多边形。

我正在使用谷歌地图。用例是:我检测地图上的点击并绘制点。我检测点击点,然后获得点之间的线。现在我需要从线和点自动生成多边形。当然我可以绘制多边形。我只是不知道哪些(坐标是什么 - 或者更确切地说:为多边形选择什么点)

1 个答案:

答案 0 :(得分:1)

我实际上没有图形经验以及如何在找到多边形后对其进行实际着色,但假设:

  1. 你自己有多边形。
  2. 它们没有任何重叠或任何其他奇怪的行为。
  3. 然后着色伪代码可能是这样的:

    while listOfPolygons is not empty
        temp <- find smallest polygon in listOfPolygons 
        colour temp
        remove from listOfPolygons all polygons containing temp
        remove temp from listOfPolygons 
    

    请注意,有关查找包含多边形的部分可能很棘手。

    编辑:

    检查多边形A是否在多边形B中可以通过检查A的任何角(顶点?)是否位于B内来完成。