75 lines
2.2 KiB
Markdown
75 lines
2.2 KiB
Markdown
# 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卷
|