超图iServer图层过滤渲染服务

使用iServer作为服务端,对已发出的超图rest服务如何做过滤展示,使用的是Vue

1、需要引入的依赖

  import {LayerStatus} from "@supermap/iclient-common/iServer/LayerStatus"
  import {SetLayerStatusService} from '@supermap/iclient-common/iServer/SetLayerStatusService'
  import {SetLayerStatusParameters} from '@supermap/iclient-common/iServer/SetLayerStatusParameters'

2、过滤方法

    /**
       * 图层过滤
       * @param _serviceUrl  超图REST服务地址
       * @param _layerName   要过滤的图层名字,一般叫  xxxx@xxxxx
       * @param _displayFilter  过滤条件  字符串类型 一般是比如'id>100 and (area >1000 or area <500)'
       */
      filterLayerContent(_serviceUrl, _layerName, _displayFilter) {
        let layerStatus = new LayerStatus({
          layerName: _layerName,
          displayFilter: _displayFilter
        })
        let setLayerStatusParameters = new SetLayerStatusParameters({
          layerStatusList: [layerStatus]
        })
        let setLayerStatusService = new SetLayerStatusService(_serviceUrl, {
          eventListeners: {
            "processCompleted": this.setLayerCompleted,
            "processFailed": this.setLayerFailed
          }
        })
        setLayerStatusService.processAsync(setLayerStatusParameters)
      },
setLayerCompleted(_res) {
let newSource = new TileSuperMapRest({ url: this.templateBingdingInfo.service.url, wrapX: true, layersID: _res.result.newResourceID, tileGrid: createXYZ({extent: [-180, -90, 180, 90]}) }) ...... },

 

posted @ 2020-12-15 10:55  昜木辰deブログ  阅读(692)  评论(0编辑  收藏  举报