我有一个栅格图层,其数据值介于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行)
答案 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
。
我对使用正则表达式测试数值感到兴奋。并且此样本允许高限制低于低限制。希望这能让你开始。