/**
|
* wfs 多条件属性查询And Or 类型
|
* @params params
|
* params={
|
* Url:'',
|
* TypeName:'',
|
* Or:[{'PropertyName':'','PropertyValue',''},{}],
|
* And:[{'PropertyName':'PropertyValue'},{}]
|
* }
|
* @returns {string}
|
*/
|
function getPropertyNameQueryAndOrWFSUrl (params) {
|
var url = ''
|
if ((params.Or === undefined || params.Or.length === 0) && (params.And === undefined || params.And.length === 0) && (params.Not === undefined || params.Not.length === 0)) {
|
url = params.Url + '?VERSION=1.0.0&SERVICE=WFS&REQUEST=getfeature&TYPENAME=' + params.TypeName + '&outputformat=json&maxfeature=20000'
|
} else {
|
url = params.Url + '?VERSION=1.0.0&SERVICE=WFS&REQUEST=getfeature&TYPENAME=' + params.TypeName + '&outputformat=json&maxfeature=20000&Filter=<Filter>'
|
}
|
if (params.Or != null && params.Or.length !== 0) {
|
if (params.Or.length === 1) {
|
url += '<PropertyIsEqualTo><PropertyName>' + params.Or[0].PropertyName + '</PropertyName><Literal>' + params.Or[0].PropertyValue + '</Literal></PropertyIsEqualTo>'
|
} else {
|
url += '<OR>'
|
for (let i = 0; i < params.Or.length; i++) {
|
url += '<PropertyIsEqualTo><PropertyName>' + params.Or[i].PropertyName + '</PropertyName><Literal>' + params.Or[i].PropertyValue + '</Literal></PropertyIsEqualTo>'
|
}
|
url += '</OR>'
|
}
|
}
|
if (params.And != null && params.And.length !== 0) {
|
if (params.And.length === 1) {
|
url += '<PropertyIsEqualTo><PropertyName>' + params.And[0].PropertyName + '</PropertyName><Literal>' + params.And[0].PropertyValue + '</Literal></PropertyIsEqualTo>'
|
} else {
|
url += '<AND>'
|
for (let j = 0; j < params.And.length; j++) {
|
url += '<PropertyIsEqualTo><PropertyName>' + params.And[j].PropertyName + '</PropertyName><Literal>' + params.And[j].PropertyValue + '</Literal></PropertyIsEqualTo>'
|
}
|
url += '</AND>'
|
}
|
}
|
if (params.Not != null && params.Not.length !== 0) {
|
url += '<NOT>'
|
for (let k = 0; k < params.Not.length; k++) {
|
url += '<PropertyIsEqualTo><PropertyName>' + params.Not[k].PropertyName + '</PropertyName><Literal>' + params.Not[k].PropertyValue + '</Literal></PropertyIsEqualTo>'
|
}
|
url += '</NOT>'
|
}
|
if ((params.Or !== undefined && params.Or.length !== 0) || (params.And !== undefined && params.And.length !== 0) || (params.Not !== undefined && params.Not.length !== 0)) {
|
url += '</Filter>'
|
}
|
return url
|
}
|
|
export default {
|
getPropertyNameQueryAndOrWFSUrl
|
}
|