QGIS新手教程5:图层属性查询与表达式筛选技巧
✅ QGIS新手教程5:图层属性查询与表达式筛选技巧
字段筛选、表达式构建器、选择集操作一步到位!
目录
- ✅ QGIS新手教程5:图层属性查询与表达式筛选技巧
- 📁 一、示例数据准备(继续使用第四篇中的示例)
- 🧩 二、属性查询方法详解
- 1. 字段值筛选(Select by Expression)
- 2. 多条件组合查询(AND / OR)
- 🛠️ 三、表达式构建器技巧
- 🎯 四、选择集的进一步操作
- 🧰 附件
- 🧾 表达式构建器语法小卡片(QGIS 常用表达式)
- 🧠 结语引导
📁 一、示例数据准备(继续使用第四篇中的示例)
-
A图层(面):千佛山街道边界(已有)
-
B图层(点):历下区学校分布点位,
.xlsx
保存成.csv
,导入QGIS
可使用以下字段结构的CSV导入或模拟绘制:
name | type | lon | lat | remark |
---|---|---|---|---|
山东师范大学 | 大学 | 117.0608 | 36.6683 | 千佛山校区 |
山东师范大学附属小学 | 小学 | 117.0610 | 36.6678 | 附属小学 |
山东师范大学第二附属中学 | 中学 | 117.0620 | 36.6670 | 附中 |
山东省济南第一中学 | 中学 | 117.0577 | 36.6971 | 济南一中校本部 |
山东省济南燕山中学 | 中学 | 117.0600 | 36.6610 | 燕山中学 |
济南市文化东路小学 | 小学 | 117.0592 | 36.6660 | 公共小学 |
历下区盛景小学 | 小学 | 117.0580 | 36.6635 | 根据历下区门户名称 |
济南市大明湖小学 | 小学 | 117.0285 | 36.6815 | 接近大明湖景区 |
济南市汇泉小学 | 小学 | 117.0180 | 36.6260 | 历下区小学之一 |
济南市花园小学 | 小学 | 117.0420 | 36.6520 | 历下区小学之一 |
🧩 二、属性查询方法详解
1. 字段值筛选(Select by Expression)
-
工具位置:属性表 → 使用表单选择/过滤要素 → 按表达式选择
-
示例1:选出所有“中学”
"type" = '中学'
-
示例2:选出名字包含“小学”的学校
"name" LIKE '%小学%'
2. 多条件组合查询(AND / OR)
-
示例3:选出中学或小学
"type" = '小学' OR "type" = '中学'
-
示例4:选出小学中名称包含“文化”的学校
"type" = '小学' AND "name" LIKE '%文化%'
🛠️ 三、表达式构建器技巧
-
常用函数说明:
length("name")
:字段长度upper("type")
:转为大写left("name", 2)
:截取前两个字
-
示例5:选择学校名大于5个字且小于8个字的记录
length("name") > 5 AND length("name") < 8
-
示例6:对字段计算新值(在字段计算器中)
'历下区' || "name"
🎯 四、选择集的进一步操作
-
导出选择结果为新图层:右键图层 → 导出 → 保存选中要素为
-
使用“筛选器”限制显示内容:
- 图层属性 → 筛选器 → 输入表达式
- 图层属性 → 筛选器 → 输入表达式
-
快捷操作建议:
- Ctrl + F → 快速打开表达式选择器
- “表达式历史记录”可重复调用表达式
🧰 附件
- ✅ 提供一个
school_points.csv
文件(包含上表字段) - ✅ 提供完整表达式参考小卡片(如 PDF / 图片表)
接下来是表达式参考小卡片,我会为你整理为一组实用的查询表达式语法摘要:
🧾 表达式构建器语法小卡片(QGIS 常用表达式)
目的 | 表达式示例 | 说明 | ||
---|---|---|---|---|
筛选“大学” | "type" = '大学' | 精确匹配字段值 | ||
筛选包含“小学”名称 | "name" LIKE '%小学%' | 模糊匹配,%通配任意字符 | ||
多条件查询 | "type" = '小学' OR "type" = '中学' | 使用 OR 联合条件 | ||
组合 AND 查询 | "type" = '小学' AND "name" LIKE '%文化%' | 多条件精确匹配 | ||
字符串拼接新字段 | `‘历下区’ | “name”` | 拼接常量与字段值 | |
名称长度大于5字 | length("name") > 5 | 字符串长度判断 | ||
名称前两个字 | left("name", 2) | 提取字段左侧字符 | ||
转为大写比较 | upper("type") = '小学' | 大小写标准化 |
🧠 结语引导
下一篇我们将进入 图层样式与可视化表达 的世界,带你做出“高大上”的地图!