Answers:
仅选择整数值的简单技巧是使用以下语法:
Mod(Round("ELEVATION", 0)*10, 10)=0
乘以10会使所有值均为整数,然后我们只选择10的倍数。
如果您想选择其他数字的倍数,只需将10乘以间隔即可。
要以5 m的间隔获取轮廓,请使用:
Mod(Round("ELEVATION",0) * 10, 50)=0
要以100 m的间隔获取轮廓,请使用:
Mod(Round("ELEVATION", 0) * 10, 1000)=0
更新
根据下面注释中给出的Whuber的建议,我在查询表达式中添加了舍入函数。
MOD
将受到浮点舍入误差的影响,这在这里很关键:如果您的最低有效位数也很低,则MOD
可能会返回错误的值(取决于实现方式)。我建议在应用之前四舍五入这些值,MOD
以防止出现这些细微(隐患)错误。
ROUND
即可在舍入中获得更高的精度。
要获取索引轮廓,可以在字段计算器上使用它:
在ARCMAP中
dim dIndexInterval
dim dCont
dim i
dim j
dim k
dim c
dIndexInterval = 200 ' set to interval of index contours
dCont = [level] ' Set to contour height field
i = ROUND(dCont, 0) * 10
j = dIndexInterval * 10
k = i MOD j
if k = 0 then
c = 1 ' is an index contour
else
c = 0 ' is not an index contour
end if
'在对话框底部的文本输入字段中键入“ c”(不带引号),然后单击“确定”。
在QGIS中
if(((round("level", 0) * 10) % (200 * 10)) = 0, 1, 0)
“” level“”设置为轮廓高度字段“ 200”设置为索引轮廓的间隔
然后:“ 1”是索引轮廓,“ 0”不是索引轮廓