派生自 wuyushui/SewerAndRainNetwork

陈泽平
2021-05-29 18612eb1726e3f0972226201fdad01d6e618cbca
企业应急-事件上报-管段定位优化
1个文件已修改
137 ■■■■ 已修改文件
src/components/base-page/enterprise-emergency/events-reported/ReportLocationSection.vue 137 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/base-page/enterprise-emergency/events-reported/ReportLocationSection.vue
@@ -258,67 +258,17 @@
    pipeClickLocation () {
      // 设施不进行 管线表格数据的点击交互
      this.SectionAndAffFacTableJudge = false
      // this.tableList = []
      // 点击获取数据
      window.map.on('click', (e) => {
        // 点击地图关闭弹框
        window.mapManager.clickDialogSwitch = false
        window.mapManager.loadWfsDatas(e.latlng).then((res) => {
          // for (let i = 0; i < res.features.length; i++) {
          //   console.log(res.features[i])
          //   const ids = res.features[i].id.split('.')
          //   // console.log(ids[0])
          //   if (ids[0] === 'pipeline') {
          //     this.tableList.push(res.features[i])
          //   } else if (ids[0] === 'pipesegment') {
          //     this.tableListSection.push(res.features[i])
          //   } else {
          //     this.tableDataAffFac.push(res.features[i])
          //     // const obj = {
          //     //   properties: {
          //     //     pipecode: res.features[i].properties.code,
          //     //     name: res.features[i].properties.companyname,
          //     //     type: res.features[i].properties.mediumtype
          //     //   }
          //     // }
          //     // console.log(obj)
          //     // this.tableDataAffFac.push(obj)
          //     // console.log(this.tableDataAffFac)
          //   }
          // }
          const size = window.map.getSize()
          var point = window.map.latLngToContainerPoint(e.latlng, window.map.getZoom())
          const wmsParams = Object.assign({
            LAYERS: 'sewer:pipeline',
            QUERY_LAYERS: 'sewer:pipeline',
            WIDTH: size.x,
            HEIGHT: size.y,
            X: Math.round(point.x),
            Y: Math.round(point.y),
            BBOX: window.map.getBounds().toBBoxString()
          }, {
            VERSION: '1.1.1',
            SERVICE: 'WMS',
            REQUEST: 'GetFeatureInfo',
            // bbox: bbox,
            FORMAT: 'image/png',
            INFO_FORMAT: 'application/json',
            TRANSPARENT: true,
            FEATURE_COUNT: 50,
            SRS: 'EPSG:4326',
            EXCEPTIONS: 'application/vnd.ogc.se_inimage'
          })
          AjaxUtils.get4JsonDataByUrl(WMS_URL, wmsParams, (res) => {
            // console.log(res)
            for (let i = 0; i < res.data.features.length; i++) {
              // console.log(res.data.features[i])
              this.tableList.push(res.data.features[i])
            }
          })
          // 管段
        // 管线点击数据
        this.pipeData(e)
        // 管段点击数据
          this.sectionData(e)
          // 附属设施
        // 附属设施数据
          this.affFacData(e)
        })
        // 关闭点击事件
        window.map.off('click')
      })
      // 数据 重新获取 进行置空
@@ -329,68 +279,47 @@
      this.tableListSection = []
      this.tableDataAffFac = []
    },
    // 点击定位 擦寻管段
    sectionData (e) {
      const size = window.map.getSize()
      var point = window.map.latLngToContainerPoint(e.latlng, window.map.getZoom())
      const wmsParams = Object.assign({
        LAYERS: 'sewer:pipesegment',
        QUERY_LAYERS: 'sewer:pipesegment',
        WIDTH: size.x,
        HEIGHT: size.y,
        X: Math.round(point.x),
        Y: Math.round(point.y),
        BBOX: window.map.getBounds().toBBoxString()
      }, {
        VERSION: '1.1.1',
        SERVICE: 'WMS',
        REQUEST: 'GetFeatureInfo',
        // bbox: bbox,
        FORMAT: 'image/png',
        INFO_FORMAT: 'application/json',
        TRANSPARENT: true,
        FEATURE_COUNT: 50,
        SRS: 'EPSG:4326',
        EXCEPTIONS: 'application/vnd.ogc.se_inimage'
      })
      AjaxUtils.get4JsonDataByUrl(WMS_URL, wmsParams, (res) => {
        // console.log(res)
        for (let i = 0; i < res.data.features.length; i++) {
          this.tableListSection.push(res.data.features[i])
        }
      })
    // 点击定位区域 搜寻管线数据
    pipeData (e) {
      this.publicWay(e, 'sewer:pipeline', 'sewer:pipeline', this.tableList)
    },
    // 点击定位 擦寻附属设施
    // 点击定位区域 搜寻管段数据
    sectionData (e) {
      this.publicWay(e, 'sewer:pipesegment', 'sewer:pipesegment', this.tableListSection)
    },
    // 点击定位区域 搜寻附属设施数据
    affFacData (e) {
      const size = window.map.getSize()
      var point = window.map.latLngToContainerPoint(e.latlng, window.map.getZoom())
      const wmsParams = Object.assign({
        LAYERS: 'sewer:view_pipeline',
        QUERY_LAYERS: 'sewer:view_pipeline',
        // LAYERS: 'pipeline_fs',
        // QUERY_LAYERS: 'pipeline_fs',
        cql_filter: 'pipecode <> \'\'',
        WIDTH: size.x,
        HEIGHT: size.y,
        X: Math.round(point.x),
        Y: Math.round(point.y),
        BBOX: window.map.getBounds().toBBoxString()
      }, {
      this.publicWay(e, 'sewer:view_pipeline', 'sewer:view_pipeline', this.tableDataAffFac, 'pipecode <> \'\'')
    },
    // 点击按钮定位 的公共事件
    publicWay (e, layer, queryLayer, dataList, cqlfilter) {
      const defaultWmsParams = {
        VERSION: '1.1.1',
        SERVICE: 'WMS',
        REQUEST: 'GetFeatureInfo',
        // bbox: bbox,
        FORMAT: 'image/png',
        INFO_FORMAT: 'application/json',
        TRANSPARENT: true,
        FEATURE_COUNT: 50,
        SRS: 'EPSG:4326',
        cql_filter: cqlfilter,
        EXCEPTIONS: 'application/vnd.ogc.se_inimage'
      })
      }
      const size = window.map.getSize()
      const point = window.map.latLngToContainerPoint(e.latlng, window.map.getZoom())
      const wmsParams = Object.assign({
        LAYERS: layer,
        QUERY_LAYERS: queryLayer,
        WIDTH: size.x,
        HEIGHT: size.y,
        X: Math.round(point.x),
        Y: Math.round(point.y),
        BBOX: window.map.getBounds().toBBoxString()
      }, defaultWmsParams)
      AjaxUtils.get4JsonDataByUrl(WMS_URL, wmsParams, (res) => {
        console.log(res)
        for (let i = 0; i < res.data.features.length; i++) {
          this.tableDataAffFac.push(res.data.features[i])
          dataList.push(res.data.features[i])
        }
      })
    },