斯潘8
斯潘4
对于本文的最新版本,请看sqlCreator和sqlExecutor变压器辅导的。
如何使用SQLExecutor向FME中的PostGIS数据库发出命令?
FME有一个SQLExecutor Transformer,可用于对工作区内的数据库执行查询。此变压器不支持几何图形,但是您可以使用@value()函数在查询中使用非空间属性。例如,从表中选择“@value(fme-name)”,其中“@value(fme-name)”等名称将用功能上的fme-name属性的值替换@value(fme-name)。
我们可以利用postgis和fme中的ogc-wkt几何支持在postgis中执行空间查询。
我们可以使用geometryextractor创建一个新的属性,该属性的几何图形为ogc众所周知的文本(ogc wkt)格式。这是一种简单的标准化格式,用于将几何图形表示为易于阅读的文本字符串,例如,点(0 0)。
我们可以使用带有@value fme函数的sqlexecutor将几何图形传递到postgis。沿着geometryfromtext行的某些内容(“@value(ou geometryyastext)”,srid)将基于先前提取的wkt几何体在postgis中创建几何体。
注意参数中的“srid”。这将需要替换为用于FME几何体坐标系的PostGIS空间参考ID。这可以硬编码到查询中,或者,如果在Postgis和FME中使用相同的坐标系,您可以使用从表限制1中选择srid(geom_列)来自动设置srid。这将从第一条记录返回SRID。
SQLExecutor中的查询结果作为一个FME列表返回。如果需要返回几何图形,可以在select语句中使用astext(geom_列)返回结果几何图形的ogc wkt表示。
如果查询返回几何图形,你想在FME中使用几何学,可以使用GeometryReplacer从PostGIS的WKT字符串创建一个FME几何体。只需将几何编码设置为ogc已知文本,并选择包含wkt的属性。这将用WKT替换功能具有的任何几何图形。
如果查询返回多个记录以为每个记录创建功能,则可以将ListExploder与sqlExecutor的结果一起使用。或者,如果要用查询结果替换FME功能的几何图形,可以只从列表中提取一条记录。
所附的工作区演示了在与每个FME特征设定的距离内,从所有几何图形创建新特征。搜索半径通过已发布的参数设置,并且可以在运行工作区时更改。我还将圣德怀特的几何图形从ll84重新投影到utm,使我能够使用米作为搜索半径的单位。
?2019安全亚搏在线软件公司|合法的