类名 leaflet/document/IGSFeatureLayerView.js
import { getBaseUrl } from '@mapgis/webclient-common'
import FeatureRenderView from './support/FeatureRenderView'
import IGSVectorUtil from '../view/utils/IGSVectorUtil'

class IGSFeatureLayerView extends FeatureRenderView {
  _processData() {
    const layer = this.layer
    // (默认查询100000条要素)
    const queryCount = 100000
    const query = layer._createQueryOption()
    query.resultRecordCount = queryCount
    return layer.queryFeatures(query).then((res) => {
      return res
    })
  }

  /**
   * 添加图层视图
   * @param {LayerEvent} event 图层事件
   * @return {Promise<LayerView>} 图层视图
   */
  onAdd(event) {
    const self = this
    const layer = this.layer
    const innerView = this.innerView

    // 设置渲染模式
    if (layer.renderMode === 'server') {
      const resourceUrl = layer.url
      if (layer._igsVersion === '1.0') {
        const httpString = getBaseUrl(resourceUrl)
        // 加载IGS二维矢量图层服务
        self.innerLayer = IGSVectorUtil.addIGSVectorLayer(
          `${httpString}/igs/rest/mrms/layers`,
          layer,
          innerView
        )
      } else {
        const httpString = getBaseUrl(resourceUrl)
        // 加载IGS二维矢量图层服务
        self.innerLayer = IGSVectorUtil.addIGSVectorLayer(
          `${httpString}/igs/rest/mrms/layers`,
          layer,
          innerView
        )
      }

      return Promise.resolve(self)
    } else {
      return super.onAdd(event)
    }
  }

  /**
   * 移除图层视图
   * @param {LayerEvent} 图层事件
   * @return {Promise<LayerView>} 图层视图
   */
  onRemove(event) {
    const self = this
    const layer = this.layer
    if (layer.gdbp) {
      this.innerView.removeLayer(this.innerLayer)
      return Promise.resolve(self)
    }
    return super.onRemove(event)
  }
}
export default IGSFeatureLayerView
构造函数
成员变量
方法
事件