“数据定义的”标签设置的有效值是什么?


9

我正在使用QGIS 1.8。我想使用新的标签引擎及其“数据定义的设置”选项在现有shapefile上自定义标签特征。我想知道每种设置的属性表字段类型是什么:所有7个字体选项,所有2个缓冲区选项和所有6个位置选项。它们应该都是数字字段,还是某些文本,或者两者都为?我想在属性表中正确创建这些字段,以便可以将它们映射到标签字段设置。我在任何地方都找不到有关正确字段类型的信息。感谢您的想法。

Answers:


16

对于数据定义的标签功能,没有完整的文档集,但是这里是它们的值的细目分类,以及它们在版本1.8中的QGIS PAL标签引擎如何使用的:

  • 大小 [ 实数 ]定义字体大小,尽管数字的解释方式取决于图层的设置(点或地图单位),而该设置不能在1.8中定义。
  • 粗体,斜体,下划线,删除线 [ 整数 ]布尔值1或0(打开/关闭),用于设置字体样式。对于这些样式,最好使用实际上包含粗体或斜体字体的字体。
  • Color [ string ]由QColor :: setNamedColor(name)公共函数接受的命名颜色值。经常十六进制格式#RRGGBB建议
  • Family [ 字符串 ] 用于字体匹配的QFont姓氏。请注意,您也可以指定代工厂名称。请参阅QFont说明(在您的Qt版本的文档中)以获取有关按名称匹配字体的更多信息。
  • BufferSize [ real ]定义缓冲区大小,以mm为单位。无法选择以1.8为单位的地图单位进行设置。缓冲区由标签文本的填充和描边副本组成,但位于其后。笔画是在线应用的,这意味着超出文本的视觉缓冲将是定义大小的一半。

    相对于文本大小,缓冲区中会有大尺寸的伪像(所使用的技术会产生Qt问题)。如果标签的字体大小是以地图单位定义的,并且以毫米为单位设置了缓冲区,则在屏幕上缩放时,两个缩放比例会以不同的速率出现视觉问题,尽管在打印地图时它们的外观会保持一致一个已知的比例,为此您必须以毫米为单位来计算正确的缓冲区。
  • BufferColor [ string ]与上面的文本颜色相同。请注意,在1.8版中,此选项同时应用于缓冲区的填充和笔触。
  • 标签距离 [ 实数 ]标签到要素的定义距离,由动态PAL布局解决方案针对给定图层类型(在“高级”选项卡下)确定的距离(例如,从点到线等的上方或下方)确定。

    注意:这仅看起来当您尚未使用定义了数据的X和Y坐标“固定”标签时,即标签的位置仍然可以动态显示时,该标签可以正常工作。该距离与“高级”选项卡下毫米或地图单位的层级设置有关。同样,您的表列将需要配置为图层的坐标类型(例如,经/纬度)。
  • X坐标,Y坐标 [ 实数 ] 在图层CRS中定义的坐标,例如,某些坐标的纬度/经度,另一些坐标的经度。这些坐标定义的位置是标签旋转点,可以相对于引擎的放置方法或定义水平和垂直对齐方式而改变。

    虽然QGIS可以进行即时的坐标转换,但最好将所有标签层都放在同一CRS中,因此不会出现由于时髦转换而导致的标签移动问题。由于数据源中的X和Y列字段值是相对于CRS的,因此相对于所需的映射精度,使用纬度/经度时,与使用米相比,您将需要更高的精度,尽管它们都需要大小合适的宽度。

除非已经定义了X和Y,否则以下列不能定义数据。这是对旧标签引擎的某些功能的回归(例如定义独立于X和Y的旋转),但是高级标签当前在1.8中的工作方式。

  • 水平对齐 [ string ](左,中,右)标签文本相对于标签旋转点的水平对齐。

  • 垂直对齐方式 [ string ](底部,底部,一半和上限或顶部)标签文本相对于标签旋转点的垂直对齐方式。瓶盖和顶部相同。Base是字体的基线。

    注意:定义X和Y 之后更改水平或垂直对齐方式将导致文本相对于标签的固定旋转点移动,可能不是您想要的。给定放置方法,旋转点可能与默认值不同(例如,左,下)(例如,设置了超点的点层将默认为居中,一半,请参见图片)。最好尝试使用“更改标签”工具来“查看”旋转点在哪里以及更改对齐设置将如何影响标签。

在此处输入图片说明
带有居中对齐和一半对齐的标签并移动到新位置,从特征点偏移

  • 旋转 [ 实数 ](0.00-360.00)标签绕旋转点逆时针旋转的度数。使用Ctl(在Mac上为Cmd)修改键时,旋转标签工具会将旋转增量舍入为15度。

如果你愿意尝试一下每晚构建从主分支QGIS,或自己编译,你会发现在这个领域里面已经包含了以下工作电流:

在此处输入图片说明
带有“ GIS样式”图标的高级标签工具栏

  • 固定标签/取消固定标签工具通过自动将PAL引擎的标签位置数据存储到属性表的X,Y和“旋转”字段中来交互式地“固定”或“取消固定”标签。随播工具可突出显示固定的标签。

  • “显示/隐藏标签”工具可通过使用一个新的数据定义字段(称为“显示标签”)来交互式地显示或隐藏标签。

  • 不断增强标签的特性,例如与比例相关的显示,透明度和字体样式。


2

您可以尝试使用新的EasyCustomLabeling插件(http://hub.qgis.org/projects/easycustomlabeling),该插件可以复制图层并添加“数据定义的”标签字段。以下是该插件中使用的字段定义类型:

QgsField(“ LblX”,QVariant.Double,“数字”,
10,2 )QgsField(“ LblY”,QVariant.Double,“数字”,
10,2 )QgsField(“ LblAlignH”,QVariant.String,“ varchar”, 12)
QgsField(“ LblAlignV”,QVariant.String,“ varchar”,12)
QgsField(“ LblSize”,QVariant.Int,“ integer”,1)
QgsField(“ LblRot”,QVariant.Double,“ numeric”,10, 2)
QgsField(“ LblBold”,QVariant.Int,“ integer”,1)
QgsField(“ LblItalic”,QVariant.Int,“ integer”,1)
QgsField(“ LblColor”,QVariant.String,“ varchar”,7)
QgsField(“ LblFont”,QVariant.String,“ varchar”,64)
QgsField(“ LblUnder”,QVariant.Int,“ integer”,1)

希望能帮助到你

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.