# NavSea Geometry Enablement ## 目的 为 `navsea_detection_objects` 补上真实 geometry,并在数据库中启用真正的空间索引能力。 ## 当前现状 当前 `pbf_analysis` 库中没有真实坐标 geometry 列,只有: - `feature_id` - `z/x/y` - `vt_layer` - `geom_type` 因此当前系统只能做: - 语义分类 - tile 级查询优化 - 基于 `z/x/y` 的近似空间诊断 不能做: - 真正的半径查询 - 真正的航线走廊查询 - 真正的船首前方空间查询 - 真正的 `SPATIAL INDEX` 查询计划 ## 启用方式 使用脚本: ```bash .venv/bin/python navsea_geometry_enable.py ``` 默认要求数据库中存在 staging 表: ```text feature_geometry_stage ``` 可以通过环境变量改名: ```bash NAVSEA_GEOMETRY_SOURCE_TABLE=your_table .venv/bin/python navsea_geometry_enable.py ``` ## 支持的 staging 结构 脚本支持以下任一输入形式: ### 1. 直接 geometry 列 ```sql feature_id BIGINT geometry GEOMETRY ``` ### 2. WKT ```sql feature_id BIGINT geometry_wkt LONGTEXT ``` ### 3. WKB ```sql feature_id BIGINT geometry_wkb BLOB ``` ### 4. 点坐标 ```sql feature_id BIGINT lon DOUBLE lat DOUBLE ``` 仅适用于 Point 类对象。 ## 脚本输出 如果 staging 表满足要求,脚本会创建: - `navsea_feature_geometry` - `navsea_detection_objects_spatial` 其中: - `navsea_feature_geometry` 保存真实 geometry,并建立 `SPATIAL KEY idx_geometry` - `navsea_detection_objects_spatial` 是 `navsea_detection_objects` 的空间版只读视图 ## 推荐的后续查询 当 geometry 可用后,可以在 `navsea_detection_objects_spatial` 上执行: - 半径查询 - 航线缓冲带查询 - 前方扇形查询 - 空间相交 / 邻近查询 ## 当前阻塞 当前唯一阻塞不是脚本,而是缺少 geometry staging 数据源。