span8
span4
作为FME 2016.1中,PostGIS的作家还不支持上可用的Oracle和SQL Server作家“处理多个空间列”选项。所以写入POSTGIS表具有多个空间列需要一个两个步骤过程。
注:我们已经为PostGIS多重几何支持记录了pr17730。
与多个几何列的PostGIS的表必须是使用pgAdmin的,以获得正确的表格布局预建。在PostGIS的表已经预建的演示的例子,PostGIS中 - 插入 - 更新2016.fmwt。
workspaces-for-inserts-and-updates.zip
随着FME 2016+,它更容易多个几何写入PostGIS的。写多个几何形状,特征必须首先用一个几何类型,然后与另一种更新的插入。在此之前,必须在2个独立的工作区来完成。现在可以订购的功能运行时处理,使用连接运行秩序,使插入和更新可以在同一个工作区来完成。
下载了PostGIS - 插入 - 更新2016.fmwt是一个完整的工作区。如果你想自己创建工作区,请下载Parks.zip,并按照下面的步骤来创建它。
完成工作
1.创建源表
要为运动做准备,请运行CREATETABLE-城市parks.fmw,以确保该表是否正确设置。
2.添加读者
添加的MapInfo(MTAB)Reader和设定数据集Parks.tab。
3.为多边形添加插入写入器
转到作家,作家加入并添加PostGIS的作家。设置数据集,以嵌入连接参数。在参数...请输入:
端口:5432
数据库:fmedata
用户名:fmedata
密码:fmedata
连接PostGIS的作家特征类型的MapInfo的读者。在INSERT作家的要素类型属性,在常规选项卡下,请设置表限定符fmedata2016。在格式参数选项卡,请将“插入”为“功能操作”和“截断现有”为“表处理”的参数。在这个例子中,INSERT作家将处理多边形的几何形状。
插入写入器格式参数
4.创建和重投影点
一个CenterPointReplacer连接到的MapInfo(MTAB)阅读器,以创建另一组数据流的。该CenterPointReplacer创建点,然后添加一个Reprojector坐标系更改为LL84。最后,添加一个AttributeRemover去除除了关键领域的所有属性,parkid。它是只需要通过对更新作家“parkid”的关键领域 - 所有其他属性可以从功能加以去除。
5.添加更新作家点
转到作家,作家加入并添加PostGIS的作家。设置数据集,以嵌入使用与上述相同的参数连接参数。
连接PostGIS的作家特征类型的AttributeRemover。在更新写入器的特性类型属性中,在General选项卡下,请将表限定符设置为fmedata2016。在“格式参数”选项卡中,请为“功能操作”设置“更新”,为“表处理”参数设置“使用现有”。
更新写入器格式参数
6.设置连接运行时顺序
在MapInfo (MITAB)阅读器的输出端口上,右键单击并选择设置连接运行时顺序…请设置公园-> fmedata2016。City_Parks in position 1 and Parks -> CenterPointReplacer in position 2.
年代et连接运行时顺序
7.使用pgAdmin运行工作区并检查输出
请检查pgAdmin中的输出,因为PostGIS阅读器也不支持多个几何列,默认情况下FME的PostGIS阅读器将选择第一个几何列。在pgAdmin中,请右键单击表,选择“查看数据”,然后查看所有行。
输出查看在pgAdmin
在FME 2016之前,需要两个工作空间流程,用于插入和更新的工作空间。附加的zip文件包含两个工作空间,它们展示了如何实现这一点。
1)运行none2postgis_insert。fmw workspace to INSERT your first geometry type into the table
2)然后运行另一个none2postgis_update。fmw workspace to UPDATE the table with the second geometry type.在运行更新工作区(Writer模式= update)时,必须将fme_where格式属性设置为键值(在示例表中,它可以是fme_where id = 1)。此外,还需要将空间列名参数更改为第二个几何图形。在上面的例子中,您将首先插入空间列名Geom,然后在更新工作区中将空间列名更改为Geom2。
——2个空间列——DROP TABLE public.“ParksTwoSpatial”;创建表。"ParksTwoSpatial" ( 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_2_spatial_pkey PRIMARY KEY (parkid) ) WITH ( OIDS=FALSE );ALTER TABLE。"ParksTwoSpatial" OWNER TO postgres;——DROP INDEX public.“Parks_geom_si”;——下降指数。“Parks_geog_si”;在public上创建索引“Parks_geom_si”。使用gist (geom)的“ParksTwoSpatial”;在public上创建索引“Parks_geog_si”。使用gist (geog)的“ParksTwoSpatial”;
©2019安全亚搏在线软件公司|法律