我有一个有几个栖息地的景观(即具有不同ID的多边形)。栖息地的每个多边形由几个补丁组成。此外,栖息地的每个多边形都有相关的成本。我想在包含乌龟的多边形和包含乌龟的多边形周围2公里缓冲区中的所有多边形之间获得成本最低的路径。
我认为第一次使用NW扩展的“加权距离”。根据与该原语关联的示例,我应该在包含乌龟的多边形和缓冲区中的所有多边形之间创建一个链接,然后我应该为链接指定权重值。在该示例中,两个乌龟之间的每个链接被分配给由用户定义的一个权重值。在我的情况下,当一个链接跨越不同的栖息地时,是否有可能计算一个权重值,该权重值等于沿着路径朝向2 km缓冲区中的一个多边形的累积成本?
非常感谢你的帮助。
答案 0 :(得分:1)
听起来你可以创建Dijkstra最短路径算法的酷变种。
http://en.wikipedia.org/wiki/Dijkstra%27s_algorithm
如果将所有生成的路径保存在TreeSet中按长度排序,则拉出当前最短路径,使用尚未访问过的所有可能多边形扩展它,并在TreeSet中推送这些解决方案。如果来自多边形,您只能以比您到目前为止找到的最短路线更大或相等的成本移动到周围的多边形,您可以放弃该路线。这样你只会扩展最短的路线,从而产生对最近的乌龟的广度优先搜索,同时截断永远无法工作的可能性。
祝你好运!