填充多边形的空间路由算法

时间:2012-06-26 22:50:52

标签: algorithm routing geospatial

我有一个(地理)地图,由多边形构成,描绘了土地和一艘船,试图从A到B从而没有撞到任何一块土地。优选地,它应该遵循最短的可用路径。

我的算法大部分时间都有效,但它相当笨拙且效率低下。我非常感谢任何我可以使用的算法的提示或参考。

1 个答案:

答案 0 :(得分:7)

创建图表:

  • 为每个多边形的每个顶点(起点和终点)创建一个节点。
  • 如果两条节点之间存在直线,而不是通过任何障碍物,则在两个节点之间创建一条边。

使用A *算法(http://en.wikipedia.org/wiki/A_star)在结果图中查找最短路径。估算距离为直线距离。

您可以使用任何类型的障碍物,只要您能够确定“有趣”点的集合:它们是每对障碍物的所有切线的接触点(几乎所有凸多边形的顶点都是'有趣的'。)以及两次碰到同一(非凸)障碍的所有线。