伟大的雪山
 
 
 
 
 
Go to file
mula.liu d9ebbbf7d1 0.0.9 2025-12-09 00:51:14 +08:00
backend 0.0.9 2025-12-09 00:51:14 +08:00
frontend 0.0.9 2025-12-09 00:51:14 +08:00
.gitignore 0.0.9 2025-12-09 00:35:28 +08:00
CONFIG.md 0.0.9 2025-12-09 00:31:30 +08:00
DATABASE.md 0.0.9 2025-12-09 00:31:30 +08:00
PROJECT.md 0.0.9 2025-12-09 00:31:30 +08:00
README.md 0.0.9 2025-12-09 00:31:30 +08:00
ROADMAP.md 0.0.9 2025-12-09 00:31:30 +08:00

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)
  • 山峰标记和弹窗
  • 交互式侧边栏
  • 飞行到山峰功能

数据库中的山峰

  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 并运行:

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

故障排除

地图不显示?

  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渲染。