You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

QGIS:为多边形内的线要素在外部显示字段值标签

QGIS线要素标签位置控制:内部线标签移至外部

核心思路

通过表达式判断线要素是否位于多边形内部,针对性设置标签放置位置:内部线的标签移至外部,外部线保持默认显示。

具体操作步骤

  1. 打开线图层的标签属性(右键图层 → 属性 → 标签),确认已启用name字段作为标签内容。
  2. 切换到放置选项卡,找到标签位置,选择几何生成器(用于自定义标签锚点位置)。
  3. 在几何生成器的表达式框中输入以下代码(注意将polygon替换为你的多边形图层实际名称):
case
  -- 判断线要素是否完全在多边形内部
  when within($geometry, aggregate('polygon', 'collect', $geometry)) then
    -- 取线的端点并向外延伸,作为标签放置点(0.1为延伸比例,可按需调整)
    end_point(extend($geometry, length($geometry)*0.1, 0))
  -- 线在外部时,保持默认的线几何位置放置标签
  else
    $geometry
end
  1. (可选优化)如果线仅部分在多边形内部,可按长度占比调整判断条件:
case
  when length(intersection($geometry, aggregate('polygon', 'collect', $geometry))) / length($geometry) > 0.8 then
    end_point(extend($geometry, length($geometry)*0.1, 0))
  else
    $geometry
end
  1. 调整标签字体、颜色等参数后,点击应用即可生效。

原表达式无效的原因

你之前使用的difference()表达式是用于生成新的几何对象(线与多边形缓冲的差集),但标签设置需要的是控制标签的放置规则,而非修改线要素本身的几何,因此无法直接实现标签位置调整。

内容的提问来源于stack exchange,提问作者Anup Kumar Mohapatra

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 00:02:45