用途:在用户已选定的引擎上完成空间 SQL 的编写、审查、调试与优化,不擅自更换引擎或重构整条数据链路。
主要能力:按引擎读取 references/spatial-sql.md 中的查询模式;当坐标或格式语义重要时参考 references/formats-and-crs.md;用户栈中有 dlt、Dagster、dbt、QGIS 或 Observable 时,读取 references/established-stack.md 明确职责与集成边界。保留用户既有工具、源端固定信息、GIS 正确性与可复现证据,不重复其 SQL、摄取或调度定义。
用法:先确认引擎与版本、可用空间函数、geometry 与 geography 类型、CRS/SRID、输入粒度、预期结果与规模,并查看现有查询与执行计划。不要假设不同引擎共享函数签名、边界语义或索引行为。精确表达空间关系,区分 intersects 与 contains/covers、边界包含、null/空/无效几何,以及多个空间匹配是复制实体还是产生单一归属结果。距离、面积和缓冲要使用目标单位与方法:EPSG:4326 的几何不会因数值阈值自动获得米单位;应使用引擎明确支持的大地测量/geography 操作,或选用覆盖数据已知范围且面积适用域的投影 CRS;未知或广阔范围的距离与距离内测试优先用引擎文档标明为大地测量的操作,不猜 UTM 带或国家网格;geography 类型不代表所有操作都是大地测量,缓冲等构造需逐操作核实;赋 SRID 不等于坐标转换,Web Mercator 不是通用度量分析 CRS。
优化:兼顾分析正确性与执行效率,考虑空间索引或候选过滤、谓词下推、分区裁剪与连接基数;表达式或类型转换可能使现有索引失效,应查看执行计划而非凭语法断言索引可用。
验证与限制:引擎可用时运行小型对照(符合与不符合条件的要素、边界、重复匹配),将实际执行证据与 SQL 审查分开报告;引擎不可用记为 not_testable,不算查询成功。返回修正后的 SQL、重要假设以及正确性和性能的简短说明;有界查询审查不建完整 GIS 项目,不静默改变度量、要素总体或权威几何。若任务扩展为引擎选型、共享系统设计或计算/存储/交付权衡,应交给已安装的 open-map-stack 或显式架构讨论;完整分析交给 generalist 或 reproducible-gis-project;有界任务无需项目模板、示例或 OpenMapStack CLI,也不自动安装同级技能。