| | |
| | | /** |
| | | * 加载WMS,拼接FILTER,LAYERS参数等 |
| | | */ |
| | | import { WFS_URL } from '../../conf/Constants' |
| | | function WfsHelper () { |
| | | this.filters = [] |
| | | this.typeNames = [] |
| | | this.url = 'http://xearth.cn:6289/server/ogcserver/PipeLine/wfs' |
| | | this.url = WFS_URL |
| | | this.page = 1 |
| | | this.pageSize = 10 |
| | | this.params = { |
| | | REQUEST: 'getfeature', |
| | | OUTPUTFORMAT: 'JSON', |
| | | maxFeatures: 20000, |
| | | OUTPUTFORMAT: 'application/json', |
| | | maxFeatures: 10, |
| | | version: '1.0.0' |
| | | } |
| | | |
| | | this.setTypeName = (typeName) => { |
| | | this.typeNames = typeName |
| | | } |
| | | |
| | | this.clearFilter = () => { |
| | | this.filters = [] |
| | | } |
| | | |
| | | this.addTypeName = (typeName) => { |
| | | this.typeNames.push(typeName) |
| | | } |
| | | |
| | | this.appendEquals = (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) |
| | | // } |
| | | var filter = property + ' like \'%' + literal + '%\'' |
| | | this.filters.push(filter) |
| | | } |
| | | |
| | | /** |
| | | * 得到filter参数值 |
| | | * @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) { |
| | | 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) |
| | | } */ |
| | | 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 = () => { |
| | |
| | | if (filterParam) { |
| | | params += '&' + filterParam |
| | | } |
| | | return encodeURI(params) |
| | | // return encodeURI(params) |
| | | return params |
| | | } |
| | | |
| | | this.getUrl = () => { |
| | |
| | | } |
| | | return url + this.getUrlParams() |
| | | } |
| | | |
| | | this.setPage = (page) => { |
| | | const startIndex = page * this.pageSize |
| | | this.params.startIndex = startIndex |
| | | this.page = page |
| | | } |
| | | } |
| | | |
| | | export default WfsHelper |