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