# Novel-Map

小说地图制作。

## Content

存放大唐双龙传小说内容。

## data

存放小说地理信息数据。

## frontend

存放前端代码。

## 技术路线设计

1. 数据提取层（最关键的一步）

问题：500万字远超上下文，需要分批处理。

方案：用 AI 逐卷/逐章提取结构化数据，输出 JSON：


// 每章输出一个这样的结构
{
  "chapter": "卷01-第01章",
  "locations": [
    { "name": "扬州", "aliases": ["江都"], "type": "city", "lat": 32.39, "lng": 119.43 }
  ],
  "factions": [
    { "name": "宇文阀", "type": "门阀", "territory": ["长安"], "key_figures": ["宇文化及","宇文伤"] }
  ],
  "events": [
    { "description": "宇文化及率五牙大舰沿运河南下扬州夺《长生诀》", 
      "from": "运河", "to": "扬州", "characters": ["宇文化及","张士和"] }
  ],
  "character_movements": [
    { "character": "寇仲", "location": "扬州城东废园" },
    { "character": "焦邪", "location": "扬州城外北郊" }
  ]
}
2. 地理编码层

建一个 地名→坐标 的映射表（隋唐古地名 → 现代经纬度）
仅第一章就涉及：扬州、长江、运河、丹阳、长安等
古今地名有差异（如"江都"="扬州"），需要一个 alias 映射

3. 可视化层（前端渲染）
推荐技术栈：

组件	技术	理由
底图	Leaflet + 古风地图瓦片	轻量、开源、可自定义底图样式
势力范围	GeoJSON 多边形 + 颜色编码	每个势力一种颜色
人物轨迹	Polyline + 动画标记	可做成带方向箭头的路线
时间轴	自定义 slider 或 noUiSlider	拖动时间轴看势力演变
数据格式	JSON 文件按章节组织	前端直接 fetch

4. 分步实施计划

Phase 1 (静态地图 - 前5卷)
  ├── Step 1: 逐章提取地名/势力/事件 → JSON
  ├── Step 2: 建立古地名坐标库
  ├── Step 3: Leaflet 静态地图 + 势力标注 + 人物位置
  └── Step 4: HTML 单文件，可直接浏览器打开

Phase 2 (动态演化)
  ├── 时间轴控件，按章节/卷切换
  ├── 势力范围随时间变化（多边形动画）
  └── 人物移动路线动画

Phase 3 (全书覆盖)
  └── 批量处理剩余58卷
