QGIS字段计算器常用公式汇总(含实操示例)
🧭 QGIS字段计算器常用公式汇总(含实操示例)
文章目录
- 🧭 QGIS字段计算器常用公式汇总(含实操示例)
- 📸 封面图建议
- 📁 一、示例数据说明
- 🧮 二、数值计算类公式
- 1️⃣ 基本四则运算
- 2️⃣ 计算面积
- 3️⃣ 计算长度
- 4️⃣ 单位换算
- 5️⃣ 面积 × 高度 = 体积
- 🧷 三、字符串处理类公式
- 1️⃣ 拼接字段
- 2️⃣ 大小写转换
- 3️⃣ 截取子串
- 4️⃣ 查找与替换
- 5️⃣ 自动编号
- 📅 四、日期与时间类公式
- 1️⃣ 当前日期
- 2️⃣ 计算建筑使用年限
- 📍 五、几何与坐标类公式
- 1️⃣ 获取坐标
- 2️⃣ 获取中心点坐标
- 3️⃣ 计算周长
- 4️⃣ 外接矩形面积
- 5️⃣ 距离指定点
- 🔢 六、条件判断类公式
- 1️⃣ IF 判断
- 2️⃣ CASE 分类
- 3️⃣ Null值处理
- 🌍 七、空间分析类公式(进阶)
- 1️⃣ 判断是否在某区域内
- 2️⃣ 判断是否相交
- 3️⃣ 计算与另一图层要素的距离
- 🎲 八、随机数与数值函数
- 1️⃣ 生成随机数
- 2️⃣ 四舍五入
- 🧠 九、综合实例:建筑风险等级评估
- 💡 十、实战建议与技巧
- 📚 结语
- 🔗 推荐阅读
- 🏷️ 标签建议
💡 摘要:
本文系统整理了 QGIS 字段计算器(Field Calculator)中最常用的表达式公式,包括数值计算、字符串处理、日期时间、几何属性、条件判断与空间分析等模块。
并结合示例图层演示每类公式的具体应用,帮助读者快速掌握 QGIS 数据计算与自动化处理的核心技巧。
📸 封面图建议
主题图:QGIS 属性表界面 + 计算器窗口
推荐搜索关键词:QGIS Field Calculator interface
、QGIS attribute table expression
📁 一、示例数据说明
图层名称 | building.shp |
---|---|
数据类型 | 面要素(建筑物) |
主要字段 | name (建筑名称)、height (建筑高度)、area (建筑面积)、built_year (建成年份)、type (建筑类型) |
软件环境 | QGIS 3.40.6(适用于任意 3.x 版本) |
🧮 二、数值计算类公式
1️⃣ 基本四则运算
"height" * 2
将建筑高度加倍。
("height" * 3.14) / 10
自定义系数换算示例。
2️⃣ 计算面积
$area
返回面要素面积(单位取决于坐标系,建议使用投影坐标系)。
$area / 1000000
将面积转换为平方公里。
3️⃣ 计算长度
$length
获取线要素长度。
4️⃣ 单位换算
"height" * 3.281
米 → 英尺。
5️⃣ 面积 × 高度 = 体积
"area" * "height"
简单建筑体积估算(立方米)。
🧷 三、字符串处理类公式
1️⃣ 拼接字段
"name" || ' - ' || "type"
示例输出:
教学楼 - 办公
2️⃣ 大小写转换
upper("name")
lower("type")
3️⃣ 截取子串
substr("name", 1, 3)
从第 1 个字符开始取 3 个字符。
4️⃣ 查找与替换
replace("type", '住宅', '居住区')
5️⃣ 自动编号
'B' || lpad(@row_number, 3, '0')
输出:
B001, B002, B003...
📅 四、日期与时间类公式
1️⃣ 当前日期
now()
2️⃣ 计算建筑使用年限
year(now()) - "built_year"
2025 - 2005 = 20(使用年限 20 年)
📍 五、几何与坐标类公式
1️⃣ 获取坐标
x($geometry)
y($geometry)
2️⃣ 获取中心点坐标
x(centroid($geometry))
y(centroid($geometry))
3️⃣ 计算周长
perimeter($geometry)
4️⃣ 外接矩形面积
area(bounds($geometry))
5️⃣ 距离指定点
distance($geometry, make_point(117.123, 36.654))
示例:计算距泉城广场的距离。
🔢 六、条件判断类公式
1️⃣ IF 判断
if("height" > 50, '高层', '低层')
2️⃣ CASE 分类
CASEWHEN "type" = '住宅' THEN '居住区'WHEN "type" = '办公' THEN '写字楼'ELSE '其他'
END
3️⃣ Null值处理
coalesce("height", 0)
🌍 七、空间分析类公式(进阶)
1️⃣ 判断是否在某区域内
within($geometry, geometry(get_feature('study_zone', 'name', '泉城路街道')))
2️⃣ 判断是否相交
intersects($geometry, geometry(get_feature('road', 'name', '文化东路')))
3️⃣ 计算与另一图层要素的距离
distance($geometry, geometry(get_feature('school', 'id', 1)))
🎲 八、随机数与数值函数
1️⃣ 生成随机数
rand(1, 100)
随机整数。
randf(0.0, 1.0)
随机浮点数。
2️⃣ 四舍五入
round("height", 1)
保留 1 位小数。
🧠 九、综合实例:建筑风险等级评估
假设我们想根据建筑高度与使用年限自动分级:
CASEWHEN "height" > 60 AND (year(now()) - "built_year") > 20 THEN '高风险'WHEN "height" > 40 THEN '中风险'ELSE '低风险'
END
条件 | 输出 |
---|---|
高层 + 老建筑 | 高风险 |
高层 + 新建筑 | 中风险 |
其他 | 低风险 |
💡 十、实战建议与技巧
实用技巧 | 说明 |
---|---|
✅ 面积/长度计算请使用投影坐标系 | 否则结果可能以“度”为单位 |
🧮 建议新建字段保存结果 | 避免覆盖原始数据 |
📋 多用“函数帮助”窗口 | 可即时预览表达式用法 |
🔁 复杂判断优先用 CASE | 结构更直观,容错性更高 |
📚 结语
QGIS 字段计算器是 GIS 数据处理的核心工具,几乎可以完成数据清洗、自动计算、分类与空间关系判断等所有基础任务。
掌握本文列举的常用公式后,你可以轻松应对从数据准备到专题制图的各类操作。
🔗 推荐阅读
- QGIS入门教程系列①:界面与图层基础操作
- QGIS数据篇:导入Excel坐标生成点图层
- QGIS空间分析篇:缓冲区与叠加分析
🏷️ 标签建议
#QGIS
#字段计算器
#空间分析
#GIS数据处理
#地图制图