将海拔数字放置在QGIS中具有上坡方向和位置的轮廓上吗?


20

我想将海拔标签定向到山上。

那可能吗?

我目前正在使用QGIS的标签工具(不是图层设置中的那个)。我希望标签弯曲并面向上坡(并且我想定义数字显示的频率)。全部用于打印地图。


请参阅chat.stackexchange.com/rooms/939/gis。恐怕没有答案。缺口。
nhopton 2012年

您严格只使用QGIS吗?您是否考虑过使用其他软件来准备标签数据?
Alex Markov

如果开放和免费,我也将使用其他软件:)
MAP

Answers:


21

接下来,我们开始介绍一种控制轮廓标签放置的方法,请参见图片。

我要做的第一件事是加载轮廓。接下来,在新的线shapefile上,我从山顶到底部画了一条线(图片中的标签与此对齐)。然后,我缓冲线,并使用缓冲区裁剪轮廓层。之后,将剪裁后的轮廓加载到轮廓层上,设置符号系统,以使小线条不会渲染,并使用新的标注系统对剪裁层进行标注。

在所示的示例中,我仅使用了一条直线,但是当然也可以使用折线来产生放置更好的标签。

哦,您只需要一个小的缓冲区值(我认为我在示例中使用了50米),即使这可能已经超出了严格的要求。

在此处输入图片说明


创作方法。我可能会将此想法用于将来的地图。
Sue Deforest 2012年

2
看起来不错,很好的主意,尼克!但这听起来像是要在一个1000平方公里,有数百座山丘的地区做很多工作... :)
地图

1
有点肮脏,你不觉得吗?:)
blah238

1
对!但这是我书中的夸奖:)是的,马丁会做很多工作,但是比改变我认为的标签要快。您可以在同一层中绘制很多用于缓冲的线,就像我之前提到的那样,它们不必是直的。我认为,穿越它们并不是一个好主意。缺口。
nhopton 2012年

这种与虚拟层结合的方法可以提供一种沿线设置标签的交互方式。
亚历山大·内托

4

使用平行放置以及“波纹管”和“取决于线方向的位置”,我设法将标签始终放在上坡侧。

在此处输入图片说明

在此处输入图片说明

弯曲的放置当前似乎忽略了线的方向。(我报告了该行为。)

另外,如果您打算这样做,那么似乎不可能实现上下颠倒的标签。


方向您如何知道“上坡”相对于轮廓的位置,即使标签是上下颠倒的。
Mike T

1
谢谢!但是它不能很好地工作。定向仍定向为线角,而不是定向到上坡侧(如1700m和1900m)或左侧山丘上的轮廓编号。但是谢谢!
MAP

@MikeToews我知道这一点,但目前似乎无法当前创建上下颠倒的标签(正如我在答案中提到的那样)。
昏暗

“规则”这个词太强了,但是关于线条的标注有一些约定,新的标注系统在遵守这些规则方面做得很好。我认为,如果您想选择标签在行中出现的位置,则必须将行分成适当的部分。缺口。
nhopton 2012年

可能还有另一种处理轮廓标签放置的方法,让我考虑一下。
nhopton 2012年

4

您可以做的是使用等高线的属性从轮廓创建点文件(可以使用线工具中的任何轮廓进行此操作)。然后在该点中添加高宽比值(您将需要高宽比栅格,但这很容易生成),最后根据高宽比在这些点中旋转高程标签(实际上,它需要为180度+高宽比,因为高宽比是下坡方向)。您可以设置点的样式,使其不显示。希望这会有所帮助,它在很大程度上取决于数据的详细信息,如果外观与轮廓方向不匹配,可能会很烦人。


1
(+1)聪明的方法-足够通用,可以与许多GIS一起使用,而且非常灵活。(遗憾的是,该解决方案无法满足标注带有轮廓的曲线的要求。)欢迎来到我们的网站!
ub

1

通常,以等高线始终位于线的同一侧的方式捕获等高线顶点。也许是您的数据的情况...


QGIS Contour插件似乎就是这种情况。但这仍然留下如何处理标签的问题。
昏暗

0

我假设发问者希望轮廓标签面向上坡,而不是放在轮廓的上坡侧。

在QGIS 3.2中,转到

  • 图层->属性...,
  • 标签标签
  • 子标签呈现

并选择显示倒置标签=始终。没有这个,QGIS将拒绝将标签上下颠倒地打印,并且最终将导致方向混乱。

如果发现标签的排列方式错误,则可以使用“处理工具箱”中的“ 反向线方向”工具。

请注意,这假设层中的所有轮廓均以相同的方式定向。如果已使用QGIS中的轮廓工具(称为gdal_contour),则应为这种情况。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.