|
|
||
|---|---|---|
| backend | ||
| data | ||
| frontend | ||
| .DS_Store | ||
| .gitignore | ||
| CONFIG.md | ||
| DATABASE.md | ||
| PROJECT.md | ||
| README.md | ||
| ROADMAP.md | ||
README.md
Summit 14 Peaks - Phase 1 Complete! 🏔️
项目状态
✅ Phase 1 初步实现已完成
现在你可以在浏览器中看到:
- 🗺️ 基于 MapLibre GL 的交互式地图
- 🏔️ 5座8000米级雪山的标记和信息
- 📍 点击侧边栏山峰可飞行到对应位置
- 🖱️ 点击标记查看山峰详细信息
快速开始
1. 启动后端服务器
cd backend
source venv/bin/activate
python -m app.main
后端将运行在: http://localhost:8000
2. 启动前端开发服务器
cd frontend
yarn dev
前端将运行在: http://localhost:5173
3. 访问应用
打开浏览器访问: http://localhost:5173
当前功能
已实现 ✅
- MapLibre GL 地图初始化
- Esri World Imagery 卫星底图
- PostgreSQL + PostGIS 数据库
- FastAPI 后端 API
- 5座山峰数据 (Everest, K2, Kangchenjunga, Lhotse, Makalu)
- 山峰标记和弹窗
- 交互式侧边栏
- 飞行到山峰功能
数据库中的山峰
- Mount Everest (珠穆朗玛峰) - 8,849m
- K2 (乔戈里峰) - 8,611m
- Kangchenjunga (干城章嘉峰) - 8,586m
- Lhotse (洛子峰) - 8,516m
- Makalu (马卡鲁峰) - 8,485m
API 端点
GET /api/v1/peaks/- 获取所有山峰GET /api/v1/peaks/{id}- 获取单个山峰详情POST /api/v1/peaks/- 创建新山峰GET /health- 健康检查
下一步计划 (ROADMAP)
Phase 2: 地形数据处理
- 下载 NASA SRTM 珠峰地区数据
- 使用 rio-rgbify 处理地形数据
- 生成地形瓦片并部署
- 在地图上加载3D地形
Phase 3: 完整14座山峰
- 添加剩余9座8000米山峰数据
- 批量处理所有山峰地形
- 添加攀登路线数据
Phase 4: 视觉增强
- Three.js 自定义图层
- 攀登路线可视化
- 营地标记
- 光照和大气效果
技术栈
- 前端: React 18 + TypeScript + Vite + MapLibre GL + TailwindCSS
- 后端: Python + FastAPI + SQLAlchemy (Async)
- 数据库: PostgreSQL 15 + PostGIS
- 缓存: Redis 7
- 地图引擎: MapLibre GL JS (开源)
- 底图: Esri World Imagery (免费)
开发笔记
添加更多山峰数据
编辑 backend/seed_data.py 并运行:
cd backend
source venv/bin/activate
python seed_data.py
数据库管理
# 初始化数据库
python init_db.py
# 连接到数据库
docker exec -it postgis-db-1 psql -U postgres -d summit_db
故障排除
地图不显示?
- 检查浏览器控制台是否有JavaScript错误
- 确认后端API正在运行 (http://localhost:8000/health)
- 检查前端是否正确代理API请求
无法连接数据库?
- 确认PostgreSQL容器正在运行:
docker ps | grep postgis - 检查
.env文件中的数据库配置 - 确认端口5432未被占用
Redis连接失败?
- 确认Redis容器正在运行:
docker ps | grep redis - 检查
.env中的Redis配置
🎉 恭喜!你已经完成了 Phase 1 的初步实现!
现在可以在地图上看到山峰了,接下来可以继续实现地形瓦片处理和3D渲染。