# ZeroZone Maps · 极光城互动地图

网站：https://maps.zerozone.art

首页为世界大地图：世界探索尚未开放，其他城邦和地点显示问号，只有极光城地图可进入。点击进入第二级的 luminex.html，可返回世界地图。

极光城保留三种联动视图：原画地图、分层平面、三维空间。包含 3 个城市层、19 个地点、3 张同源正投影平面，以及霓虹街内部 1F–3F 的独立规划图。

## 使用

点击区域或地点后，三种视图共用选中状态。三维模式可旋转、缩放、俯视和分层展开；平面模式可选区、测量模型单位距离，并下载 SVG / PNG。原尺寸美术图保留下载。

## 开发

Node.js 24（生产构建版本）：

```sh
npm ci
npm run build
npm test
```

构建输出 `dist/` 用于部署，同时生成可双击打开的世界入口 `index.html` 与城市地图 `luminex.html` 供本地检查。所有运行时依赖和资源均随站点发布，不需要 API 密钥。

- `city-model.js`：三维几何，三个城市层共用一套坐标。
- `CITY_DATA.json`：城市层、地点及其确定程度。
- `ART_MAP.json`：原画上的分区与地点索引。
- `export-plans.cjs`：从真实几何导出 X/Z 正投影与地点坐标。
- `plan-view.js`：原画、平面和三维的选区联动。
- `art/`：原尺寸美术，构建时生成网页 WebP 与缩略图。
- `plans/`：平面图与已有高清 PNG。
- `street/`：霓虹街内部 1F–3F 规划。

平面 PNG 是与当前模型哈希相符的已检查快照；修改模型后，运行 `npm run plans:render` 并目视检查 PNG（渲染环境需有中文字体）。

## 状态与精度

`formalApproved=false`，霓虹街为未来开放内容，当前游戏案例不可进入。平面图精确对应当前三维模型，单位为布局单位 `u`，不是实测米制尺寸。原画上的选区为美术索引，未完成透视标定。现有平面展示已建模外轮廓与屋顶，不表示未建模的完整室内结构。详情见 [PLAN_NOTES.md](PLAN_NOTES.md)。

霓虹街内部 1F–3F 与城市三层含义不同；街区旧坐标尚未标定到全城坐标。

## 发布

独立 Vercel 项目 `zerozone-maps`，构建命令 `npm run build`，输出 `dist`。GitHub `main` 通过 Vercel Git 集成触发生产部署。源素材视频、历史备份、私有交接记录及机器配置不进入发布目录。

原创设定与美术保留权利。Three.js 使用 MIT 许可，见 `vendor/THREE-LICENSE.txt`。

世界地图的未知轮廓与问号节点是展示布局，不代表定稿地理、正式城邦名称或城邦总数。开放状态由 WORLD_DATA.json 控制；当前仅 luminex.mapOpen 为 true。
