New file |
| | |
| | | /** |
| | | * 加载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标签包裹 |
| | | 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 |