span8
span4
以前:查看和检查的PostGIS| Next:转换为PostGIS:创建、删除或截断一个表
使用FME,连接到数据库与选择基于文件/文件夹格式的文件略有不同。在读取空间数据库时,存在各种FME参数来提供控制。这些参数可以控制读取器(数据库)和特征类型(表),提高数据库读取的性能。从数据库读取数据时,通常不需要每个表中的每个特性。从数据库中读取的特性越少,读取的速度就越快,使用的系统资源也就越少,整个转换过程也就越快。有关如何提高数据库读取性能的更多信息,请参阅本文让数据库做的工作:阅读。
在本文中,WHERE子句仅用于读取感兴趣的邻居中的公园特性。WHERE子句是一个特定的查询,它只允许将传递查询的特性返回给FME。这使用了数据库查询工具(特别是SQL),这些工具反过来利用数据库索引,并且比读取整个表然后使用测试转换器过滤它要有效得多。
使用FME 2016.1这段视频被记录的数据是从当前的文章不同,但其概念仍然是相同的。
ConvertingFromPostGIS.zip(包含工作空间和输出数据)
1。添加PostGIS的读者
启动FME工作台并打开一个新工作区。
从“阅读器”菜单中选择“添加阅读器”。选择PostGIS的的格式。对于连接,选择在中创建的PostGIS训练连接查看和检查的PostGIS。如果你没有这个命名的数据库连接,点击下拉菜单,选择添加数据库连接,然后输入以下连接参数:
名称:PostGIS的培训
港口:5432
数据库:fmedata
用户名:fmedata
密码:fmedata
接下来,单击Parameters按钮,对于表列表,单击省略号按钮并选择Parks。我们可以在reader参数中设置WHERE子句,但是我们首先要检查数据。稍后可以添加WHERE子句。单击OK两次。
2。检查数据
现在我们已经成功地访问了数据库并添加了Parks数据集,我们可以检查数据了。单击阅读器功能类型打开弹出菜单,然后选择查看源数据打开可视化预览。
在2018.1和较老版本的FME中,点击Inspect按钮打开FME Data Inspector。
这里我们有一个数据集,包含了BC省温哥华的所有公园,但我们只对一个叫西区的社区内的公园感兴趣。我们将使用WHERE子句来过滤这些内容。
3。设置WHERE子句
要在添加阅读器之后设置WHERE子句,需要使用Navigator窗口。转到“导航器”窗口,展开PostGIS Training reader,然后展开“参数”。双击WHERE子句打开参数窗口。
在编辑PostGIS Training[PostGIS]对话框中,单击WHERE子句旁边的省略号以打开文本编辑器。
在文本编辑器中添加以下内容,注意单个vs。双引号。单击“确定”两次以添加WHERE子句。
“neighborhood name”=“西区”
在左侧,neighborhood name表示属性名,在右侧,West End表示属性值。在标准SQL中,双引号表示属性/字段名,单引号表示属性/字符串值。
4。添加文件地理作家
现在我们需要写出数据。从“编写器”菜单中,选择“添加编写器”。选择ESRI地理数据库(文件地理数据库开放API)的格式。对于“数据集”,请单击“打开文件夹浏览器”按钮,然后输入.gdb文件的名称(WestEndParks.gdb)和位置(您喜欢的任何位置)。将要素类或表定义设置为“自动”,然后单击“确定”。
将出现“要素类型”对话框,将要素类或表格名称设置为WestEndParks。然后将几何体设置为geodb_polygon,然后单击“确定”。
将writer功能类型添加到画布后,将public.parks reader功能类型连接到westerndparks writer功能类型。
5。运行工作空间
保存并运行工作区。要查看数据,请单击writer功能类型以打开弹出菜单,然后单击view writed data。在2018.1或更早版本的FME中,单击弹出菜单中的“检查”按钮打开FME数据检查器。
保留源数据集中的属性,Geodatabase writer文件只将西区邻居中的16个公园写入West End parks.gdb。
WHERE子句参数和类似参数的问题是,很难获取用户输入并将其应用于子句。仅仅发布参数是没有用的,因为用户必须输入完整的子句(
1。添加参数发布
在开始之前,请确保您已经完成了前面的步骤,直到步骤4为止。在“导航器”窗口中,右键单击“用户参数”,然后选择“创建用户参数”。
在“添加/编辑用户参数”对话框中,填写以下参数:
类型:文本
名称:邻居名称
提示:邻居名称:
默认值:'西区'
发布时间:选中的
可选的:选中的
确保“West End”周围有单引号,然后单击“确定”。
2。转换WHERE子句一个秘密参数
现在我们有了published参数,可以更新WHERE子句了。在“导航器”窗口中,右键单击PostGIS Reader要素类型WHERE子句参数,然后选择“创建用户参数”。
取消选中“已发布”框,这样在运行工作区时不会提示用户设置此参数,这称为私有参数。然后将该值设置为:
“邻居名”=$(邻居名)
此已发布参数引用以前创建的参数,由$(neighborhoodyname)表示。单击“确定”添加新的私有参数。
3。运行工作区的用户参数使用提示
在运行工作区之前,请单击“运行”下拉列表并启用用户参数提示。在旧版本的FME中,这被称为Run with Prompt。此选项将在运行时提示用户选择邻居。
现在运行工作区,当出现提示时,在提供的字段中输入有效的邻居名称(从“闹市区”、“美景”、“Kitsilano”、“Mount Pleasant”、“Strathcona”或“West End”中选择)。请注意,单引号表示属性/字符串值,是属性值所必需的。
由于地理数据库被设置为插入新的内容,这将添加新的邻域到现有的西端。
数据归属
此处使用的数据源于温哥华市,不列颠哥伦比亚省。它包含根据开放的政府许可证-温哥华许可的信息。请注意,并非训练PostGIS数据库中的所有数据都来自温哥华市,因为它是一个公共数据库,任何人都可以在其中上载数据。
©2019安全亚搏在线软件公司法律