斯潘8
斯潘4
使用FME服务器和FME桌面,我们可以使用一个感兴趣的多边形区域(例如一个城市边界)裁剪一组用户指定的图层,这与读取整个图层组然后裁剪特征的传统方法不同。
要执行此任务,将使用FeatureReader变压器。这个转换器允许我们使用任何格式,实际上允许将空间过滤器应用到用户指定的层。
也,FeatureReader允许您为它读取的任何表动态地将数据写入目标特性类型。这是通过
以下是分步指南。有关完成的示例,请参见附加的工作区。
这是将用于在空间上过滤所需数据的功能。在此边界内找到的所有功能都将被读取到工作流中。亚搏在线
向画布中添加新的MapInfo选项卡读取器。
格式:mapinfo选项卡(mitab)
数据集:
此选项允许最终用户根据所选区域的类型选择不同的边界(例如工业vs.住宅)。在导航器中,右键单击已发布的参数并选择“添加参数”。创建新的“choice”参数并从mapinfo文件导入区域类型。
a)右键单击导航器中的已发布参数并选择“添加”。输入以下内容:
b)单击“配置”按钮,然后在以下屏幕上选择“导入”:
c)读取zones.tab文件和设置导入模式:
单击“下一步”。
单击“导入”以引入类别。
选择“确定”保存参数。
额外信贷
使用Web映射工具:如果您的用户正在绘制某种Web映射工具感兴趣的区域,可以将此多边形的顶点发送到新发布的参数,然后使用创建器和变压器组合从这些顶点创建多边形。
使用WHERE子句:如果用户通过添加读卡器来选择感兴趣的区域,您可以为该阅读器发布一个WHERE子句(如果适用于该格式),以提供用户的灵活性。(在我们的例子中,mapinfo没有此功能,因此必须创建一个参数)
上述两种方法都可以组合在一个工作空间中,为用户提供任一选项。
分区数据集中的每个分区类别都由多个多边形组成。因为我们想用一个区域作为边界,我们需要一种方法将这些特性聚合成一个有组织的特性。要做到这一点,我们将使用溶解器,聚合器和测试变压器。
a)将溶解器放置在连接到Mitab阅读器的画布上,并设置以下内容:
分组依据:区域类别
b)添加聚合器:
分组依据:区域类别
c)使用我们发布的参数(类型)添加测试仪:
左值:ZoneCategory运算符:=右值:$(类型)
在这个阶段,我们将阅读我们感兴趣的实际数据层,这些数据层将通过编写器编写出来。这是我们想要通过边界多边形过滤的数据。
将FeatureReader添加到画布并将其连接到测试仪。然后设置以下内容:
格式PASS地理信息系统
数据集:嵌入连接参数
Postgis证书:
宿主 | postgis.train.亚搏在线safe.com网站 |
端口 | 五千四百三十二 |
数据库 | FMEDATA |
用户 | FMEDATA |
密码 | FMEDATA |
要读取的功能类型:public.parks(键入此文本或使用“…”按钮搜索)
空间滤波器包含
输出>输出端口:单输出端口
输出>属性和几何处理>
选择“确定”。
运行工作区并检查输出。您应该注意,只有存在于选定边界多边形内的风场数据保留。在这个阶段,只有公园会被读取到工作区中,所以我们可以通过给用户选择层来提高灵活性。
要做到这一点,需要创建第二个已发布的参数,以允许用户选择层(即,功能类型)。在《壮志凌云》中,选择“功能类型”旁边的下拉箭头,然后选择“用户参数>创建用户参数”,然后选择“固定列表”从存储在数据库中的层中进行选择。选择:“public.roads,public.parks和public.addresspoints,然后选择“确定”创建参数。
额外信贷
还可以将参数创建为文本字段。文本字段允许输入在编写工作区时不存在的选项;它们需要手动输入或通过另一个程序传递,例如使用FME服务器的Web应用程序。将用户的选择以空格分隔的列表形式发送到此参数。例如:“AddressPoints Parcels Neighborhoods”。
因为工作区的可读性很强,需要在动态模式下设置编写器,以确保可以写出数据。
向画布中添加通用编写器,并选择“autodesk autocad dwg/dxf”作为要在参数中使用的格式。当工作区运行时,您可以在提示时将其更改为任何格式(强大!).
注释:对于基于文件和文件夹的格式,工作区将按原样工作。对于其他格式,如基于云的和数据库,需要设置其他写入程序参数,指定并连接到所需的目的地。
通用格式允许用户选择格式。然后将模式设置为动态模式,并将模式源设置为“模式自模式特征”。
为了在FME中写出数据,编写器功能类型需要知道它将使用的架构。在这种情况下,我们需要使用FeatureReader中的数据作为我们的模式。
我们如何获得模式?
截至2015年FME,FeatureReader有一个额外的输出端口。”
注释:要使用固定模式(本例中未显示),您需要为用户可能读取的任何表添加一个编写器和目标功能类型。使用FeatureTypeFilter Transformer将功能路由到适当的目标功能类型。
现在使用prompt and run选项来执行工作区。尝试不同的区域类型和表名来生成不同的输出集。
正在发生的是,FeatureReader Transformer是由启动器功能触发的。在我们的例子中,这是区域数据的边界多边形集。如果我们有10个边界多边形,那么FeatureReader执行10次。如果启动器功能较少,则性能最好。
当启动FeatureReader时,它连接到格式并读取TableNames参数中指定的功能类型。Transformer允许空间过滤,因此使用“contains”子句意味着返回的特性由发起方多边形包含。然后,作者动态地获取所有特性,并根据传入的层名称和模式将它们写入各自的层。不包括超出边界框的任何功能。
?2019安全亚搏在线软件公司|合法的