span8
span4
FeatureReader、SpatialRelator和SpatialFilter转换器是在workbench中对数据库执行广义空间查询的好工具。它们允许您快速地选择查询参数,而不必担心特定于数据库的SQL的语法。但是,如果您正在对非常大的数据集执行空间查询,并且您不担心编写一点点SQL,那么您可能会从使用SQLExecutor转换器中的本机SQL语句实现空间查询的性能收益中受益。
注意:虽然这个示例主要关注PostGIS格式,但它也适用于其他数据库格式。
spatialqueries-sqlexecutor.fmwt
提取一段邻域多边形数据,成为空间查询的边界框。包围框的几何图形被提取为OGC众所周知的文本,并创建一个SQL语句。此空间SQL查询应用于存储在PostGIS数据库中的邮政地址数据,并使用数据检查器查看结果。
完成本机空间查询工作区
下载spatialqueries-sqlexecutor。fmwt是完整的工作空间。如果你想自己创建工作空间,请下载温哥华社区。并按照下面的步骤创建它。
1.源数据
选择Reader >添加Reader并输入KML作为格式。浏览和选择温哥华的社区。kml数据集。
2.Reproject
源数据必须在与数据库数据相同的坐标系中。添加一个csmapre幻灯机,保持源坐标系为
3.提取边界框
提取一个边界框供ST_Within函数使用。在本例中,其中一个邻居Fairview被用作边界框。
4.几何编码
重要的是,几何图形要以数据库友好的格式存储,以便用于空间查询。这意味着几何图形需要以一种与所使用的数据库格式相适应的方式来组织。例如,对于PostGIS数据库,OGC众所周知的文本(WKT)适合用于几何空间查询。在下面的示例工作区图像中,几何图形在传递到SQLExecutor之前,已经用几何图形提取器转换为OGC众所周知的文本(WKT)格式。
请添加几何提取器,将几何编码设置为OGC著名的文本及OGC版本(只适用于WKT/WKB)至1.2。这将把几何图形编码到适合数据库的结构中。
设置几何编码和OGC版本(仅限WKT/WKB)
5.添加一个SQL执行器转换器
在workbench中,需要将希望在空间查询中使用的基本特性连接到SQLExecutor transformer的输入端口。请将GeometryExtractor输出端口连接到SQLExecutor的输入端口。
在SQLExecutor transformer的parameters对话框中,用您希望查询的数据库的格式和连接细节填写“Reader”部分参数。
请输入以下PostGIS连接细节:
6.编写一个原生SQL语句
各种数据库在所需的空间查询语法上略有不同。最好的入门方法是阅读您正在使用的空间数据库提供的文档。
在SQLExecutor中,在“Parameters”部分下,单击旁边的3个点SQL语句参数,这将打开一个文本编辑器,允许您编写SQL语句。请输入以下SQL作为SQL语句。这条SQL语句根据工作台中创建的边界框的几何形状从PostGIS数据库查询特性:
从fmedata2015中选择*。"PostalAddress" as ap WHERE ST_Within(ap.geom,ST_GeomFromText('@Value(_geometry)',26910))=TRUE
查询返回“PostalAddress”表的行,其中ST_Within函数评估为true。
ST_Within函数有两个参数:
(1)第一个是数据库表中候选特性的几何列(ap.geom)的名称
(2)第二个是ST_GeomFromText函数生成的基本几何图形,它本身有两个参数:输入边界框特性的WKT几何图形属性的值和一个空间引用ID (SRID)。
请在数据检查器中检查输出。当查询的结果连同边界框一起发送到检查器时,我们可以看到SQLExecutor只返回框内的点特性。
以Fairview邻居为背景的SQLExecutor空间查询的结果
变压器 | CPU | 峰值内存 |
SQLExecutor | 7.9秒 | 14.0 MB |
限幅器 | 11.2秒 | 17.3 MB |
FeatureReader | 8.0秒 | 13.3 MB |
SpatialFilter | 11.6秒 | 15.9 MB |
©2019安全亚搏在线软件公司法律