【问题标题】:Getting FILTER variable into MapServer DATA string将 FILTER 变量放入 MapServer DATA 字符串
【发布时间】:2018-07-18 00:54:22
【问题描述】:

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

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

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

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

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' "

所以我可以使用硬编码的 where 元素,即 id=12,但在前面的示例中,我可以通过 FILTER 行在 Openlayers WMS 查询中动态设置 id 参数。 有谁知道在栅格 DATA 示例中实现这一点的语法,甚至有可能吗?

【问题讨论】:

    标签: sql mapserver postgis-raster


    【解决方案1】:

    您需要为您的 id 类型添加一个“验证”对象。 添加类似:

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

    到您的图层对象。 您可以查看该页面以获取更多说明: https://mapserver.org/mapfile/validation.html

    【讨论】:

    • 虽然此链接可能会回答问题,但最好在此处包含答案的基本部分并提供链接以供参考。如果链接页面发生更改,仅链接答案可能会失效。 - From Review
    • 也许您可以先阅读一下,然后再在此页面上添加噪音。因为我包含了整个答案并提供了链接以供参考。
    猜你喜欢
    • 2016-08-29
    • 2019-08-14
    • 2017-09-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-09
    • 2020-09-03
    相关资源
    最近更新 更多