是否可以在qgis中编写在指定坐标处显示标签的标签表达式?


15

我正在使用QGIS表达式生成器作为数据的标签属性。

是否可以在地图上的不同坐标处放置标签的不同部分?

例如,我有一个线串,并且我希望在线串的开头显示“ A”,并在其结尾显示“ B”。

Answers:


22

一种方法是使用基于规则的标记,并为“ A”和“ B”添加两个规则。

  1. 转到Layer Properties > Labels并将选项更改No labelsRule-based labelling。然后通过单击绿色加号图标添加规则:

    基于规则的标签

  2. 如图所示设置相关选项Label with(使用'A')和Coordinate X Y。对于x坐标,单击Edit...并使用$x_at(0)将标签放置在线串的开头;对于y坐标,请使用$y_at(0)

    规则选项

  3. 对“ B”重复步骤2,但对于xy坐标,分别在行字符串的末尾使用$x_at(-1)$y_at(-1)

  4. 当您单击Apply时,希望您会看到类似以下内容:

    带标签的线


1
感谢您分享您的解决方案!我将仔细研究它。我在QGIS方面还很陌生,学习曲线仍处于起步阶段。
benoitespinola

@benoitespinola-很抱歉没有回复(我通常会回复评论)!非常欢迎,我相信您会很快习惯QGIS的:)
Joseph Joseph

11

还有一种使用符号系统而不是标签的替代方法,它可能对您有用:

-如果您想为不同的功能使用不同的文本,则在数据中添加两个字段,一个字段用于结束文本,另一个字段用于开始文本。如果您只想在行尾使用“ A”和“ B”,则没有必要。

  • 对线层进行符号化,然后添加一个新的符号层->将其设置为第一个顶点上的标记线
  • 将符号类型设置为字体标记
  • 将标记设置为“ A”或将其值设置为与图层属性表中的开始字段匹配
  • 就像标准标记一样,用大小和旋转等方式进行处理。

重复添加末尾的“标签”。

在此处输入图片说明


真好!感谢您的解决方案!我也会尝试一下。:)
benoitespinola
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.