span8
span4
这篇文章也是教程的一部分在FME中怎么做呢|接下来:定义一个汽车时区
最短路径计算在FME中使用ShortestPathFinder变压器完成。此转换器计算给定网络中从源节点到目标节点的最短路径。
例如,在这里,用户使用线路网络查找给定路线的起点/终点之间的最短路径:
从到行定义了路线的起点和终点。对于同一网络上的多个计算,可以将任意数量的from-to行传递到ShortestPathFinder。
有一些简单的变化和问题需要注意。
按照以下步骤作为如何计算网络中最短路径的示例。
1.开始FME工作台。添加一个reader (reader >在menubar上添加reader)来读取附加的从行到行的形状数据集。
2.添加第二个读取器来读取附加的AutoCAD DWG数据集,其中包含道路网络。在“添加阅读器”对话框中,单击“单一合并功能类型”选项。这将确保所有数据作为一个单层添加:
3.添加一个最短的寻路变压器,并连接道路网络和从线路到正确的输入端口。添加一个检查变压器可视化输出:
4.为ShortestPathFinder打开参数对话框。由于from-to端点可能不完全位于网络上,因此将参数from-to和网络捕捉更改为Yes。设置公差为200:
5.运行工作空间。输出将是这样的:
在单行道上逆向行驶是通过使用成本而不是距离来避免的。必须对单行道进行标记(通常带有属性),并对其方向(从第一个坐标到最后一个坐标)进行标记,以匹配允许的行进方向。
按照以下步骤作为如何计算网络中的最短路径并避免在单行道上走错路的示例。
1.开始FME工作台。打开附加的工作空间(或从示例1继续)。
2.在工作空间中添加一个测试变压器,在街道特征类型和最短探路者变压器之间:
3.打开测试参数对话框。设置一个测试,测试OneWay属性是否等于Y
4.添加两个AttributeManager转换器,一个连接到每个测试器输出端口。这些将用来确定旅费:
5.打开参数对话框第一AttributeManager(一个连接到测试器:合格端口)。添加两个新的属性,ForwardCost和ReverseCost。设置ForwardCost到1的值(表示于单向街道的正确方向)和ReverseCost至9999的值(表示于单向街道不正确的方向)
6。打开参数对话框第二AttributeManager(一个连接到测试仪:故障端口)。添加两个新的属性,ForwardCost和ReverseCost。这两个属性设置为1的值。这是双向的街道上的费用是在两个方向上相等。
7。打开参数对话框的ShortestPathFinder变压器。改变从成本类型参数“依长度”为“由两个属性”。设置ForwardCost作为正向成本属性和ReverseCost作为反向成本属性
8。运行工作空间。输出将是这样的:
注意到这个输出和实施例1之间的差异。实施例1使用单向街道不正确的,而实施例2可避免这样做。
只使用成本属性来确定路径意味着距离不再考虑。例如,例如2有100米和100公里的道路没有什么区别,只要不是一个单向街。为了解决这个需要使用长度和成本。
遵循这些步骤的如何计算的最短路径在网络中,应用的成本和长度的例子。
1.开始FME工作台。打开附件的工作区(或来自实施例2继续)。
2.打开参数对话框第一AttributeManager变压器。接下来为ForwardCost属性的值,单击下拉箭头,然后选择打开算术编辑器
3.在算术编辑器中添加一个乘号,然后在FME特性功能称为长拖
重复此步骤为ReverseCost属性,并在第二AttributeManager既节省成本又属性重复。
4.运行工作空间。输出将是这样的:
再次注意来自实施例1和2中的结果的差异。
注:用成本乘以距离的方法只是可能使用的方法之一。例如,你可以将成本乘以距离的一半(成本*(距离/2))
©2019安全亚搏在线软件公司法律