Class: OGCFilterBuilder

OGCFilterBuilder

OGC Filter 统一构建器

提供统一的入口,整合 SQL 解析、空间查询、GML 构建

new OGCFilterBuilder(options)

service/igs/ogc/support/OGCFilterBuilder.js, line 71
Name Type Description
options FilterBuilderOptions 可选

配置选项

Example
import { OGCFilterBuilder } from './support/OGCFilterBuilder';

const builder = new OGCFilterBuilder({ version: '1.1.0', srsName: 'EPSG:4326' });

// BBOX 查询
const bboxFilter = builder.bbox({ minX: 114, minY: 30, maxX: 115, maxY: 31 });

// SQL 属性查询
const sqlFilter = builder.sql("name = 'Beijing' AND population > 1000000");

// 空间查询
const spatialFilter = builder.spatial({
  operator: 'Intersects',
  geometry: mapgisPoint
});

Members

_curveboolean

_filterPrefixstring

_geometryColumnstring

_gmlBuilderOGCGMLBuilder

_multiCurveboolean

_multiSurfaceboolean

_spatialBuilderOGCSpatialFilterBuilder

_srsNamestring

_surfaceboolean

_versionstring

Methods

after(time, propertyName){string}

service/igs/ogc/support/OGCFilterBuilder.js, line 763

构建 After 查询 (某时间之后)

Name Type Description
time string

时间点

propertyName string 可选

属性名

Returns:
Type Description
string Filter XML 字符串

and(filter1, filter2){string|null}

service/igs/ogc/support/OGCFilterBuilder.js, line 519

添加 AND 条件

Name Type Description
filter1 string

Filter 1

filter2 string

Filter 2

Returns:
Type Description
string | null

bbox(bbox, propertyName){string}

service/igs/ogc/support/OGCFilterBuilder.js, line 352

构建 BBOX 查询

Name Type Description
bbox Object

边界框 {minX, minY, maxX, maxY} 或几何对象

propertyName string 可选

属性名

Returns:
Type Description
string Filter XML 字符串

before(time, propertyName){string}

service/igs/ogc/support/OGCFilterBuilder.js, line 775

构建 Before 查询 (某时间之前)

Name Type Description
time string

时间点

propertyName string 可选

属性名

Returns:
Type Description
string Filter XML 字符串

beyond(geometry, distance, propertyName, distanceUnit){string}

service/igs/ogc/support/OGCFilterBuilder.js, line 451

构建 Beyond 查询(距离范围外)- WFS 2.0

Name Type Description
geometry Object

几何对象

distance number

距离

propertyName string 可选

属性名

distanceUnit string 可选

距离单位

Returns:
Type Description
string

buildSpatialFilter(options){string}

service/igs/ogc/support/OGCFilterBuilder.js, line 866

根据空间关系构建空间过滤 Filter XML

支持 SpatialRelation 中的所有空间关系类型,并将 EnvelopeIntersects 自动映射为 BBOX 操作符(OGC Filter 标准中 EnvelopeIntersects 用 BBOX 表示)。

Name Type Description
options Object

空间过滤参数

Name Type Description
spatialRel SpatialRelation

空间关系类型(如 Intersects、Within、Contains 等)

geometry Object

几何对象(MapGIS 通用几何格式)

geometryColumnName string 可选

属性/几何列名,默认使用构造时配置的 geometryColumn

distance number 可选

距离值(仅 DWithin / Beyond 操作符需要)

distanceUnit string 可选

距离单位(如 'meters'、'kilometers',仅 DWithin / Beyond 需要)

Returns:
Type Description
string Filter XML 字符串

contains(geometry, propertyName){string}

service/igs/ogc/support/OGCFilterBuilder.js, line 413

构建 Contains 查询

Name Type Description
geometry Object

几何对象

propertyName string 可选

属性名

Returns:
Type Description
string

dWithin(geometry, distance, propertyName, distanceUnit){string}

service/igs/ogc/support/OGCFilterBuilder.js, line 431

构建 DWithin 查询(距离范围内)- WFS 2.0

Name Type Description
geometry Object

几何对象

distance number

距离

propertyName string 可选

属性名

distanceUnit string 可选

距离单位

Returns:
Type Description
string

during(begin, end, propertyName){string}

service/igs/ogc/support/OGCFilterBuilder.js, line 751

构建 During 查询 (时间段内)

Name Type Description
begin string

开始时间

end string

结束时间

propertyName string 可选

属性名

Returns:
Type Description
string Filter XML 字符串

func(name, args){string}

service/igs/ogc/support/OGCFilterBuilder.js, line 808

构建函数调用表达式

OGC Filter 2.0 支持的函数:

  • 几何函数: area(), length(), distance(), centroid()
  • 字符串函数: strToLowerCase(), strToUpperCase(), strTrim()
  • 数学函数: abs(), round(), floor(), ceil(), sqrt(), pow()
Name Type Description
name string

函数名

args string | number repeatable

函数参数

Returns:
Type Description
string Function 表达式 XML

getBuilders(){Object}

service/igs/ogc/support/OGCFilterBuilder.js, line 652

获取子构建器实例

Returns:
Type Description
Object

getCurve(){boolean}

service/igs/ogc/support/OGCFilterBuilder.js, line 227

获取是否输出 Curve

Returns:
Type Description
boolean

getError(sql){string|null}

service/igs/ogc/support/OGCFilterBuilder.js, line 336

获取 SQL 解析错误

Name Type Description
sql string

SQL WHERE 条件

Returns:
Type Description
string | null

getGeometryColumn(){string}

service/igs/ogc/support/OGCFilterBuilder.js, line 205

获取几何列名

Returns:
Type Description
string

getMultiCurve(){boolean}

service/igs/ogc/support/OGCFilterBuilder.js, line 267

获取是否输出 MultiCurve

Returns:
Type Description
boolean

getMultiSurface(){boolean}

service/igs/ogc/support/OGCFilterBuilder.js, line 287

获取是否输出 MultiSurface

Returns:
Type Description
boolean

getNamespaceDeclaration(){string}

service/igs/ogc/support/OGCFilterBuilder.js, line 642

创建命名空间声明

Returns:
Type Description
string

getSrsName(){string}

service/igs/ogc/support/OGCFilterBuilder.js, line 185

获取坐标系

Returns:
Type Description
string

getSurface(){boolean}

service/igs/ogc/support/OGCFilterBuilder.js, line 247

获取是否输出 Surface

Returns:
Type Description
boolean

getVersion(){string}

service/igs/ogc/support/OGCFilterBuilder.js, line 165

获取版本

Returns:
Type Description
string

gmlBBox(geometry, version){string}

service/igs/ogc/support/OGCFilterBuilder.js, line 503

构建几何 BBOX

Name Type Description
geometry Object

几何对象

version string 可选

WFS 版本

Returns:
Type Description
string

intersects(geometry, propertyName){string}

service/igs/ogc/support/OGCFilterBuilder.js, line 381

构建 Intersects 查询

Name Type Description
geometry Object

几何对象

propertyName string 可选

属性名

Returns:
Type Description
string

not(filter){string|null}

service/igs/ogc/support/OGCFilterBuilder.js, line 542

取反 Filter

Name Type Description
filter string

Filter

Returns:
Type Description
string | null

or(filter1, filter2){string|null}

service/igs/ogc/support/OGCFilterBuilder.js, line 531

添加 OR 条件

Name Type Description
filter1 string

Filter 1

filter2 string

Filter 2

Returns:
Type Description
string | null

relate(geometry, pattern, propertyName){string}

service/igs/ogc/support/OGCFilterBuilder.js, line 470

构建 Relate 查询(DE-9IM 矩阵匹配)

Name Type Description
geometry Object

几何对象

pattern string

DE-9IM 模式

propertyName string 可选

属性名

Returns:
Type Description
string

setCurve(curve){this}

service/igs/ogc/support/OGCFilterBuilder.js, line 236

设置是否输出 Curve 而非 LineString

Name Type Description
curve boolean
Returns:
Type Description
this

setGeometryColumn(column){this}

service/igs/ogc/support/OGCFilterBuilder.js, line 214

设置几何列名

Name Type Description
column string
Returns:
Type Description
this

setMultiCurve(multiCurve){this}

service/igs/ogc/support/OGCFilterBuilder.js, line 276

设置是否输出 MultiCurve 而非 MultiLineString

Name Type Description
multiCurve boolean
Returns:
Type Description
this

setMultiSurface(multiSurface){this}

service/igs/ogc/support/OGCFilterBuilder.js, line 296

设置是否输出 MultiSurface 而非 MultiPolygon

Name Type Description
multiSurface boolean
Returns:
Type Description
this

setSrsName(srsName){this}

service/igs/ogc/support/OGCFilterBuilder.js, line 194

设置坐标系

Name Type Description
srsName string
Returns:
Type Description
this

setSurface(surface){this}

service/igs/ogc/support/OGCFilterBuilder.js, line 256

设置是否输出 Surface 而非 Polygon

Name Type Description
surface boolean
Returns:
Type Description
this

setVersion(version){this}

service/igs/ogc/support/OGCFilterBuilder.js, line 174

设置版本

Name Type Description
version string
Returns:
Type Description
this

spatial(params){string}

service/igs/ogc/support/OGCFilterBuilder.js, line 366

构建空间查询

Name Type Description
params Object

参数

Name Type Description
operator string

操作符

geometry Object

几何对象

propertyName string 可选

属性名

Returns:
Type Description
string Filter XML 字符串

sql(sql){string}

service/igs/ogc/support/OGCFilterBuilder.js, line 314

将 SQL WHERE 条件转换为 Filter XML

Name Type Description
sql string

SQL WHERE 条件

Returns:
Type Description
string Filter XML 字符串

tEquals(time, propertyName){string}

service/igs/ogc/support/OGCFilterBuilder.js, line 787

构建 TEquals 查询 (时间相等)

Name Type Description
time string

时间点

propertyName string 可选

属性名

Returns:
Type Description
string Filter XML 字符串

temporal(operator, beginOrTime, end, propertyName){string}

service/igs/ogc/support/OGCFilterBuilder.js, line 680

构建时间过滤

OGC Filter Encoding 标准时间操作符:

  • During: 属性时间在指定时间段内
  • After: 属性时间在指定时间之后
  • Before: 属性时间在指定时间之前
  • TEquals: 属性时间等于指定时间
Name Type Description
operator string

时间操作符 (During, After, Before, TEquals)

beginOrTime string

开始时间或时间点 (ISO 8601 格式)

end string 可选

结束时间 (用于 During 操作符)

propertyName string 可选

属性名,默认使用默认几何列

Returns:
Type Description
string Filter XML 字符串

toGML(geometry, version){string}

service/igs/ogc/support/OGCFilterBuilder.js, line 491

将几何对象转换为 GML XML

Name Type Description
geometry Object

几何对象

version string 可选

WFS 版本

Returns:
Type Description
string

validate(sql){boolean}

service/igs/ogc/support/OGCFilterBuilder.js, line 325

验证 SQL 语法

Name Type Description
sql string

SQL WHERE 条件

Returns:
Type Description
boolean

within(geometry, propertyName){string}

service/igs/ogc/support/OGCFilterBuilder.js, line 397

构建 Within 查询

Name Type Description
geometry Object

几何对象

propertyName string 可选

属性名

Returns:
Type Description
string

OGCFilterBuilder.bbox(bbox, version, srsName, propertyName){string}

service/igs/ogc/support/OGCFilterBuilder.js, line 915

构建 BBOX 查询

Name Type Default Description
bbox Object

边界框

version string '1.1.0' 可选

WFS 版本

srsName string 可选

坐标系

propertyName string 可选

属性名

Returns:
Type Description
string

OGCFilterBuilder.contains(geometry, version, srsName, propertyName){string}

service/igs/ogc/support/OGCFilterBuilder.js, line 957

构建 Contains 查询

Name Type Default Description
geometry Object

几何对象

version string '1.1.0' 可选

WFS 版本

srsName string 可选

坐标系

propertyName string 可选

属性名

Returns:
Type Description
string

OGCFilterBuilder.intersects(geometry, version, srsName, propertyName){string}

service/igs/ogc/support/OGCFilterBuilder.js, line 929

构建 Intersects 查询

Name Type Default Description
geometry Object

几何对象

version string '1.1.0' 可选

WFS 版本

srsName string 可选

坐标系

propertyName string 可选

属性名

Returns:
Type Description
string

OGCFilterBuilder.sql(sql, version){string}

service/igs/ogc/support/OGCFilterBuilder.js, line 901

将 SQL WHERE 条件转换为 Filter XML

Name Type Default Description
sql string

SQL WHERE 条件

version string '1.1.0' 可选

WFS 版本

Returns:
Type Description
string

OGCFilterBuilder.toGML(geometry, version, srsName){string}

service/igs/ogc/support/OGCFilterBuilder.js, line 970

将几何对象转换为 GML XML

Name Type Default Description
geometry Object

几何对象

version string '1.1.0' 可选

WFS 版本

srsName string 可选

坐标系

Returns:
Type Description
string

OGCFilterBuilder.validate(sql){boolean}

service/igs/ogc/support/OGCFilterBuilder.js, line 982

验证 SQL 语法

Name Type Description
sql string

SQL WHERE 条件

Returns:
Type Description
boolean

OGCFilterBuilder.within(geometry, version, srsName, propertyName){string}

service/igs/ogc/support/OGCFilterBuilder.js, line 943

构建 Within 查询

Name Type Default Description
geometry Object

几何对象

version string '1.1.0' 可选

WFS 版本

srsName string 可选

坐标系

propertyName string 可选

属性名

Returns:
Type Description
string