MapServer客户端可以通过QueryString设置DATARANGE

时间:2015-08-05 13:02:51

标签: mapserver

我有一个栅格图层,其数据值介于1.7和34.6之间(数据是一个带有一个float32频段的GeoTIFF)。我有一个简单的样式(下面)以灰度渲染数据。通过调整DATARANGE,我可以将数据过滤到感兴趣的范围。调用者是否有办法在查询字符串上指定DATARANGE?

CLASS
  STYLE
    COLORRANGE 0 0 0 255 255 255
    DATARANGE 25 30
  END
END

我尝试将“& map.layer [0] .class [0] .style [0] = DATARANGE + 20 + 30”添加到查询字符串中,但我收到错误:

loadStyle():未知标识符。 (DATARANGE)附近的解析错误:(第1行)

1 个答案:

答案 0 :(得分:1)

警告:我自己没试过。

扩展http://mapserver.org/cgi/runsub.html#runsub的“运行时替换”部分中的“基本示例”,我建议进行此修改。

VALIDATION
    'default_lowlimit' '25'
    'default_highlimit' '35'
    'lowlimit' '[0-9]+'
    'highlimit' '[0-9]+'
END
CLASS
  STYLE
    COLORRANGE 0 0 0 255 255 255
    DATARANGE '%lowlimit' '%highlimit'
  END
END

VALIDATION块中的default_行将指定默认值。然后非default_行给出正则表达式以匹配传入的值。查询字符串包含&lowlimit=25&highlimit=30

我对使用正则表达式测试数值感到兴奋。并且此样本允许高限制低于低限制。希望这能让你开始。