我想将海拔标签对准山坡。

那可能吗?

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

评论

请参阅chat.stackexchange.com/rooms/939/gis。恐怕没有答案。尼克。

请您阅读这篇文章如何在Quantum GIS(QGIS)和
中使用点数据生成轮廓

#1 楼

然后,我们开始使用一种方法来控制轮廓标签的放置,请参见图片。

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

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



评论


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

–起诉森林砍伐
2012年6月11日在16:45

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

–MAP
2012年6月11日17:12

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

–blah238
2012年6月11日19:43

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

–尼普顿
2012年6月11日19:55

这种与虚拟层结合的方法可以提供一种沿线设置标签的交互方式。

–亚历山大·内托(Alexandre Neto)
17年5月5日在16:40

#2 楼

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





目前,弯曲的位置似乎忽略了线的方向。 (我已经报告了这种行为。)

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

评论


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

– Mike T
2012年6月9日在21:53

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

–MAP
2012年6月10日下午6:53



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

– Underdark♦
2012年6月10日12:12

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

–尼普顿
2012年6月11日12:24



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

–尼普顿
2012年6月11日12:34

#3 楼

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

评论


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

– hu
2012年6月11日12:50



#4 楼

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

评论


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

– Underdark♦
2012年6月9日18:17

#5 楼

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

在QGIS 3.2中,转到


层->属性...,
选项卡标签
子选项卡渲染

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

如果发现标签的方向都是错误的,则可以使用反向处理工具箱中的线方向工具。如果使用了QGIS中的轮廓工具(称为gdal_contour),就应该是这种情况。

在Klas Karlsson YouTube频道上有一个教程视频: .com / watch?v = -xzoVF7Z7u0
(标签从5:16开始)

评论


可以使用几何图形生成器字段中的reverse($ geometry)来代替反向线方向工具,以便即时进行反向。 (这是视频中的方法。)

–弗洛里安·詹恩(Florian Jenn)
20年6月4日在17:14

#6 楼

拿起Alexandre Netos的想法,使用几何图形生成器(GG)进行轮廓标注(https://twitter.com/AlexNetoGeo/status/1333987969414393856),我设法增强了GG代码,以便在刮擦线(“层”标签”)沿上坡方向绘制。只需启用Geometry Generator来放置标签并输入以下代码:
collect_geometries( aggregate(
  'labels', -- layer
  'array_agg', -- agregate
  with_variable('geom',intersection(buffer($geometry, 50),geometry(@parent)),
      if(distance(start_point(@geom), $geometry) > distance(start_point(@geom),offset_curve($geometry,50)), @geom,reverse(@geom))),
  intersects(
    $geometry,
    geometry(@parent)) -- filter
))

别忘了启用“显示上下颠倒的标签”和功能选项“标记多部分特征的每个部分”。

评论


如果轮廓线是使用GDAL处理工具创建的,则不需要额外的逻辑即可使上坡\下坡标签正常工作。您需要做的就是允许上下颠倒的标签:总是。

–亚历山大·内托(Alexandre Neto)
20/12/23在1:11

@AlexandreNeto很高兴知道,谢谢!但是我从名为“ PETREL”的GeoScience软件获得了轮廓,有时方向是错误的。

–christoph
20 Dec 23'5:13