56 lines
1.0 KiB
Markdown
56 lines
1.0 KiB
Markdown
# 架构设计
|
||
|
||
## 数据流
|
||
|
||
CM93 原始目录
|
||
→ SourceScanner
|
||
→ DictionaryLoader
|
||
→ CellBinaryReader
|
||
→ FeatureDecoder
|
||
→ CoverageResolver
|
||
→ PrecisionProjection
|
||
→ ChartFeature Model
|
||
→ MySQLBatchWriter
|
||
→ MySQL 母数据库
|
||
|
||
## 分层
|
||
|
||
### `cm93`
|
||
只负责格式解析和坐标/几何语义,不知道 MySQL。
|
||
|
||
### `model`
|
||
定义稳定中间模型。
|
||
|
||
### `database`
|
||
负责 MySQL 5.7 写入、事务、批量提交和恢复。
|
||
|
||
### `cli`
|
||
只做命令组织。
|
||
|
||
## 数据库与 CM93 边界
|
||
|
||
写入数据库以后:
|
||
- geometry 已标准化为 WGS84 经纬度;
|
||
- 原始 CM93 元数据仍保留;
|
||
- 后续 PBF builder 不需要理解 CM93 二进制。
|
||
|
||
## Cell 事务
|
||
|
||
每个 cell 为独立事务边界:
|
||
|
||
DISCOVERED → IMPORTING → DONE
|
||
|
||
失败:
|
||
|
||
IMPORTING → FAILED
|
||
|
||
再次运行时:
|
||
- DONE 默认跳过;
|
||
- FAILED 可重试;
|
||
- 强制参数可重新导入指定 cell。
|
||
|
||
## Geometry
|
||
|
||
母数据库保留标准化 geometry,但不依赖 geometry 作为唯一事实来源。
|
||
原始记录和 source index 是审计入口。
|