防止文本标签与QGIS中的其他标记重叠?


14

QGIS中是否有一种方法可以防止文本标签与用于标记点层的图标重叠?

在下面显示的示例地图中,有两层:

  1. 使用新的标记引擎标记的道路层。
  2. 使用svg图标显示高速公路护盾的点层。

我还有其他用例,例如防止火车站图标重叠。在此示例中,我可以简单地移动该点,但是在其他情况下(例如地铁站),这不是可行的解决方案。

我正在考虑的可能解决方案包括:

  1. 在点图层的dbf文件中添加一列。
  2. Null或空格填充添加的列。
  3. 为添加的列启用QGIS的[新样式]标签。

这是走的路还是有更好的方法?

样本图

QGIS信息:我正在Mac OS 10.7.4上使用1.7.4版本和最近编译的1.8版本。我也可以使用Linux和Windows版本。


进度更新:尽管需要对流程进行两次修改,但上述方法仍然有效。

  1. 代替使用空格字符或Null,必须使用不间断空格。在测试过程中,我发现没有显示Null的字段,只有空格的字段被转换为Null。(有关如何键入不间断空格的信息,请参见此Wikipedia页面。)
  2. 在设置“图层标签设置”时,在“高级”选项卡上,将“ 放置位置”设置为“ 过点”。还要将“ 优先级”设置为高于任何其他标记的层。

根据所用图标的大小,可能需要进行一些试验才能使功能按预期工作。根据具体情况,使用多个字符可能比尝试增加字体的粗细和/或大小更容易。

样本图2

已在Mac OS 10.7.4上使用QGIS 1.7进行了测试,最近进行了1.8的编译。


1
您也可以回答自己的问题。我想投票赞成您的解决方案。
昏暗

您可以像我一样进行串联:在这里
jlSta

Answers:


8

到目前为止,我最好的一致解决方案是按照我上面列出的方法进行。假设使用了SHP文件,则步骤为:

  1. 使用电子表格应用程序(例如LibreOffice,Excel或QGIS Table Manager插件)打开dbf文件。
  2. 在表中添加一列。如果需要数据类型,请使用字符串。
  3. 不间断的空间填充单元格。完成后,保存更改。(有关如何键入不间断空格的信息,请参见此Wikipedia页面。)
  4. 打开点图层的图层标签设置。在“高级”选项卡上,将“放置”设置为“越过点”,并将“优先级”设置为高于任何其他标记的图层。

2
在2.14中,您甚至不需要添加新列,只需将''用作标签
raphael

3

我知道这很旧,但是您可以在包含该信息的表中添加“ X坐标”和“ Y坐标”(双精度)列,然后转到图层属性中“标签”下的“数据定义的设置”选项卡并进行更改X坐标和Y坐标相应。完成后,您可以使用“移动标签”按钮徒手移动标签。



0

您可以尝试使用标签的偏移量。

我发现,如果将其设置为2 mm左右,则可以使标签定位更加动态。


不,我没有尝试这样做。我没有更改标签位置的主要原因是,在地图的其他区域(未显示)上,道路网络更加密集。在上面的示例中,将图标移动大约2mm(任何方向)都可以解决此问题。但是,在地图的其他部分,它可能会将图标推入另一个标签中。
DMan 2012年

尝试一下,标签可能会移动到新的动态位置。也许不是您想要的,但找出答案的唯一方法就是尝试。我使用的选项位于新标签工具的高级选项卡中(可在工具栏中找到,而不是从图层的属性对话框中找到)。
Willy 2012年
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.