如何防止QGIS Composer在出血空间中呈现标签?


10

我正在为一本书绘制地图,其中地图一直延伸到页面的边缘。打印机建议在图像周围留出3mm的出血空间,因此,如果我的页面为127x177毫米,则图像应为133x183毫米。排空空间是为了在裁切书籍页面时允许出现错误,并且在地图的情况下不应包含任何基本信息。因此,我使用的作曲家页面大小在所有面上都包括这些额外的3毫米。

我不希望在地图的边缘处剪掉城镇的标签,因此我禁用了“显示局部标签”选项。但是,标签仍在打印机可能会切开的3毫米“无人区”内显示。

映射有出血的位置,不应渲染任何标签

我考虑的解决方案是制作两个重叠,同心且完全对齐的地图,下面的地图运行到出血的边缘并且不显示城镇,顶部的地图将是书页的确切尺寸(即3mm并比城镇地图少一圈)并显示城镇图层,因此在没有城镇(或标签)的地方创建了3毫米的边框。

但是,我无法使这两个地图在作曲家中完美对齐。我曾尝试计算这两个地图的范围,以使它们具有相同的中心和相同的比例,但是QGIS编写器似乎具有固定的3位小数位精度,因此我永远无法使它们完美对齐。

解决此问题的另一种方法是新功能,该功能不允许在“功能周围的余量”图集内呈现标签。

有什么办法可以防止标签在出血边界内呈现?

Answers:


1

下面的解决方案可能不是解决您问题的理想解决方案,但是它将是解决您遇到的问题的解决方法。

如果您不想在出血中显示的点(城市)数很少,则可以使用查询生成器将其排除,如下所示

  1. 右键单击目标图层(城市点图层)->转到图层属性
  2. 转到常规标签
  3. 右下角有一个“查询生成器”按钮,单击它可以构建查询
  4. 写一个表达式 "FIELD_NAME" != 'NAME OF THE CITY'
  5. 用包含城市名称的字段替换FIELD_NAME,然后用希望将其排除在出血区域之外的城市名称替换“城市名称”
  6. 如果要排除一个以上的城市,则必须编写"FIELD_NAME" != 'NAME OF THE CITY_1' AND "FIELD_NAME" != 'NAME OF THE CITY_2'等。
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.