首页 文章

将FILTER变量导入MapServer DATA字符串

提问于
浏览
0

我需要以下解决方案或指向描述Mapserver MapFile DATA元素的详细参数指南的链接,以便我可以尝试找出解决方案 . 我正在尝试将动态过滤器传递给mapfile,但无法解决语法问题 . 上下文有一个Web应用程序,我在Openlayers中有一个连接到Mapserver Mapfile的WMS层,而Mapserver Mapfile又是从PostGIS栅格数据库中读取的 . 此方法的矢量图层版本具有以下基本语法,可以很好地适用于DB中的矢量表:

DATA "geom FROM some_table using unique id using srid=4326"
FILTER (id = '%id%')

实际上,这会生成一个SQL语句,其中FILTER被创建为DATA SQL中的where子句 .

但是,在栅格数据库示例中,此链接显示的DATA语法[http://postgis.net/docs/RT_FAQ.html#idm28328]如下:

DATA "PG:host=localhost port=5432 dbname='some_db' user='some_user' password='some_password' schema='some_schema' table='some_table' where='id=12' mode='2' "

因此,我可以使用硬编码的方法来处理元素,即id = 12,但在前面的示例中,我可以通过FILTER行在Openlayers WMS查询中动态设置id参数 . 有没有人知道在光栅数据示例中实现这一点的语法,还是甚至可能?

1 回答

  • 0

    您需要在id类型中添加“验证”对象 . 添加如下内容:

    验证'id''[0-9]'结束

    到您的图层对象 . 您可以看到该页面以获得更多解释:https://mapserver.org/mapfile/validation.html

相关问题