ol之filter过滤获取feature
ol之filter过滤获取feature
使用场景:
通过geoserver的省界服务查询对应省的要素,定位到对应位置
代码: sfCode 为省份编码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | queryLocation (sfCode) { let featureRequest = new ol.format.WFS().writeGetFeature({ ssName: 'EPSG:3857' , featureNS: 'gistone' , // 命名空间 URI featurePrefix: 'njs' , // 工作区名称 featureTypes: [ 'sj' ], // 查询图层,可以同一个工作区下多个图层,逗号隔开 outputFormat: 'application/json' , filter: ol.format.filter.like( 'code' , sfCode) }) fetch( 'http://localhost:8080/geoserver/njs/wfs' , { method: 'POST' , body: new XMLSerializer().serializeToString(featureRequest) }).then((res) => { return res.json() }).then(res => { if (res.totalFeatures !== 0) { let vectorSource = new ol.source.Vector() let features = new ol.format.GeoJSON().readFeatures(res) vectorSource.addFeatures(features) let extent = ol.proj.transformExtent(vectorSource.getExtent(), 'EPSG:4326' , 'EPSG:3857' ) this .view.fit(extent) } }) }, |
注意事项:
1.在查询字段设置错误时,可能会报错: json格式不正确 <
2.地图服务中字段名和查询字段中的数据不能为中文。
3.‘http://localhost:8080/geoserver/njs/wfs’中njs为工作空间名称
钻研不易,转载请注明出处、、、、、、
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步