From 2a803059365f15f350a9c088d3a4a5c1ac234fde Mon Sep 17 00:00:00 2001 From: YANGDL <114714267@qq.com> Date: 星期二, 02 三月 2021 16:19:49 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- src/components/helpers/WfsHelper.js | 77 ++++++++++++++++++++++++++++++++++++++ 1 files changed, 77 insertions(+), 0 deletions(-) diff --git a/src/components/helpers/WfsHelper.js b/src/components/helpers/WfsHelper.js new file mode 100644 index 0000000..3208ca8 --- /dev/null +++ b/src/components/helpers/WfsHelper.js @@ -0,0 +1,77 @@ +/** + * 鍔犺浇WMS,鎷兼帴FILTER,LAYERS鍙傛暟绛� + */ +import MapConfig from '../../conf/MapConfig' +function WfsHelper () { + this.filters = [] + this.typeNames = [] + this.url = MapConfig.BLUEMAP_HOST + '/server/ogcserver/PipeLine/wfs' + this.params = { + REQUEST: 'getfeature', + OUTPUTFORMAT: 'JSON', + maxFeatures: 20000, + version: '1.0.0' + } + + this.addTypeName = (typeName) => { + this.typeNames.push(typeName) + } + + this.addEquals = (property, literal) => { + var filter = '<PropertyIsEqualTo><PropertyName>' + property + '</PropertyName><Literal>' + literal + '</Literal></PropertyIsEqualTo>' + this.filters.push(filter) + } + + this.addLike = (property, literal) => { + var filter = '<PropertyIsLike><PropertyName>' + property + '</PropertyName><Literal>' + literal + '</Literal></PropertyIsLike>' + this.filters.push(filter) + } + + /** + * 寰楀埌filter鍙傛暟鍊� + * @returns {string|null} + */ + this.getFilterParams = () => { + var head = '<Filter xmlns="http://www.opengis.net/ogc">' + var end = '</Filter>' + var filter = '' + if (this.filters.length > 0) { + for (var i = 0; i < this.filters.length; i++) { + filter += this.filters[i] + } + // 褰撴潯浠舵暟 > 1鏃讹紝闇�瑕佺敤and鏍囩鍖呰9 + if (this.filters.length > 1) { + return ('FILTER=' + head + '<And>' + filter + '</And>' + end) + } + return ('FILTER=' + head + filter + end) + } + return null + } + + this.getUrlParams = () => { + var params = '' + for (var p in this.params) { + params += (p + '=' + this.params[p] + '&') + } + // 鎷兼帴typename鍙傛暟 + params += 'typename=' + this.typeNames.join(',') + // 鎷兼帴filter鍙傛暟 + var filterParam = this.getFilterParams() + if (filterParam) { + params += '&' + filterParam + } + return encodeURI(params) + } + + this.getUrl = () => { + var url = this.url + if (url.indexOf('?') > 0) { + url += '&' + } else { + url += '?' + } + return url + this.getUrlParams() + } +} + +export default WfsHelper -- Gitblit v1.8.0