Ol6的WFS过滤条件
ol/format/filter对wfs服务进行多条件查询过滤。其本质也是编译成gml去进行相关的查询。下面接收Or、And 、Not 、Bbox、 Within、 IsNull 、isLike、 During 、EqualTo 、LessThan、 Contains 、IsBetWeen、 NotEqualTo、 Instresects 、GreaterThan 、LessThanOrEqualTo、 greaterTanOrEqualTo
将查询的结果高亮。请求指定的wfs服务地址,返回json文件。通过GeoJson加入到配置好样式的图层中。其中fetch的body是我们设置的过滤条件转为xml的形式。
fetch('http://ip:8080/geoserver/pipe/wfs',{
method:'POST',
body:new XMLSerializer().serializeToString(featureRequest)
}).then((response)=>{
return response.json()
}).then((json)=>{
let feature=new ol.format.GeoJSON().readFeatures(json)
this.filterSource.addFeatures(feature)
this.map.getView().fit(this.filterSource.getExtent());
})
fetch的将new XMLSerializer().serializeToString(featureRequest)。请求转换之后的数据内容。
- or 查询条件满足一个即可返回数据。
let featureRequest=new ol.format.WFS().writeGetFeature({
srsName:'EPSG:2435',//坐标系
featureNS:'http://ip:8080/workspace',// 注意这个值必须为创建工作区时的命名空间URI
featurePrefix:'workspace',//工作区的命名
featureTypes:[layername],//所要访问的图层
outputFormat:'application/json',
//or其含义类似于'||'满足下面条件的要素会被筛选出来
filter:ol.format.filter.or(
//like
//过滤属性名称(addr)包含"东沙小学"
ol.format.filter.like('addr',"东沙小学"),
//过滤属性名称(addr)包含"东沙小学
ol.format.filter.like('addr',"紫翠街")
)
})
查询结果高亮标出:
2.and针对多个条件并存的查询。
let featureRequest=new ol.format.WFS().writeGetFeature({
srsName:'EPSG:2435',//坐标系
featureNS:'http://ip:8080/workspace',// 注意这个值必须为创建工作区时的命名空间URI
featurePrefix:'workspace',//工作区的命名
featureTypes:['layername'],//所要访问的图层
outputFormat:'application/json',
//多条件共存过滤。属性字段'gid'等于459662。
//并且字段名district等于"荔湾区"
filter:ol.format.filter.and(
//equalTo:等于。与like不同,必须是相同。
ol.format.filter.equalTo('gid',459662),
ol.format.filter.equalTo('district',"荔湾区")
)
})
3.Not为不等于查询属性名不等于给定的文本。一般配合and使用
//模糊查询addr为"东沙小学",并且sort不等于"污水"、"雨水",addr不等于"紫翠街"
filter:ol.format.filter.and(
ol.format.filter.like('addr',"东沙小学"),
ol.format.filter.not(
//notEqualTo:给定的属性名称不等于给定的文本
ol.format.filter.notEqualTo('sort',"污水"),
ol.format.filter.notEqualTo('sort',"雨水"),
ol.format.filter.notEqualTo('addr', "紫翠街")
)
)
4. isNull用于判断某一字段名不为空
// 模糊查询addr为 "东沙小学"。并且project_name不为空
filter:ol.format.filter.and(
ol.format.filter.like('addr',"东沙小学"),
ol.format.filter.isNull('project_name'),
)
版权声明:
作者:Gomo
链接:https://www.develophm.com/index.php/ol6%e7%9a%84wfs%e8%bf%87%e6%bb%a4%e6%9d%a1%e4%bb%b6/1454/
来源:开发之家
文章版权归作者所有,未经允许请勿转载。
共有 0 条评论