使用说明
要素数据集ECQL查询将使用ECQL语言对要素数据集(FeatureRDD)进行数据过滤,目的是从全量数据过滤读取出部分数据参与后续的运算。由于要素数据集ECQL查询是在内存中完成计算,因此,该工具的查询与数据库无关。
关于如何读取数据为要素数据集(FeatureRDD),请参见矢量数据读写工具部分。
参数说明
参数名 | 默认值 | 参数释义 | 参数类型 |
---|---|---|---|
待查询的要素数据集 | 待查询的要素数据集(FeatureRDD)。 | FeatureRDD | |
过滤条件 | ECQL 查询语句,用于过滤满足此条件的数据内容。 | String |
输出结果
要素数据集ECQL查询工具的输出结果为满足指定查询条件的数据,数据以FeatureRDD(要素数据集)形式存储在内存中。
ECQL查询语句示例
要素数据集ECQL查询工具,基本支持ECQL全部的查询谓词,包括:时间谓词、空间关系谓词、数学运算符、比较操作符、逻辑关系判断等,具体参见下面的表格,ECQL查询谓词对大小写不敏感,因此谓词是不区分字母大小写的;但是,表达式中的字段名称区分大小写。
- 逻辑关系判断
查询谓词 | 查询语句示例 |
---|---|
AND | Pop2014<10000 AND PopUrban2014 >5000 |
OR | DLMC =‘水田’ OR DLMC =‘果园’ |
NOT | NOT DLMC =‘水田’ |
- 比较操作
查询谓词 | 查询语句示例 |
---|---|
= | DLMC =‘水田’ |
<> | DLMC<>‘水田’ |
< | PRES<950 |
<= | GDP_2014<=10000 |
> | Pop_2014>10000 |
>= | PopUrban_2014 >=5000 |
- 字符串匹配
查询谓词 | 查询语句示例 |
---|---|
BETWEEN AND | WND BETWEEN 40 AND 50 |
IN | DLMC IN (‘有林地’, ‘果园’, ‘灌木林地’) |
LIKE | QSDWMC LIKE ‘四明村%’ |
- 时间谓词
查询谓词 | 查询语句示例 |
---|---|
BEFORE | RTime BEFORE 2011-07-27T18:00:00Z |
BEFORE OR DURING | RTime BEFORE OR DURING 2011-07-27T04:00:00Z/2011-07-28T22:00:00Z |
DURING | RTime DURING 2011-08-07T22:00:00Z/2011-08-08T16:00:00Z |
DURING OR AFTER | RTime DURING OR AFTER 2011-08-06T16:00:00Z/2011-08-07T22:00:00Z |
AFTER | RTime AFTER 2011-08-07T14:00:00Z |
- 空间关系函数
查询谓词 | 查询语句示例 |
---|---|
INTERSECTS | INTERSECTS(the_geom, POLYGON((103 17,103 27,119 27,119 17,103 17))) INTERSECTS(smgeometry, SRID=4326;POLYGON((103 17,103 27,119 27,119 17,103 17))) |
DISJOINT | DISJOINT(the_geom, POLYGON((103 17,103 27,119 27,119 17,103 17))) DISJOINT(geom, SRID=4326;POLYGON((103 17,103 27,119 27,119 17,103 17))) |
CONTAINS | CONTAINS(geom, POINT(12032117.4943 3729511.6419)) CONTAINS(the_geom, SRID=4326;POINT(102 30)) |
WITHIN | WITHIN(thegeom, POLYGON((103 17,103 27,119 27,119 17,103 17))) WITHIN(thegeom, SRID=4326;POLYGON((103 17,103 27,119 27,119 17,103 17))) |
TOUCHES | TOUCHES(the_geom, POLYGON((135 300,208 314,122 325, 135 300))) |
CROSSES | CROSSES(thegeom, LINESTRING(10590100.5840 4275076.8431, 12344803.5872 2804700.7155)) CROSSES(thegeom, SRID=4326;LINESTRING(103 17,103 27)) |
OVERLAPS | OVERLAPS(thegeom, POLYGON((103 17,103 27,119 27,119 17,103 17))) OVERLAPS(thegeom, SRID=4326;POLYGON((103 17,103 27,119 27,119 17,103 17))) |
BBOX | BBOX(geom,12032117.4943,2896935.9979,12924879.3294,3729511.6419) BBOX(the_geom,103 ,17 ,119 ,27,‘EPSG:4326’) |
EQUALS | EQUALS (the_geom, POLYGON((158 382,208 314,122 325, 158 382))) |
RELATE | RELATE(smgeometry,POLYGON((116.74072 39.58649,117.68555 40.04242,118.146697 39.23492,117.12524 38.5592,116.74072 39.58649)),T****) |
DWITHIN | DWITHIN(geom, POINT(10590100.5840 4275076.8431),450,kilometers) DWITHIN(the_geom, SRID=4326;POINT(102 30),450,kilometers) |
BEYOND | BEYOND(geom, POINT(10590100.5840 4275076.8431),450,kilometers) BEYOND(the_geom, SRID=4326;POINT(102 30),450,kilometers) |
备注说明:以上查询语句示例中所使用的字段“the_geom”、“smgeometry”、“geom”均为空间数据的几何字段,不同数据库对于空间数据存储的几何字段名称不同,所以要根据实际数据情况填写几何字段的名称。