免费视频|新人指南|投诉删帖|广告合作|地信网APP下载

查看: 1120|回复: 6
收起左侧

【FME- HOW- TO系列】06 从线段创建多边形

[复制链接]

665

主题

2万

铜板

34

好友

传奇会员

Rank: 30Rank: 30Rank: 30Rank: 30Rank: 30Rank: 30Rank: 30Rank: 30

积分
20649

精华勋章爱心勋章地信专家组贡献勋章冰雪节勋章

发表于 2021-4-6 15:01 | 显示全部楼层 |阅读模式

在FME中创建多边形可以通过使用折线或线要素来完成(例如街道网络和AreaBuilder转换器)。由于街道网络是一组拓扑连接的线条,AreaBuilder能够创建多边形要素,从由顶点/端点连接的线并形成形状(即一个闭合多边形)。不过,面也可以使用LineCloser从断开连接的线要素性中创建。


下载

create-a-polygon-from-line-segments.fmwt

roadsgdb.zip

注意:由于您正在处理面向公众的数据库,因此有时可能会覆盖和/或修改表。如果您的转换产生意外结果,请参阅重置PostGIS培训数据库文章或者,您可以下载提供的文件,并使用适当格式的读模块替换PostGIS读模块

练习

在本教程中,您将使用AreaBuilder从包含主干,住宅区,私人和非城市街道的街道网络为城市街区创建多边形。

说明

1.启动FME Workbench

  • 如果尚未打开,请启动FME Workbench。

2.选择“生成工作空间”

  • 在“开始”页面的“创建工作空间部分中,选择“生成(工作空间)”选项。或者,您可以使用快捷键Ctrl + G.

有关创建转换的详细信息,请参阅“ 桌面基础课程手册”

3.设置读模块格式并连接到PostGIS Training Database

  • 在“生成工作空间”对话框中,将“读模块格式”设置为PostGIS。
  • 接下来,从读模块连接列表中选择PostGIS Training Database。如果尚未设置数据库连接,请选择“添加数据库连接”并输入以下参数:
  • 接下来,打开读模块参数并从Table List中选择Roads表。

4.设置写模块格式并连接到PostGIS Training Database

  • 写模块格式设置为PostGIS,将写模块连接设置为与读模块(PostGIS Training Database)相同的连接,然后单击OK以生成工作空间。“生成工作空间”对话框应如下面提供的屏幕截图:

5.设置要素操作和表处理

  • 生成工作空间后,双击“写模块要素类以打开“写模块要素类参数”对话框。
  • 在“常规”部分中,将“表名称”设置为“VanBlocks”。
  • 在“表”部分中,确保“要素操作”设置为“插入”并将“表处理”设置为“删除和创建”。

注意:当需要清空表并对数据库模式进行更新时,将使用Drop和Create。例如,drop和create用于删除表结构,可能是添加或删除列,更改数据类型等。有关写模块要素类参数(如表处理)的详细信息,请参阅文档

6.更新属性

  • 切换到写模块参数对话框中的用户属性选项卡,将属性定义设置为Manual并删除除“ type”和“ polyid”之外的所有属性。
  • 单击“确定”接受更改并关闭“写模块参数”对话框。

注意:自动属性定义是指Workbench自动定义属性列表,具体取决于所连接的读模块要素类。此外,只要在工作空间中更改(即重命名,删除等)属性,写模块要素类上的属性列表就会自动更新。有关用户属性和属性定义的更多信息,请参阅文档

7.添加Area Builder

  • 通过选择读写模块之间的连接并键入“AreaBuilder”以在快速添加搜索中显示FME转换器列表,将AreaBuilder添加到画布。通过双击或使用箭头键选择转换器列表中的AreaBuilder并按回车键将添加到工作空间中。
  • 注意:通过在选择连接时添加转换器,端口将自动映射到第一个可用的输入和输出端口。

8.设置捕捉容差

  • 打开AreaBuilder参数,在“多边形参数”部分中,取消选择“创建
  • 在关闭参数之前,请调整捕捉预处理参数以确保街道网络在拓扑上是正确的。
  • 展开AreaBuilder对话框中的捕捉预处理参数以显示其他参数。将“捕捉类型”设置为“顶点捕捉”,将“捕捉容差”设置为8.有关容差参数的详细信息,请参阅“ 桌面基础课程手册”
  • 将所有其他参数保留为默认值,然后单击“确定”接受更改并关闭“AreaBuilder参数”。AreaBulider参数应与下面提供的屏幕截图相匹配:

注意:捕捉容差以地图单位测量,在本例中为米。

9.创建PolyID

  • 在AreaBuilder之后添加一个Counter并将其连接到AreaBuilder:Area端口。这将为每个新创建的多边形提供唯一的ID。

10.设置计数输出属性

  • 打开Counter参数并将计数输出属性更改为“polyid”。将所有其他参数保留为默认值,然后单击“确定”接受更改并关闭“计数器参数”。

11.运行工作空间

  • 单击工具栏上的“运行”按钮,或使用菜单栏上的“运行”>“运行转换”运行工作空间

运行转换后,您可以通过选择写模块并单击选择写模块时出现的快捷菜单中的“检查”按钮来查看新表。

结果输入

输出


转换器
  • AreaBuilder - 采用一组拓扑连接的线条,并创建拓扑正确的多边形要素,其中线条形成封闭的形状。
  • Counter - 向要素添加数字属性并指定值。通过转换器的每个后续要素都会收到递增的值 - 换句话说,计数器正在计算要素


本文转载来自CSDN作者:fmechina    版权归作者所有

10

主题

2万

铜板

34

好友

黄金会员

Rank: 23Rank: 23Rank: 23Rank: 23Rank: 23Rank: 23Rank: 23

积分
4394

精华勋章灌水勋章活跃勋章贡献勋章

发表于 2021-4-6 16:28 | 显示全部楼层
谢谢分享
回复

使用道具 举报

0

主题

3万

铜板

10

好友

钻石会员

Rank: 26Rank: 26Rank: 26Rank: 26Rank: 26Rank: 26Rank: 26

积分
6105
发表于 2021-12-12 12:55 | 显示全部楼层
谢谢分享
回复

使用道具 举报

0

主题

1万

铜板

3

好友

资深会员

Rank: 18Rank: 18Rank: 18Rank: 18Rank: 18

积分
3286
发表于 2022-11-27 19:46 | 显示全部楼层
好资料,正在学习中....
回复 支持 反对

使用道具 举报

1

主题

1万

铜板

2

好友

黄金会员

Rank: 23Rank: 23Rank: 23Rank: 23Rank: 23Rank: 23Rank: 23

积分
5179
发表于 2022-12-31 17:26 | 显示全部楼层
感谢分享
回复

使用道具 举报

2

主题

1万

铜板

7

好友

钻石会员

Rank: 26Rank: 26Rank: 26Rank: 26Rank: 26Rank: 26Rank: 26

积分
6401
发表于 2023-1-6 15:50 | 显示全部楼层
没事来逛逛
回复 支持 反对

使用道具 举报

2

主题

4万

铜板

7

好友

钻石会员

Rank: 26Rank: 26Rank: 26Rank: 26Rank: 26Rank: 26Rank: 26

积分
6445
发表于 2024-3-4 19:26 | 显示全部楼层
谢谢分享
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

在线客服
快速回复 返回顶部 返回列表