/**
* 加载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 = '' + property + '' + literal + ''
this.filters.push(filter)
}
this.addLike = (property, literal) => {
var filter = '' + property + '' + literal + ''
this.filters.push(filter)
}
/**
* 得到filter参数值
* @returns {string|null}
*/
this.getFilterParams = () => {
var head = ''
var end = ''
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 + '' + filter + '' + 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