派生自 wuyushui/SewerAndRainNetwork

徐旺旺
2021-03-02 d1a750f93f111a6c1ef01a6ce7531d6738bb5b30
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
/**
 * 加载WMS,拼接FILTER,LAYERS参数等
 */
function WfsHelper () {
  this.filters = []
  this.typeNames = []
  this.url = 'http://xearth.cn:6289/server/ogcserver/PipeLine/wfs'
  this.params = {
    REQUEST: 'getfeature',
    OUTPUTFORMAT: 'JSON',
    maxFeatures: 20000,
    version: '1.0.0'
  }
 
  this.addTypeName = (typeName) => {
    this.typeNames.push(typeName)
  }
 
  this.appendEquals = (property, literal) => {
    var filter = '<PropertyIsEqualTo><PropertyName>' + property + '</PropertyName><Literal>' + literal + '</Literal></PropertyIsEqualTo>'
    this.filters.push(filter)
  }
 
  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]
      }
      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