OGC filter详细示例

1 篇文章 0 订阅

前言

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

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>)
  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值