From cb85033879c74f34925a303402c1ad3e4a8646f2 Mon Sep 17 00:00:00 2001 From: 徐旺旺 <11530253@qq.com> Date: 星期一, 10 五月 2021 17:03:54 +0800 Subject: [PATCH] 搜索更换为geoserver wfs,图层顺序,弹窗定位等 --- src/components/helpers/WfsHelper.js | 39 +++++++++++++++++++++++++++------------ 1 files changed, 27 insertions(+), 12 deletions(-) diff --git a/src/components/helpers/WfsHelper.js b/src/components/helpers/WfsHelper.js index 20093e6..9f9b781 100644 --- a/src/components/helpers/WfsHelper.js +++ b/src/components/helpers/WfsHelper.js @@ -1,14 +1,14 @@ /** * 鍔犺浇WMS,鎷兼帴FILTER,LAYERS鍙傛暟绛� */ -import { PIPELINE_WFS } from '../../conf/Constants' +import { WFS_URL } from '../../conf/Constants' function WfsHelper () { this.filters = [] this.typeNames = [] - this.url = PIPELINE_WFS + this.url = WFS_URL this.params = { REQUEST: 'getfeature', - OUTPUTFORMAT: 'JSON', + OUTPUTFORMAT: 'application/json', maxFeatures: 20000, version: '1.0.0' } @@ -17,16 +17,19 @@ this.typeNames.push(typeName) } - this.addEquals = (property, literal) => { - var filter = '<PropertyIsEqualTo><PropertyName>' + property + '</PropertyName><Literal>' + literal + '</Literal></PropertyIsEqualTo>' + this.addEquals = (property, equals) => { + // var filter = '<PropertyIsEqualTo><PropertyName>' + property + '</PropertyName><Literal>' + literal + '</Literal></PropertyIsEqualTo>' + var filter = property + '=' + equals this.filters.push(filter) } this.addLike = (property, literal) => { - if (property && literal) { - var filter = '<PropertyIsLike><PropertyName>' + property + '</PropertyName><Literal>*' + literal + '*</Literal></PropertyIsLike>' - this.filters.push(filter) - } + // if (property && literal) { + // var filter = '<PropertyIsLike><PropertyName>' + property + '</PropertyName><Literal>*' + literal + '*</Literal></PropertyIsLike>' + // this.filters.push(filter) + // } + var filter = property + ' like \'%' + literal + '%\'' + this.filters.push(filter) } /** @@ -34,7 +37,7 @@ * @returns {string|null} */ this.getFilterParams = () => { - var head = '<Filter xmlns="http://www.opengis.net/ogc">' + /* var head = '<Filter xmlns="http://www.opengis.net/ogc">' var end = '</Filter>' var filter = '' if (this.filters.length > 0) { @@ -46,8 +49,19 @@ return ('FILTER=' + head + '<And>' + filter + '</And>' + end) } return ('FILTER=' + head + filter + end) + } */ + var filter = '' + if (this.filters.length > 0) { + filter = 'CQL_FILTER=' + for (var i = 0; i < this.filters.length; i++) { + filter += this.filters[i] + if (i !== this.filters.length - 1) { + filter += ' AND ' + } + } + return filter } - return null + return filter } this.getUrlParams = () => { @@ -62,7 +76,8 @@ if (filterParam) { params += '&' + filterParam } - return encodeURI(params) + // return encodeURI(params) + return params } this.getUrl = () => { -- Gitblit v1.8.0