
本文讲解如何制作这样一张等高线地图。整体工作分为以下几步:
一、数据准备
得益于卫星数据采集的普及,可以很方便的获取90m、30m、12.5m分辨率的数据。点击这里,了解如何获取各个分辨率数据方法。
数据预处理:选择合适的坐标系后,将DEM数据重投影到此坐标系下,并根据分析范围,对数据裁切。点击这里,了解如何选择地图坐标系

二、等高线生成
生成原始等高线:使用QGIS菜单工具 栅格>提取>等值线,选择DEM数据和等高线间隔。

等高线修整:不难发现,原始的等高线会有很多零碎折线,并且不够平滑。所以必须对等高线修整。修整过程主要是删除短线、平滑、简化。
删除短线:点击这里,查看如何根据条件删除矢量要素。
平滑:我们使用QGIS默认的矢量平滑工具。

简化:我认为不是所有数据都需要简化操作。通常,先通过简化操作,再进行平滑操作后,等高线线形会更为平整。

三、样式调整
DEM底图配色:为了凸显地形数值,可采用比较偏淡的色调。此处配置风格多种多样,不再赘述。
等高线符号调整:为了区分不同数值的等高线样式,使用基于规则的符号设置。

等高线注记配置:为了将注记根据要求排列,使用几何图形生成器,确定注记位置。
实现思路:构建一个折线图层,计算折线与等高线的相交位置,作为注记显示位置。请将折线图层的名称改为line_label。如下图,绿色线段,即为我绘制的折线图层。
代码如下:
-- Name the (line) layer that "cuts" the layer
-- where the labels should be placed.
-- Also define the placement width for the labels.
with_variable('label_position_layer', 'line_label',
with_variable('label_placement_width', 50,
if( -- First, only apply to lines that actually are to be labled (improve speed)
intersects(
geometry1:=@geometry,
geometry2:=aggregate(
layer:=@label_position_layer,
aggregate:='collect',
expression:=$geometry
)
),
aggregate( -- The actual label placment
layer:=@label_position_layer,
aggregate:='collect',
expression:=intersection(
geometry1:=geometry(@parent),
geometry2:=buffer($geometry, @label_placement_width)
)
),
'') -- End of if-statement
))


需要更多技术支持,请联系我们,转载请注明出处。