Openlayers3 请求Geoserver带Filter的WFS查询

官方例子在这:http://openlayers.org/en/latest/examples/vector-wfs-getfeature.html?q=wfs

openlayers3 将基于OGC规范的 WFS查询封装了一下,所以不用去写 XML规范的请求,或者在url上拼接cql_filter= ,还要处理字符编码的问题。

                //TODO WFS 查询要素TEST

                var vectorSource = new ol.source.Vector();
                var vector = new ol.layer.Vector({
                    source: vectorSource,
                    style: new ol.style.Style({
                        stroke: new ol.style.Stroke({
                            color: 'rgba(0, 0, 255, 1.0)',
                            width: 2
                        })
                    })
                });
                map.addLayer(vector);

                // generate a GetFeature request
                var featureRequest = new ol.format.WFS().writeGetFeature({
                    srsName: 'EPSG:3857',
                    featureNS: 'http://www.ztbr.com',    //命名空间
                    featurePrefix: 'zbtr',               //工作区域
                    featureTypes: ['yanqing18jd'],       //图层名
                    outputFormat: 'application/json',
                    filter:
                        ol.format.filter.equalTo('街道', '百泉街道')    //todo 条件查询过滤
                });

                // then post the request and add the received features to a layer
                fetch('http://localhost:8082/geoserver/wfs', {
                    method: 'POST',
                    body: new XMLSerializer().serializeToString(featureRequest)
                }).then(function(response) {
                    return response.json();
                }).then(function(json) {
                    var features = new ol.format.GeoJSON().readFeatures(json);
                    vectorSource.addFeatures(features);
                    map.getView().fit(vectorSource.getExtent());
                });
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

带着天使反上帝 - Kaybee

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值