【Code with SOLO】用 SOLO 快速构建 3D 地球旅行足迹记录
文章目录
📝 摘要
使用 TRAE SOLO 在短时间内完成了一个基于 Vue 3 + Three.js 的交互式 3D 地球旅行足迹记录网页。实现了全球 50+ 著名地标的标记展示、点击交互、平滑飞行动画等功能,打造了一个沉浸式的旅行足迹浏览体验。
🎯 背景
我是一名Web开发者,平时经常需要开发各类数据可视化项目。最近突发奇想,需要创建一个展示全球旅行足迹的 3D 地球相册。传统开发方式需要从零开始配置项目、编写大量 Three.js 代码,耗时较长。这次尝试使用 TRAE SOLO 来加速开发过程。
🚀 实践过程
任务拆解
- 项目初始化:创建 Vue 3 + TypeScript 项目,配置 Vite 构建工具
- 3D 地球渲染:使用 Three.js 创建地球模型,添加纹理和大气层效果
- 标记点系统:实现全球地标标记,包括位置计算、3D 模型创建
- 交互功能:实现点击标记点显示详情、平滑飞行到标记点位置
- 响应式设计:适配 PC 端和移动端的显示
SOLO 能力应用
- 代码生成:SOLO 帮助生成了 Three.js 初始化代码、地球渲染逻辑、标记点创建等核心代码
- 问题排查:在遇到标记点位置偏移、旋转方向错误等问题时,SOLO 帮助分析并提供解决方案
- 样式优化:根据我的需求,SOLO 提供了响应式设计方案和美观的 UI 样式
- 代码审查:对生成的代码进行审查,确保类型安全和代码质量
关键过程
1. 项目初始化
npm create vite@6.5.0 . -- --template vue-ts
npm install three @types/three tailwindcss@3 lucide-vue-next
2. 地球渲染
// 创建地球几何体和材质
const geometry = new THREE.SphereGeometry(1, 128, 128);
const material = new THREE.MeshStandardMaterial({
map: earthTexture,
bumpMap: heightmap,
bumpScale: 0.05
});
const earth = new THREE.Mesh(geometry, material);
3. 标记点创建
// 经纬度转三维坐标
function latLngToVector3(lat: number, lng: number, radius: number) {
const phi = (90 - lat) * (Math.PI / 180);
const theta = (lng + 180) * (Math.PI / 180);
return new THREE.Vector3(
-radius * Math.sin(phi) * Math.cos(theta),
radius * Math.cos(phi),
radius * Math.sin(phi) * Math.sin(theta)
);
}
踩坑经历
- 标记点位置偏移:最初标记点位置计算错误,导致标记点偏离正确位置,通过调整经纬度转换公式解决
- 标记点不随地球旋转:发现标记点被添加到了 scene 而不是地球组中,修改后解决
- 图片加载失败:尝试使用 Wikimedia 和 Pixabay 的图片链接,由于网络问题最终清空,准备后续接入图床

📸 成果展示
功能特性
- ✅ 沉浸式 3D 地球:高精度地球模型,支持旋转、缩放
- ✅ 50+ 地标标记:全球著名风景名胜古迹标记
- ✅ 智能排序:以北京为起点向西环绕地球排序
- ✅ 交互体验:点击标记点查看详情,平滑飞行动画
- ✅ 响应式设计:PC/移动端自适应
项目结构
src/
├── components/
│ ├── Earth3D.vue # 3D 地球主组件
│ ├── FootprintList.vue # 足迹列表组件
│ └── FootprintPop.vue # 详情弹窗组件
├── utils/
│ ├── globeMarker.ts # 标记点工具类
│ ├── travelLocation.ts # 50+ 地标数据
│ └── mapTexture.ts # 地图纹理工具
└── assets/
├── img/ # 地球纹理图片
└── json/ # 边界数据
运行方式
# 安装依赖
npm install
# 开发模式
npm run dev
# 构建生产版本
npm run build
💡 效果与总结
提效成果
- 传统开发:预计需要 2-3 天
- SOLO 辅助:实际用时约 4 小时
- 提效率:约 85%
SOLO 的价值
- 代码生成:快速生成基础代码框架,节省重复劳动
- 问题排查:遇到问题时提供快速解决方案
- 方案设计:提供架构设计建议和最佳实践
- 学习辅助:帮助理解 Three.js 复杂概念
可复用方法
- 3D 场景初始化模板:可以复用在其他 Three.js 项目中
- 经纬度转三维坐标:通用的地理坐标转换函数
- 响应式布局方案:PC/移动端适配的通用模式
🔗 项目链接
🎉 感谢 TRAE × 脉脉「AI 无限职场」SOLO 挑战赛提供展示机会!
END .
相关系列文章
- 【Code with SOLO】用 SOLO 快速构建 3D 地球旅行足迹记录
- 「学习笔记」大模型GraphRAG(知识图谱增强检索)
- 「学习笔记」Milvus 向量数据库入门
- 「学习笔记」向量数据库 (Vector Database)
- 「学习笔记」大模型RAG(检索增强生成)
- 「学习笔记」大模型提示工程(Prompt Engineering)
- 「学习笔记」大语言模型(LLM)原理
- 「学习笔记」AI大模型基础