首页 / 浏览问题 / 云GIS / 问题详情
iserver wms过滤功能
6EXP 2025年03月19日

http://djk.jlu3s.com:8090/iserver/services/map-djk_fa-djksde-boundarys/wms111/boundary?VERSION=1.1.1&REQUEST=GetMap&FORMAT=image%2Fpng&TRANSPARENT=true&LAYERS=boundary&SRS=EPSG%3A4326&STYLES=&WIDTH=2868&HEIGHT=1305&BBOX=110.15415614626978%2C32.17848927223099%2C112.32228038655485%2C33.16503115980841&layerDefs={%22boundary%22:%22smid=2%22}

发布了一个WMS服务,获取时根据文档填写了layerDefs参数,结果能够返回图层,但过滤功能没有生效,仍旧是全都展示。我用iserver中自带的map-world图层进行了同步试验,发现map-world使用layerDefs过滤是有效果的,为什么我发布的图层过滤失败?我是使用PostGIS服务进行发布的,数据库为openGauss,使用yukon空间扩展。iserver版本为11.2.1(2024)

1个回答

您好,

1、属性过滤,语法为 {<layer1>:<layerDefs1>,<layer2>:<layerDefs2>},不同图层的过滤条件间以 ',' 分隔。支持的比较操作包括 =、<>、>、> =、<、<= ,支持的字符串匹配操作包括 BETWEEN AND 、 IN 、 like ,支持的逻辑关系判断包括 AND , OR , NOT。示例如下:
layerDefs={"0.11":"Shape_Area <500 and OBJECTID>100","0.12": "STATE_NAME LIKE 'N%'"}

2、检查数据库里字段名大小写是否正确,是否开启大小写敏感。

希望能够帮助到您!
1,275EXP 2025年03月20日

语法经检查应该没有问题,数据库字段均为小写,已经通过rest服务临时图层、wms过滤各种方法试了两天了仍然没成功过,您可以直接点击我上面给的链接试一下,可以直接访问的,以下是数据库中字段信息

另外这个wms服务好像也有问题,我每次第一次请求这个链接返回的都是空白的图,要更新参数或者刷新几次才能看到,不知道是为什么
这边访问您提供的链接,里面有提示报错:<ServiceException code="InitErr">错误的地图名称:boundary</ServiceException></ServiceExceptionReport>

检查下这张地图是否存在呢,是不是参数填错了
...