1.7 KiB
1.7 KiB
Web 导出原生道路 ZIP 包
Goal
让 road-compiler Web/CLI 以 root-flat native-road-package/v1.1 ZIP 导出人工编辑后的道路包。
Requirements
- 从 Web 当前编辑状态导出完整道路包,而不是源代码、npm 包或仅 overrides。
- ZIP 根直接包含
manifest.json,并包含全部 manifest 声明的layers/<source>.geojson、compiled.json、traffic-signals.json和 preview 所需的 signal / diagnostics 文档。 manifest.json的contract保持native-road-package/v1.1;新增可选generator元数据 记录应用版本和 revision,但不得让宿主依赖该版本。- Web 提供用户可见的下载操作;CLI 提供等价、可测试的 ZIP 导出入口。
- ZIP 条目顺序、JSON 序列化和压缩时间戳必须确定性,重复导出未编辑内容的文件 hash 一致。
Acceptance Criteria
- 从 Web 编辑后的区域可下载一个 root-flat ZIP,且无需宿主或 npm 发布。
- CLI fixture 导出 ZIP 后,解压内容通过 compiler 的
validatePublishedLayers()。 - ZIP 具有恰好一份 manifest 声明的 layer source,无额外 compiler source / overrides 文件。
- 两个有效区域导出的 ZIP 可被 p5b 导入并完成 Blender/Cesium/preview 构建。
- 不修改
compiled.json与 v1.1 manifest 的既有渲染语义。
Out of Scope
- 远程存储、上传、项目历史或多用户协作。
- 修改道路编辑器交互、几何算法或 manifest 主版本。
Key Decisions
- ZIP 是单个标准交付物,根目录平铺 package 文件,不包裹 area-id 顶层目录。
- ZIP 面向宿主消费,只携带已编译渲染/预览数据;编辑源、OSM 与 overrides 留在 road-compiler 项目中,不泄露为宿主依赖。