准备:
wms数据源:这里我使用的是geoserver发布的地图服务

测试地址: http://218.77.59.2:6200/geoserver/ows?service=wms&version=1.3.0&request=GetCapabilities

我的需求是,过滤出图层查询条件status=1的数据。

val wmsLayer = WmsLayer(url, names)
wmsLayer.customParameters["CQL_FILTER"] = "status=1"
wmsLayer.loadAsync()
refreshIntervalMilliseconds?.run { wmsLayer.refreshInterval = this }
wmsLayer.addLoadStatusChangedListener { loadStatusChangedEvent ->
if (loadStatusChangedEvent.newLoadStatus != LoadStatus.LOADED) {
val error = loadStatusChangedEvent.newLoadStatus
if (error != null) {
Log.e("WMSLayer", "Failed to load WMSLayer: $error")
}
}
}

这里使用了customParameters这个方法,然后在里面添加了key为 CQL_FILTER 值为status=1 查询条件的结果.

放一下加了查询条件和不加的对比

未加CQL_FILTER

加了CQL_FILTER

添加CQL_FILTER的数据