这是命令 v.net.pathgrass 可以使用我们的多个免费在线工作站之一在 OnWorks 免费托管服务提供商中运行,例如 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器
程序:
您的姓名
v.net.路径 - 在矢量网络上找到最短路径。
关键词
矢量,网络,最短路径
概要
v.net.路径
v.net.路径 - 帮帮我
v.net.路径 [-gs] 输入=姓名 产量=姓名 [类型=绳子[,绳子,...]] [弧层=绳子]
[节点层=绳子[文件=姓名[弧柱=绳子[弧向后列=绳子]
[节点列=绳子[DMAX=浮动] [--覆盖] [--帮助] [--详细] [--安静]
[--ui]
标志:
-g
对经纬度位置使用测地线计算
-s
将输出写为原始输入段,而不是将每个路径写为一行。
--覆盖
允许输出文件覆盖现有文件
- 帮帮我
打印使用摘要
--详细
详细模块输出
- 安静的
静音模块输出
--用户界面
强制启动 GUI 对话框
参数:
输入=姓名 [必需的]
输入向量图的名称
或用于直接 OGR 访问的数据源
产量=姓名 [必需的]
输出矢量图的名称
类型=字符串[,字符串……]
弧型
输入要素类型
选项: 线, 边界
默认: 线,边界
弧层=绳子
弧层
矢量特征可以在不同的层中具有类别值。 这个数字决定
使用哪个层。 当与直接 OGR 访问一起使用时,这是层名称。
默认: 1
节点层=绳子
节点层
矢量特征可以在不同的层中具有类别值。 这个数字决定
使用哪个层。 当与直接 OGR 访问一起使用时,这是层名称。
默认: 2
文件=姓名
包含起点和终点的文件名。 如果没有给出,从标准输入读取
弧柱=绳子
弧向前/双向成本列(数字)
弧向后列=绳子
弧后向成本列(编号)
节点列=绳子
节点成本列(数字)
DMAX=浮动
到网络的最大距离
如果开始/结束作为坐标给出。 如果起点/终点在此阈值之外,
找不到路径并打印错误消息。 为了加快这个过程,保持这个
值尽可能低。
默认: 1000
商品描述
v.net.路径 确定最低成本,例如矢量网络上的最短或最快路径。
成本可以是线长度,也可以是保存在数据库表中的属性。 这些属性
值被视为整个段的成本,而不是遍历长度单位的成本(例如
米)的段。 例如,如果限速为 100 公里/小时,则成本为
穿越 10 公里长的路段必须计算为
长度/速度 = 10 公里/(100 公里/小时)= 0.1 小时。
支持弧和节点的成本分配,以及两者的不同成本
矢量线的方向。 对于区域,将沿边界线计算成本。
输入向量需要准备 v.net operation=connect 才能连接
代表网络中心节点的点。
可以使用 cost = -1 关闭节点和弧。
将最低成本路径写入带有附加属性表的输出矢量地图。
节点可以
· 从文件或标准输入管道进入程序,或
· 在图形用户界面中定义(“交互式输入值”)。
语法如下:
id 起始点类别 结束点类别
(例如:1 1 2)
or
id 起始点 x 起始点 y 结束点 x 结束点 y
类别指定的点必须正好在网络节点上,输入向量图
需要准备v.net operation=connect。
指定坐标时,将使用给定坐标对的下一个网络节点。
属性表将包含以下属性:
· cat - 由模块分配的路径唯一类别
· id - 路径 ID(从输入中读取)
· fcat - 从点类别
· tcat - 指向类
· sp - 结果状态:
· 0 - OK,找到路径
· 1 - 节点不可达
· 2 - 给定类别的点不存在
· 成本 - 旅行成本(在网络上,而不是往/返网络)
· fdist - 从第一点到网络的距离
· tdist - 从网络到第二个点的距离
附注
可以使用 cost = -1 关闭节点和弧。
如果成本列 弧柱, 弧向后列 和 节点列 没有指定,
测量网络段的长度,并假设节点的成本为零。
使用属性时,不使用段的长度。 为了得到准确的结果,
将成本分配为属性时,必须考虑行长度。 例如,到
获得 最快 径,列 'max_speed' 和 'length' 是必需的。 正确的
然后可以通过指定 arc_column=length/max_speed 找到最快路径。 如果还没有
现有,包含行长度(“长度”)的列必须添加到属性
表使用 数据库.
例
两个数字化节点(Spearfish)之间的最短(红色)和最快(蓝色)路径:
# 矛鱼
回声 "1|601955.1|4916944.9|开始
2|594385.6|4921565.2|end" | v.in.ascii in=- cat=1 x=2 y=3 out=startend col="cat 整数,\
东双精度,北双精度,标签 VARCHAR(6)”
v.db.select 起始端
g.copy vect=道路,我的道路
# 创建线映射连接点到网络
v.net myroads 点=startend out=myroads_net op=连接 thresh=500 arc_layer=1 node_layer=2
# 设置成本
# 为第 3 层中的每条道路创建唯一的类别
v.category in=myroads_net out=myroads_net_time opt=add cat=1 层=3 类型=线
# 为第 3 层添加新表
v.db.addtable myroads_net_time layer=3 col="cat integer,label VARCHAR(43),长度双精度,速度双精度,成本双精度,b成本双精度"
# 将道路类型复制到第 3 层
v.to.db myroads_net_time layer=3 qlayer=1 opt=query qcolumn=label 列=标签
# 以英里为单位上传道路长度
v.to.db myroads_net_time 层=3 类型=线路 选项=长度 col=长度 单位=英里
# 以英里/小时为单位设置速度限制
v.db.update myroads_net_time layer=3 col=speed val="5.0"
v.db.update myroads_net_time layer=3 col=speed val="75.0" where="label='interstate'"
v.db.update myroads_net_time layer=3 col=speed val="75.0" where="label='primary Highway, hard surface'"
v.db.update myroads_net_time layer=3 col=speed val="50.0" where="label='二级公路,硬面'"
v.db.update myroads_net_time layer=3 col=speed val="25.0" where="label='轻型道路,改善表面'"
v.db.update myroads_net_time layer=3 col=speed val="5.0" where="label='unimproved road'"
# 将旅行成本定义为以分钟为单位的旅行时间:
# 设置远期成本
v.db.update myroads_net_time layer=3 col=cost val="长度/速度* 60"
# 设置反向成本
v.db.update myroads_net_time layer=3 col=bcost val="长度/速度* 60"
# ... 'start' 和 'end' 节点的类别编号为 1 和 2
# 最短路径:ID为第一个数字,然后是cat1和cat2
回声“1 1 2” | v.net.path myroads_net_time arc_layer=3 node_layer=2 out=mypath
# 最快路径:ID为第一个数字,然后是cat1和cat2
回声“1 1 2” | v.net.path myroads_net_time arc_layer=3 node_layer=2 arc_column=cost arc_backward_column=bcost out=mypath_time
要显示结果,请运行例如:
g.region 向量=myroads_net
d.mon x0
d.vect myroads_net 网站
# 显示最短路径
d.vect mypath col=red 宽度=2
# 显示最快路径
d.vect mypath_time col=蓝色宽度=2
# 起点和终点
d.vect myroads_net 图标=基本/三角形 fcol=绿色 大小=12 层=2
d.font 字体=Vera
d.vect startend disp=cat 类型=点 lsize=14 层=2
使用 onworks.net 服务在线使用 v.net.pathgrass