菜单 学习猿地 - LMONKEY

VIP

开通学习猿地VIP

尊享10项VIP特权 持续新增

知识通关挑战

打卡带练!告别无效练习

接私单赚外块

VIP优先接,累计金额超百万

学习猿地私房课免费学

大厂实战课仅对VIP开放

你的一对一导师

每月可免费咨询大牛30次

领取更多软件工程师实用特权

入驻
26
0

超图iServer图层过滤渲染服务

原创
05/13 14:22
阅读数 49078

使用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]}) }) ...... },

 

发表评论

0/200
26 点赞
0 评论
收藏