>>> 您现在的位置: 中国交通技术网 >> 资料文库 >> 3S技术 >> GIS >> 正文

最短路径算法源码(VB) 集锦

更新时间:2007-8-27  来源:tranbbs  作者:佚名  人气:  [ 投稿 ] [投稿帮助
  

本例以由拓扑关系的arc/info 文件为数据源。其中a1,b1,c1是以fnode排序生成的数组,a1对应fnode,b1对应tnode,c1对应length,同样a2,b2,c2,是以tnode 生成的数组。Indexa1是对应某一起点与其相连的终点的个数,indexb1时对应某一终点与其相连的起点的个数,即其拓扑关系。
Public Function shortpath(startno As Integer, endno As Integer) As Single
以开始点,结束点为参数。
Dim result() As Single
Dim result1 As Integer
定义结果点
Dim s1 As Single
Dim min As Single
Dim ii, I, j, aa As Integer
Dim yc() As Boolean
Dim ycd() As Boolean
Dim rs1() As Single
Dim no() As Integer
Dim nopoint As Integer
ReDim yc(1 To maxno) As Boolean
ReDim ycd(1 To maxno) As Boolean
ReDim rs1(1 To maxno) As Single
ReDim result(1 To 2, 1 To maxno) As Single
定义结果,其中result(1,maxno)为结果点,result(2,maxno)为结果长度。
For I = 1 To maxno// maxno为网中最大的节点数。
Yc(i) = False //标记已经查过的点。
Ycd(i) = False //标记已经作结果点用过的点
rs1(i) = 1E+38 //假设从起点到任一点的距离都为无穷大
Next I
ll = startno //设置开始点。
Yc(ll) = True //标记开始点为真。即已经作结果点用过。
J = 0
For aa = 1 To maxno
先从与开始点相连的终点寻找
For I = 1 To indexa1(2, ll) //以与ll点相连的起点的个数循环
result1 = b1(indexa1(1, ll) - I + 1)找出与LL点相连的终点的点号
s1 = c1(indexa1(1, ll) - I + 1) + result(2, ll)找出长度并求和
If yc(result1) = True Then GoTo 200如果以被经查过进行下一个
If ycd(result1) = True Then//如果已经作为结果点判断哪一个长
If rs1(result1) >= s1 Then//如果这一点到起点的长度比现在的路线长,替代
rs1(result1) = s1
result(1, result1) = ll//设置到这点的最短路径的前一点为LL点(精华部分)
result(2, result1) = s1设置到这点的最短路径长度
GoTo 200
Else
GoTo 200
End If
End If
如果上面的条件都不符合则进行下面的语句
ycd(result1) = True
rs1(result1) = s1
result(1, result1) = ll
result(2, result1) = s1
每找到一个点加一,为了下面的判断
j = j + 1
ReDim Preserve no(1 To j) As Integer
从新 定义数组并使其值为当前的点号
no(j) = result1
200 Next I
再从与开始点相连的终点寻找,与上面一样不再标注
For I = 1 To indexb2(2, ll)
result1 = a2(indexb2(1, ll) - I + 1)
s1 = c2(indexb2(1, ll) - I + 1) + result(2, ll)
If yc(result1) = True Then GoTo 300
If ycd(result1) = True Then
If rs1(result1) >= s1 Then
rs1(result1) =

[1] [2] [3] [4] [5] [6] 下一页

  特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。本站所有技术文章、专业软件资料仅供技术人员、高校师生学习交流之用,目的旨在促进与提高中国的交通技术水平;用户获取后不得用于商业目的,否则,所产生的法律责任本站概不负责。
责任编辑:七星
发表评论】【加入收藏】【打印此文
相关内容
从一起接触轨短路事件谈安全防范
城市化:本质及路径选择
发达地区的经济发展路径:深度城市化与逆向城市化的同步推进
黄连枝:农村城镇化新路径——三农小城镇
绿色物流理论及发展路径探析
>>> 热点资料
·治理交通拥堵需改变传统方式
·步行、自行车、公交等绿色交通均衡发展的紧缩城市
·上海市交通信息中心及上海市道路交通信息化简况
·2010年广州亚运交通组织管理规划(部分)
·2010年上海世博会交通方案
·中国射频识别(RFID)技术政策白皮书
·上海市无障碍设施建设规划(2003-2006)
·美国公路设计理念和典型案例介绍
·收费公路市场结构与定价机制研究
·控制航空公司运营成本的营销策略研究
>>> 推荐资料
·中国射频识别(RFID)技术政策白皮书
·伦敦市道路拥挤收费政策解析
·香港地铁屏蔽门系统考察研究
·我国城市轨道交通主要投融资模式及创新思路
·加拿大留学申请程序
·国家地理信息标准化“十一五”规划
·美国地方政府的规划实践(1)
·北京市2000年以来交通管理相关数字
·北京道路交通管理史上的“第一”(二十世纪七十年
·磁浮技术与发展
>>> 交通图库

北京地铁盲文与无障碍标识

深圳市对外交通及轨道交通系统实

西安市主城区用地规划图(2004-2

西安市综合交通规划图(2004-202
>>> 博客交通
·中国射频识别(RFID)技术政策白皮书
·伦敦市道路拥挤收费政策解析
·香港地铁屏蔽门系统考察研究
·我国城市轨道交通主要投融资模式及创新思路
·加拿大留学申请程序
·国家地理信息标准化“十一五”规划
·美国地方政府的规划实践(1)
·北京市2000年以来交通管理相关数字
·北京道路交通管理史上的“第一”(二十世纪七十年
·磁浮技术与发展
网友评论:(评论内容只代表网友观点,与本站立场无关!)
  请遵守《互联网电子公告服务管理规定》及中华人民共和国其他各项有关法律法规。