GIS开发:分享最短路径(迪杰斯特拉算法)

GIS开发中,最短路径是比较常用的,包括现在很多数据平台,二维地图,都实现了此功能,算法有好几种,比较常用的就有迪杰斯特拉算法,随着技术的发展,对此算法都有了扩展优化,在大数据的情景下,也能很快查出数据结果。

迪杰斯特拉算法是由荷兰计算机科学家狄克斯特拉于1959 年提出的,因此又叫狄克斯特拉算法。是从一个顶点到其余各顶点的最短路径算法,解决的是有向图中最短路径问题。

常用的GIS软件API情况下,使用比较方便,如果有一些数据,如何实现这个算法的开发,在现在技术的成熟情况下,首先,在github上,我们可以找到各种语言编写的迪杰斯特拉算法代码,其次,要结合实际的数据情景进行开发。

github上的搜索结果还是挺多的,当然,要输入英文的关键字(Dijkstra),这样比较好搜索,搜索结果也比较多,最终实现都一样的,在做应用的开发情景下,找现成的比较快,当然做算法的可以自己写一个,网上都有详细的逻辑原理。
在这里插入图片描述
代码量并不是很大,有现成的开发起来也快,下边主要说一下路网数据如何组织,包括Arcgis里做最短路径分析的时候,主要要把数据做好。

有一个shp路网数据,要从中提取出来节点、双向、单向、长度、权重等要素,当然有一些要素也不是必要的,每个节点和其他节点相连的关系;两个节点一组关系,这关系包括长度、权重;单向的是节点1->节点2,而双向的还需要有节点2->节点1;临时的路线截断,需要暂时从中去掉节点方向。

以上这些在算法的参数中也有提现,这是在实际应用的一些经验,当然在算法的理论中,也能够理解。

在这里插入图片描述

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值