核心用法
geojson 是一个专注于 GeoJSON 数据只读分析的轻量级技能,无需重型 GIS 软件即可快速完成结构验证与统计摘要。
主要功能
- 结构验证:检查 JSON 是否符合 GeoJSON 规范(FeatureCollection、Feature、Geometry 层级)
- 内容摘要:统计要素数量、几何类型分布(Point/LineString/Polygon 等)
- 边界框计算:自动从坐标推算 bbox
- 坐标审查:标记经度/纬度范围异常(如 >180° 或颠倒顺序)、提示
lon,latvslat,lon混淆风险 - CRS 安全提示:说明 EPSG:4326 假设的适用场景与局限
显著优点
- 零配置依赖:仅需 Python3,无需 QGIS/PostGIS 等重型环境
- 快速反馈:秒级完成大文件扫描,适合 CI/CD 数据管道前置检查
- 安全只读:明确承诺不修改源数据,降低误操作风险
- 多输入形式:支持文件路径或内联 JSON 字符串
潜在局限与风险
| 局限 | 说明 |
|------|------|
| 非确定性处理 | 明确排除重投影、裁剪、格式转换等操作,此类需求需转交 `qgis` |
| CRS 推断有限 | 现代 GeoJSON 通常无 CRS 元数据,工具仅基于坐标范围启发式提示,无法保证坐标系正确性 |
| 无空间运算 | 不支持面积、距离、拓扑关系计算 |
| 解析容错边界 | 对"能解析但结构可疑"的数据仅做标记,不强制阻断 |
适合人群
- 数据工程师:CI 流程中快速验证上游 GeoJSON 交付物
- 前端开发者:调试地图可视化前的数据预检
- 数据分析师:快速了解陌生数据集的空间范围与规模
- GIS 从业者:批量文件初步筛查,再决定是否需要专业工具深入处理
常规风险
- 坐标顺序误判:GeoJSON 规范为
[lon, lat],但部分数据源(如某些 Web API)习惯颠倒,工具提供启发式警告但非绝对判定 - 隐式 WGS84 假设:RFC 7946 默认 CRS 为 WGS84,但历史文件或特定领域数据可能偏离,高精度场景需人工核实
- 大文件性能:极大量坐标点可能导致 Python 内存峰值,建议分块处理或转专业 GIS 工具
与相关技能的分工
| 场景 | 推荐技能 |
|------|---------|
| 结构检查、快速预览 | **geojson**(本技能) |
| 重投影、裁剪、格式转换 | `qgis` |
| 坐标转地址/逆地理编码 | `geocode` |
| WGS84 专项 CRS 论证 | `wgs84` |
| CesiumJS 渲染逻辑 | `cesium` |