SuperAPI AI 工具集

qgis-syntax-expressions

写作与研究

查看项目

更新于 10-15 22:18

技能介绍

用途:在 QGIS/PyQGIS 中编写表达式,用于要素过滤、标注、符号化与字段计算,侧重减少语法错误与上下文配置错误。

主要能力:

  1. 表达式求值流程:QgsExpression 解析语法并构建 AST,QgsExpressionContext 提供变量与字段,QgsExpressionContextUtils 追加全局/项目/图层/要素作用域,evaluate 执行,hasEvalError 检查运行时错误。
  2. 语法速查:双引号引用字段名,单引号写字符串;支持 NULL 判断、比较、AND/OR/NOT、算术、LIKE/ILIKE/正则、|| 拼接、CASE WHEN 及 $area、$length、$x、$y、$geometry 等几何变量。
  3. 常用函数:数学、字符串、类型转换、日期时间、几何、聚合、条件、数组、Map/Record、颜色等。
  4. 关键警告:创建后检查 hasParserError,求值后检查 hasEvalError;引用字段必须配置适当作用域;循环中需先 setFeature;自定义函数内用 QgsMessageLog 而非 print;@qgsfunction 应指定 referenced_columns,访问几何时设置 usesgeometry=True。
  5. 常见模式:解析并求值、基于表达式的要素过滤、字段计算器、表达式标注、数据定义符号化、自定义表达式函数。
  6. 作用域层级:全局→项目→图层→要素,变量同名时更具体者生效;可设置全局、项目、图层变量。
  7. 聚合表达式:aggregate() 及 sum/count/mean 等简写,建议使用 filter 参数限制范围以避免性能瓶颈。

用法要点:字段用双引号,字符串用单引号;过滤可用 QgsFeatureRequest.setFilterExpression;标注设置 fieldName 与 isExpression=True;符号化用 QgsProperty.fromExpression;自定义逻辑用 @qgsfunction 并注册。

限制:资料未提供价格、收费、平台、效果承诺及安装步骤;具体 API 以附带的 references 与官方文档为准。