超图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]}) }) ...... },