那可能吗?
我目前正在使用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
评论
请参阅chat.stackexchange.com/rooms/939/gis。恐怕没有答案。尼克。请您阅读这篇文章如何在Quantum GIS(QGIS)和
中使用点数据生成轮廓