span8
span4
FeatureReader、SpatialRelator和SpatialFilter转换器是在workbench中对数据库执行广义空间查询的好工具。它们允许您快速地选择查询参数,而不必担心特定于数据库的SQL的语法。但是,如果您正在对非常大的数据集执行空间查询,并且您不担心编写一点点SQL,那么您可能会从使用SQLExecutor转换器中的本机SQL语句实现空间查询的性能收益中受益。
注意:虽然这个示例主要关注PostGIS格式,但它也适用于其他数据库格式。
spatialqueries-sqlexecutor.fmwt
提取一段邻域多边形数据,成为空间查询的边界框。包围框的几何图形被提取为OGC众所周知的文本,并创建一个SQL语句。此空间SQL查询应用于存储在PostGIS数据库中的邮政地址数据,并使用数据检查器查看结果。
完整的原生空间查询工作空间
下载spatialqueries-sqlexecutor。fmwt是完整的工作空间。如果你想自己创建工作空间,请下载温哥华社区。并按照下面的步骤创建它。
1.源数据
选择读卡器>添加阅读器和输入KML作为格式。浏览并选择VancouverNeighborhoods.kml数据集。
2.Reproject
源数据必须是相同的坐标系作为数据库数据英寸添加CsmapReprojector,离开源<从功能阅读>坐标系统并设置目标坐标系来UTM83-10。UTM83-10在PostGIS的数据库中的数据的坐标系统相匹配。
3.提取包围盒
提取边界框由ST_Within功能使用。在邻域的这个例子中一个,锦绣,用作边界框。
4.几何编码
重要的是,几何形状被存储在空间查询数据库友好的格式。这意味着几何需要的方式,其是适合于数据库格式被使用来构造。例如,对于一个PostGIS的数据库,OGC熟知文本(WKT)是合适的几何空间查询。在下面的示例工作区的图像,所述几何形状已经被提取为与GeometryExtractor变压器OGC熟知文本(WKT)格式被传递给SQLExecutor之前。
请添加GeometryExtractor,设置几何图形编码到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中选择*。其中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空间查询的结果
变压器 | 中央处理器 | 峰值内存 |
SQLExecutor | 7.9秒 | 14.0 MB |
限幅器 | 11.2秒 | 17.3 MB |
FeatureReader | 8.0秒 | 13.3 MB |
SpatialFilter | 11.6秒 | 15.9 MB |
©2020安全亚搏在线软件公司|法律