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