首页 / 浏览问题 / 云GIS / 问题详情
iserver的wms服务Getmap怎么设置过滤
15EXP 2024年11月27日

看文档说使用layerDefs这个参数,但是我设置了,依然没有被过滤

1个回答

您好, layerDefs 语法为 {<layer1>:<layerDefs1>,<layer2>:<layerDefs2>,不同图层的过滤条件间以 ',' 分隔。支持的比较操作包括 =、<>、>、> =、<、<= ,支持的字符串匹配操作包括 BETWEEN AND 、 IN 、 like ,支持的逻辑关系判断包括 AND , OR , NOT。

请求示例: http://10.5.92.115:8090/iserver/services/map-test241022/wms130/setting_seismic_influenceflied%40test201022?VERSION=1.3.0&REQUEST=GetMap&LAYERS=0.0&STYLES=&CRS=EPSG:4490&BBOX=-85.27116773191986,-13.608419035599077,147.2711677319198,220.40841903559908&WIDTH=1200&HEIGHT=800&FORMAT=image/png&layerDefs={"0.0":"earth_quake_id=10022"}

注意,当 layers 中包含了 layerDefs 中设置的图层时,layerDefs 中对应的图层筛选效果方能显示,并且需要11.0.1及11.1.0版本以上的iServer。您使用的iServer是什么版本呢?
1,060EXP 2024年11月27日

通过服务路径进入iserver,显示如此,这应该是说明iserver是11版本以上的吧

您好,我这边用11.2.0版本的iServer测试, layerDefs请求是没问题的:http://localhost:8091/iserver/services/map-chengdu/wms111/chengdu?VERSION=1.1.1&REQUEST=GetMap&layers=0.2&STYLES=&SRS=EPSG:4326&BBOX=103.12027,30.260396,104.876771,31.371956&WIDTH=1200&HEIGHT=800&FORMAT=image/png&layerDefs={%220.2%22:%22smid=67%22}

您的iServer是11以上的版本,应该是没问题的。请检查请求参数是否正确,layerDefs里的图层是否存在设置的过滤字段,还是加不出来的话可以私信我联系方式,我远程帮您看看~

...