通过充满多边形的空间路由的算法

标签 algorithm routes geospatial

我有一张(地理) map ,由描绘陆地的多边形和试图从 A 地到达 B 地而不撞到任何陆地的船组成。最好,它应该遵循最短的可用路径。

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

最佳答案

创建图表:

  • 为每个多边形的每个顶点、起点和终点创建一个节点。
  • 如果有一条直线从一个节点到另一个节点,不经过任何障碍物,则在两个节点之间创建一条边。

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

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

关于通过充满多边形的空间路由的算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11217038/

相关文章:

r - 按纬度间隔划分的栅格汇总统计数据

algorithm - 我想添加一些精细的速度范围并将它们保存到数据库中

algorithm - 搜索段落中的单词列表

algorithm - 矩形在调整大小和移动时捕捉

c++ - 加速算法以找到两个二维点数据集中最接近的项目

asp.net - iis 8.5 中用于 mvc 和 webapi 应用程序的路由

javascript - 错误 : Module "html" does not provide a view engine (Express)

以 NA 作为环境凸包外区域的光栅文件

Codeigniter:所有阿拉伯语路线均无效

R SF : st_intersection on a list of polygons