练习4 FME HACKASTRON
数据 道路(autodesk autocad dwg,ESRI形状文件,和/或PostGIS)
总体目标 找到从哈克顿到意大利咖啡馆的最短路线
演示 数据转换,转型,最佳实践
启动工作区 没有
结束工作区 C:\fmedata2016\workspaces\desktopbasic\bestpractice-ex4-complete.fmwt

一个地区地理信息系统小组正在举行一次故障模式与影响分析,并邀请您参加。

已经向您提供了一组源数据,并要求您从中创建一个有用的项目。你决定制作一个工具来绘制从Hackathon场地到一个咖啡馆的路线图,这个咖啡馆是一个团队聚会的地方。

所以,您的任务是使用可用的数据计算从会议中心到咖啡馆的最佳路线,把数据写成GPX格式,这样人们就可以在他们的GPS/移动设备中使用它。


1)创建数据库连接
源数据已在PostGIS数据库中提供;因此,我们的第一个任务应该是创建一个到它的连接。这样我们就可以使用连接,而不必输入连接参数。

在Web浏览器中访问http://fme.ly/数据库-这将显示在AmazonRDS上运行的PostGIS数据库的参数。

在工作台上,从菜单栏中选择工具>FME选项

单击“数据库连接”类别的图标,然后单击[+]按钮创建新连接。在“添加数据库连接”对话框中,首先选择PostgreSQL作为数据库类型。然后输入通过Web浏览器获得的连接参数。

为连接命名(例如hackathon postgis数据库),然后单击“保存”。然后单击“确定”关闭“FME选项”对话框。


2)检查数据
启动FME数据检查器检查我们将使用的数据集。选择“文件>打开数据集”,然后,当提示时,输入以下内容:

读卡器格式 邮政地理信息系统
读卡器数据集 Hackathon PostGIS数据库
参数 在“表列表”下,选择“道路”和“单向街道”

单击“确定”关闭对话框并打开数据。更改单向街道的颜色,以便您可以看到它们是一组不同的功能。如果我们想计算一条实际合法的路线,那么知道哪条路是单行道是很重要的!

*NB:如果使用PostGIS数据库有任何问题(例如防火墙的连接问题),则可以用极少的更改替换以下AutoCAD数据集:*

读卡器格式 欧特克AutoCAD DWG/DXF
读卡器数据集 C:\fmedata2016\data\transportation\onewaystreets.dwg


3)启动工作台
启动Workbench并使用该选项生成工作区。

读卡器格式 邮政地理信息系统
读卡器数据集 Hackathon PostGIS数据库
参数 在“表列表”下,选择“道路”和“单向街道”
写入程序格式 GPS交换格式(GPX)
写入数据集 C:\fmedata2016\输出\培训\route.gpx

工作区将如下所示:

为了最佳实践,您可能需要在这些功能周围加一个书签,也许可以注释一下哪条是单行道。


4)添加shortestpathfinder
现在我们需要开始计算路线。显而易见的第一步是添加一个shortestpathfinder变压器,这就是我们计算路线的方法。

所以,添加一个shortestpathfinder变压器。将道路连接到网络端口。


1更新
上面(和后面)截图中的shortestpathfinder transformer在fme2016.1中获得了重新排序的端口。


5)添加创建者
shortestpathfinder上的另一个输入端口用于从到路径(我们旅程的起点和终点)。要在此处添加要输入的功能,我们可以使用创建者转换器手动创建它。

添加一个创建者转换器并将其连接到“从”到“端口”。

打开“创建者参数”对话框。

首先输入utm83-10作为我们要创建的数据的坐标系。对于几何对象参数,单击右侧的“…”浏览按钮打开几何创建对话框。选择线条作为几何图形类型,并输入以下坐标:

X 491500 Y 5459550X 494500 Y 5457440

第一个坐标是Hackathon场地的坐标,第二个坐标是我们网络中离我们要访问的咖啡馆最近的点。

单击“确定”按钮关闭对话框。


6)检查shortestpathfinder参数
我们添加的功能的坐标可能不完全位于道路网络上。为了解决这个问题,我们可以在shortestpathfinder中使用一些参数。

所以,打开shortestpathfinder参数对话框。在“捕捉选项”下,将“从到捕捉”设置为“是”,并输入150作为捕捉公差:

还要注意,网络成本有一些参数——我们稍后将使用这些参数。


7)运行工作区
在shortestpathfinder之后添加一些inspector transformers,并运行工作区来证明它一直工作到这一点。

如果一切顺利,输出结果如下:已定义路线:


瓷砖由地图探索

当然,如果一切都不正常,你必须利用检查员和记录器变压器,加上功能调试,尝试定位错误!


8)增加变更检测器
结果看起来不错,但有些事情我们还不确定:如果这条路线把我们引错了一条单行道怎么办?如果它用得慢些呢?居住路线?

第一个问题我们可以通过忽略单向街道(即避开它们。

通过匹配单向街道,我们可以在FME中实现这一点,以便将它们从网络中删除。

将changedetector转换器添加到工作区。将道路特征类型连接到原始端口,将单向街道特征类型连接到修改后的端口:即道路特征类型包括单向街道,我们可以将它们与单向街道功能类型匹配,以过滤它们:

打开changedetector参数。请注意,我们正在匹配几何图形(正确),因此不要更改任何参数,只需单击“确定”关闭对话框。

通过使用与单向街道匹配的changedetector道路功能,将从不变的港口出现,所以我们应该让这一切保持联系。同样地,新增功能将是尚未匹配的单向街道,我们也可以把这些忘了。

因此,将删除的端口连接到shortestpathfinder网络端口。“删除”功能是指变压器认为已删除的功能,因为它们作为道路存在,但不是单向数据。


9)重新运行工作区
现在重新连接任何检查器变压器(如果需要)并重新运行工作区。检查新路线。如果它比以前改变了,你知道这是因为它现在避开了单行道。这可能不是最短的路线,但这是一个我们可以自信地跟随而不直接进入进入交通!


10)添加attributeValueManager
为了使我们的路线更适合干道(而不是住宅),我们需要给每种类型的路线一个成本。

最好的解决方案是一个属性评估主变压器;所以把其中一个放到工作区。

在更换探测器成为最佳位置之后,因此,一些特性将被过滤掉,这个变压器将有更少的工作要做。


11)编辑属性值管理器
现在我们可以设置attributeValueMapper Transformer。打开参数对话框:

  • 选择“type”作为源属性
  • 输入成本作为目标属性
  • 输入2作为默认值

现在,在这些参数之下,我们将绘制一些数据。

在第一个“源值”字段中输入“动脉”,在匹配的目标值中输入1。

在第二个源值字段中输入“residential”,在匹配的目标值中输入值3。

基本上,如果路线是干道(主干道),则成本为1;住宅路线的成本为3,所有其他类型的路线的成本为2(因为这是默认值)。单击“确定”关闭对话框。


12)应用成本
现在我们将在shortestpathfinder中应用新计算的成本。

打开shortestpathfinder参数对话框。将成本类型参数设置为“按两个属性”。

选择“成本”作为正向和反向成本参数(即它的成本是相同的,无论道路特征是朝哪个方向行驶,也不管我们朝哪个方向行驶)。


一副变压器说…
如果我们知道单向街道是以正确的方向连接的(即从第一个顶点到最后一个顶点是实际的旅行方向),我们可以为逆向成本设置999的权重,这样就不需要它们了。因为这不是我们的数据,我们不能确定,所以我们的方法更安全。亚搏在线


13)运行工作区
工作区现在将如下所示:

保存,然后运行工作区。您会发现,您的新路线将您从会议中心引导到商业驾驶,避开单向街道,并考虑到住宅路线的缓慢。


14)连接模式
哦!不要忘记移除检测变压器并将路径端口连接到路由输出功能类型:

现在运行工作区,将数据上传到您的GPS设备,你准备好了!


高级练习
不是很先进,但你一直在使用最佳实践,正确的?我是说,在需要的地方你有书签和注释,没有重叠的连接?如果没有,好吧,你可能想解决这个问题!

祝贺你
通过完成本练习,您证明了自己知道如何:
  • 创建和使用FME数据库连接
  • 创建一个FME工作区并使用变压器
  • 使用调试技术查找练习中遇到的任何问题
  • 使用好的样式开发工作区

结果匹配”

    没有匹配的结果“