第8页
第4排
截至FME 2016.1,Postgis编写器还不支持Oracle和SQL Server编写器上可用的“处理多个空间列”选项。因此,写入具有多个空间列的PostGIS表需要两个步骤。
注:我们已经为PostGIS多几何支持记录了pr 17730。
必须使用pgadmin预构建具有多个几何列的PostGIS表,才能获得正确的表布局。Postgis表已经为演示示例预构建,postgis-insert-update-2016.fmt.
postgis-insert-update-2016.fmwt
workspace-for-inserts-and-updates.zip
使用FME 2016+,可以更容易地编写多个几何图形来发布地理信息系统。要编写多个几何图形,必须先用一种几何图形类型插入特征,然后用另一个更新。在此之前,必须在两个单独的工作区中进行。现在可以订购功能的运行时处理,使用连接运行时顺序,以便可以在同一个工作区中完成插入和更新。
下载postgis-insert-update-2016.fmt是完整的工作区。如果您想自己创建工作区,请下载parks.zip,然后按照下面的步骤创建它。
已完成的工作区
1.创建源表
为了准备练习,请运行createtable-city-parks.fmw以确保表设置正确。
2.第二步。添加读卡器
添加一个mapinfo(mtab)阅读器,并将数据集设置为parks.tab。
三。为多边形添加插入编写器
去找作家,添加Writer并添加Postgis Writer。设置数据集以嵌入连接参数。在参数下…请输入:
主持人:postgis.train.亚搏在线safe.com网站
端口:5432
数据库:FMEData
用户名:fmedata
密码:fmedata
将PostGIS编写器功能类型连接到MapInfo阅读器。在插入编写器的功能类型属性中,在“常规”选项卡下,请将表限定符设置为FMEData2016。在“格式参数”选项卡中,请为“feature operation”设置“insert”,为“table handling”参数设置“truncate existing”。在这个例子中,插入编写器将处理多边形几何图形。
插入写入程序格式参数
第四章。创建和重新投影点
将CenterPointReplacer连接到MapInfo(MTAB)读卡器,创建另一组数据流。CenterPointReplacer创建点,然后添加一个重投影程序,将坐标系更改为LL84。最后,添加attributereMover以删除除关键字字段之外的所有属性,公园ID。只需要通过更新编写“parkid”的关键字段-可以从功能中删除所有其他属性。
5.为点添加更新编写器
去找作家,添加Writer并添加Postgis Writer。将DataSet设置为使用与上面相同的参数嵌入连接参数。
将PostGIS编写器功能类型连接到attributereMover。在更新编写器的功能类型属性中,在“常规”选项卡下,请将表限定符设置为FMEData2016。在“格式参数”选项卡中,请为“功能操作”设置“更新”,为“表处理”参数设置“使用现有”。
更新写入程序格式参数
6.设置连接运行时顺序
在mapinfo(mitab)读卡器的输出端口上,右键单击并选择设置连接运行时顺序…请在位置1设置Parks->FMEData2016.City_Parks,在位置2设置Parks->CenterpointReplacer。
SET连接运行时顺序
第七章。使用pgadmin运行工作区并检查输出
请检查pgadmin中的输出,由于PostGIS阅读器也不支持多个几何列,默认情况下,FME的PostGIS阅读器将选择第一个几何列。在pgadmin中,请右击桌子,选择查看数据,然后查看所有行。
在pgadmin中查看的输出
在FME 2016之前,需要两个工作区进程,workspaces-for-inserts-and-updates.zip是演示。附加的zip文件包含两个工作区,其中显示了如何完成此操作。
1)运行none2postgis_insert.fmw工作区,将第一个几何类型插入表中。
2)然后运行另一个none2postgis_update.fmw工作区以使用第二个几何类型更新表。运行更新工作区(写入程序模式=更新)时,您必须将fme_where format属性设置为键值(在示例表中,它可以是fme_where id=1)。此外,还需要将空间列名参数更改为第二个几何图形。在上面的情况下,您将首先插入空间列名称geom,在更新工作区中,您将空间列名称更改为geom2。
--2个空间列--放置表public。“parkstwospace”;创建表public。“parkstwospace”(parkid smallint,refparkid smallint,parkname character varying(40),neighborhoodname character varying(40),ewstreet character varying(30),nsstreet character varying(30),dogpark character varying(1),washrooMS character varying(1),specialfeatures character varying(1),geom geometry(geometry,26910),geog geography,constraint parks ou space ou pkey primary key(parkid=false);alter table public.“parkstwospace”owner to postgres;--drop index public.“parks ou geom ou si”;--drop index public.”parks ou geog_ si”;使用gist(geom)创建索引“Parks-geo-si”。使用gist(geom)创建索引“Parks-geo-si”;使用gist(geog)创建索引“Parks-geo-si”;
?2019安全亚搏在线软件公司|法律