OGC filter详细示例

来源:互联网 发布:益盟高点画线源码 编辑:程序博客网 时间:2024/05/29 14:57

前言

本文中的代码,为了方便阅读,做了换行对齐.建议使用时去掉换行.

filter关键字

1.Equal

关键字:PropertyIsEqualTo

/* 第一个%s填写字段名称,第二个%s填写字段值 */<PropertyIsEqualTo>    <PropertyName>%s</PropertyName>    <Literal>%s</Literal></PropertyIsEqualTo>

2.NotEqual

关键字:PropertyIsNotEqualTo

/* 第一个%s填写字段名称,第二个%s填写字段值 */<PropertyIsNotEqualTo>    <PropertyName>%s</PropertyName>    <Literal>%s</Literal></PropertyIsNotEqualTo> 

3.Less

关键字:PropertyIsLessThan

/* 第一个%s填写字段名称,第二个%s填写字段值 */<PropertyIsLessThan>    <PropertyName>%s</PropertyName>    <Literal>%s</Literal></PropertyIsLessThan> 

4.Greater

关键字:PropertyIsGreaterThan

/* 第一个%s填写字段名称,第二个%s填写字段值 */<PropertyIsGreaterThan>    <PropertyName>%s</PropertyName>    <Literal>%s</Literal></PropertyIsGreaterThan> 

5.LessOrEqual

关键字:PropertyIsGreaterThan

/* 第一个%s填写字段名称,第二个%s填写字段值 */<PropertyIsLessThanOrEqualTo>    <PropertyName>%s</PropertyName>    <Literal>%s</Literal></PropertyIsLessThanOrEqualTo> 

6.GreaterOrEqual

关键字:PropertyIsGreaterThanOrEqualTo

/* 第一个%s填写字段名称,第二个%s填写字段值 */<PropertyIsGreaterThanOrEqualTo>    <PropertyName>%s</PropertyName>    <Literal>%s</Literal></PropertyIsGreaterThanOrEqualTo> 

7.Like

关键字:PropertyIsLike

/* 第一个%s填写字段名称,第二个%s填写字段值 */<PropertyIsLike wildCard="*" singleChar="?" escapeChar="\">    <PropertyName>%s</PropertyName>    <Literal>%s</Literal></PropertyIsLike> 

示例:

/* 查询SWS_CD的值为以42开头的数据 */<PropertyIsLike wildCard="*" singleChar="?" escapeChar="\">    <PropertyName>SWS_CD</PropertyName>    <Literal>42*</Literal></PropertyIsLike>

8.IsNull

关键字:PropertyIsNull

/* 第一个%s填写字段名称 */<PropertyIsNull>    <PropertyName>%s</PropertyName></PropertyIsNull>

9.Between

关键字:PropertyIsBetween

/* 第一个%s填写字段名称,第二个%s填写字段值下限,第三个%s填写字段值上限 */<PropertyIsBetween>    <PropertyName>%s</PropertyName>    <LowerBoundary>%s</LowerBoundary>    <UpperBoundary>%s</UpperBoundary></PropertyIsBetween>

示例:

/* 查询SWS_CD的值介于420000000000与420000000009的数据 */<ogc:PropertyIsBetween>    <ogc:PropertyName>SWS_CD</ogc:PropertyName>    <ogc:LowerBoundary>        <ogc:Literal>420000000000</ogc:Literal>    </ogc:LowerBoundary>    <ogc:UpperBoundary>        <ogc:Literal>420000000009</ogc:Literal>    </ogc:UpperBoundary></ogc:PropertyIsBetween>

多个查询条件组合在一起

使用AND进行连接。

例如,大于等于且小于:

<And>    <PropertyIsGreaterThanOrEqualTo>        <PropertyName>%s</PropertyName>        <Literal>%s</Literal>    </PropertyIsGreaterThanOrEqualTo>    <PropertyIsLessThan>        <PropertyName>%s</PropertyName>        <Literal>%s</Literal>    </PropertyIsLessThan> </And> 

完整的WFS+Filter示例

http://xxxx/xxxx/wfs100/utf-8?VERSION=1.0.0&SERVICE=WFS&REQUEST=GetFeature&TYPENAME=RSWB:RSWB&Filter=(<Filter><AND>    <ogc:PropertyIsLike xmlns:ogc="http://www.opengis.net/ogc" wildCard="*" singleChar="?" escapeChar="\">        <ogc:PropertyName>ID</ogc:PropertyName>        <ogc:Literal>4201*</ogc:Literal>    </ogc:PropertyIsLike>    <ogc:PropertyIsEqualTo xmlns:ogc="http://www.opengis.net/ogc">        <ogc:PropertyName>GRADE</ogc:PropertyName>        <ogc:Literal>小二</ogc:Literal>    </ogc:PropertyIsEqualTo></AND><AND>    <ogc:PropertyIsLike xmlns:ogc="http://www.opengis.net/ogc" wildCard="*" singleChar="?" escapeChar="\">        <ogc:PropertyName>ID</ogc:PropertyName>        <ogc:Literal>4202*</ogc:Literal>    </ogc:PropertyIsLike>    <ogc:PropertyIsEqualTo xmlns:ogc="http://www.opengis.net/ogc">        <ogc:PropertyName>GRADE</ogc:PropertyName>        <ogc:Literal>小二</ogc:Literal>    </ogc:PropertyIsEqualTo></AND></Filter>)
0 0
原创粉丝点击