129 lines
3.1 KiB
Markdown
129 lines
3.1 KiB
Markdown
# Summit 14 Peaks - Phase 1 Complete! 🏔️
|
|
|
|
## 项目状态
|
|
|
|
✅ **Phase 1 初步实现已完成**
|
|
|
|
现在你可以在浏览器中看到:
|
|
- 🗺️ 基于 MapLibre GL 的交互式地图
|
|
- 🏔️ 5座8000米级雪山的标记和信息
|
|
- 📍 点击侧边栏山峰可飞行到对应位置
|
|
- 🖱️ 点击标记查看山峰详细信息
|
|
|
|
## 快速开始
|
|
|
|
### 1. 启动后端服务器
|
|
```bash
|
|
cd backend
|
|
source venv/bin/activate
|
|
python -m app.main
|
|
```
|
|
|
|
后端将运行在: http://localhost:8000
|
|
|
|
### 2. 启动前端开发服务器
|
|
```bash
|
|
cd frontend
|
|
yarn dev
|
|
```
|
|
|
|
前端将运行在: http://localhost:5173
|
|
|
|
### 3. 访问应用
|
|
打开浏览器访问: **http://localhost:5173**
|
|
|
|
## 当前功能
|
|
|
|
### 已实现 ✅
|
|
- [x] MapLibre GL 地图初始化
|
|
- [x] Esri World Imagery 卫星底图
|
|
- [x] PostgreSQL + PostGIS 数据库
|
|
- [x] FastAPI 后端 API
|
|
- [x] 5座山峰数据 (Everest, K2, Kangchenjunga, Lhotse, Makalu)
|
|
- [x] 山峰标记和弹窗
|
|
- [x] 交互式侧边栏
|
|
- [x] 飞行到山峰功能
|
|
|
|
### 数据库中的山峰
|
|
1. **Mount Everest (珠穆朗玛峰)** - 8,849m
|
|
2. **K2 (乔戈里峰)** - 8,611m
|
|
3. **Kangchenjunga (干城章嘉峰)** - 8,586m
|
|
4. **Lhotse (洛子峰)** - 8,516m
|
|
5. **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` 并运行:
|
|
```bash
|
|
cd backend
|
|
source venv/bin/activate
|
|
python seed_data.py
|
|
```
|
|
|
|
### 数据库管理
|
|
```bash
|
|
# 初始化数据库
|
|
python init_db.py
|
|
|
|
# 连接到数据库
|
|
docker exec -it postgis-db-1 psql -U postgres -d summit_db
|
|
```
|
|
|
|
## 故障排除
|
|
|
|
### 地图不显示?
|
|
1. 检查浏览器控制台是否有JavaScript错误
|
|
2. 确认后端API正在运行 (http://localhost:8000/health)
|
|
3. 检查前端是否正确代理API请求
|
|
|
|
### 无法连接数据库?
|
|
1. 确认PostgreSQL容器正在运行: `docker ps | grep postgis`
|
|
2. 检查 `.env` 文件中的数据库配置
|
|
3. 确认端口5432未被占用
|
|
|
|
### Redis连接失败?
|
|
1. 确认Redis容器正在运行: `docker ps | grep redis`
|
|
2. 检查 `.env` 中的Redis配置
|
|
|
|
---
|
|
|
|
**🎉 恭喜!你已经完成了 Phase 1 的初步实现!**
|
|
|
|
现在可以在地图上看到山峰了,接下来可以继续实现地形瓦片处理和3D渲染。
|