三亩地 三亩地SAN MU DI · CODE DIARY
ARTICLE DETAIL

日记详情

真实记录编程学习的某一天,欢迎挑你感兴趣的翻一翻。

我做了一个能「飞」起来的企业店铺3D数字驾驶舱,现已开源

我做了一个能「飞」起来的企业店铺3D数字驾驶舱,现已开源

经常有人说,用 Vibe Coding 写出来的项目,大多只是「玩具」。

这话我认可一半。纯 AI 随手生成的 Demo,确实只能跑、只能看,落地即翻车。

但如果我们先搭好工程框架、定好规范与边界,再用 AI 辅助开发,最终落地的就是一个可商用、可迭代、可接入真实业务的正规项目

今天就分享我的实战项目——可自由下钻、动态交互的3D企业全国店铺驾驶舱,现已完整开源,新手也能全程借助 Vibe Coding 快速魔改落地。

从一个「解决痛点」的随性想法起步

这个项目的初衷,完全来自日常工作的真实痛点。

我们公司全国布局了大量门店与合作渠道,但以往的数据查看方式格外低效:要么是 Excel 里密密麻麻、难以直观感知的枯燥数据行,要么是 PPT 上一张静态的中国地图,只能简单标注点位、固定展示信息。

这些传统方式最大的问题是:只有数据,没有动态、没有层级、没有交互。看得见分布,看不懂差异;看得见点位,看不清细节。

于是我萌生了一个简单的想法:能不能做一个真正「活」的全国数据大屏?

打开浏览器,就能看到一整张立体逼真的3D中国地图,各省份门店体量、渠道规模,通过高度、色彩一眼区分;点击任意省份,镜头可以平滑「俯冲下钻」,精准聚焦对应区域,展开市级行政区划、展示门店明细、渠道数据,层层递进、清晰直观。

没有复杂的前期规划,没有完备的方案铺垫,我只认准一个目标:先让效果跑起来,再逐步优化成工程

也是这次开发,让我真正读懂了 Vibe Coding 的核心价值:哪怕你不懂图形学、记不住Three.js繁杂API,只要清楚想要的效果,就能用它快速魔改、迭代本项目,实现完整功能。而我本人则是通过规范的工程思维,搭建了这套可被低成本魔改的基础框架。

成品效果:一张会呼吸、可交互的3D地理地图

最终落地的成品,体验远超我的预期,彻底摆脱了传统数据大屏的呆板质感。

项目基于Three.js + d3-geo构建全新3D中国地图,将各省份做立体挤出建模,通过区块高度、渐变色彩双维度映射门店数量、渠道体量,数据体量越大的省份,视觉呈现越醒目,层级差异一目了然。

同时搭配全套流畅交互效果:鼠标悬停高亮定位、信息悬浮提示;省份点击触发镜头平滑飞行、区域聚焦下钻,精准切换至市级视图,搭配立体数据光柱、城市联动飞线动画,让静态的数据彻底「动」起来。

点击省份下钻到市级

整体技术实现不堆砌冗余功能,轻量化且实用,细节打磨十分到位:

  • 精准地理渲染:采用墨卡托投影算法,严格对齐地理中心,地图标准上北下南、比例无畸变,杜绝偏移失真问题;

  • 权威行政区划:省、市两级边界数据源自阿里 DataV GeoAtlas,完全贴合官方最新区划标准,边界精准无偏差;

  • 双底图切换:支持卫星、地形两种贴图模式,一键切换大屏展示风格,适配不同使用场景;

  • 动态视觉特效:全局边界流光描边效果,让整张地图动态灵动,自带「呼吸感」,告别静态大屏的僵硬质感。

项目采用主流前后端分离架构,技术栈成熟、适配企业开发场景:

前端:Vue 3 + Vite + TypeScript + Pinia,轻量化、高性能、易维护;

后端:FastAPI,目前采用 Mock 数据调试,已提前规范完整接口契约,可无缝对接真实业务数据;

工程层面配置开发态接口代理,前端 /api 路径直接代理至后端 8000 端口,彻底解决跨域问题,开箱即用。

跳出「玩具困境」:把 Demo 做成可落地的企业工程

聊回大家争议最多的「Vibe Coding 玩具论」。

我始终认为:AI 产出的不是垃圾,而是未加工的原材料不加梳理、不做规范的纯 AI Demo,确实只是玩具:数据硬编码、代码逻辑混乱、耦合严重,稍微调整需求就全线报错,完全无法落地。

但本项目的核心价值,就是用工程化思维,给 AI 生成的代码搭建规范框架,彻底实现「从玩具到商用工程」的升级,核心做对了两件事:

1. 锁定数据契约,前后端彻底解耦

我提前统一规范了全局接口路径与字段定义,前端仅对接固定接口:省份数据、城市数据、门店数据三大核心接口,路径、字段、返回格式全部固化。

现阶段后端为 Mock 模拟数据,后续需要对接企业真实数据库、内部业务系统时,仅需修改 mock_data.py 少量数据逻辑,前端代码无需改动一行,零成本完成数据迁移与业务对接。

2. 功能模块化拆分,低耦合易迭代

我将地图核心能力按职责拆分,每个文件各司其职、单一职责,彻底避免代码堆砌:

projection.ts 负责地理投影计算、provinceBuilder.ts 负责省份立体几何构建、cityBuilder.ts 专注市级下钻逻辑、camera.ts 管控镜头飞行动画、borderFlow.ts 实现流光特效……

结构清晰、边界明确,后续想要修改样式、优化交互、新增功能,按需改动对应模块即可,不会牵一发动全身

项目目录结构

这也是我想传递的核心思路:我负责搭建规范、可拓展的工程框架,Vibe Coding 则是使用者的绝佳工具,能大幅降低魔改、开发的门槛。依托这套完善的项目架构,普通人用Vibe Coding迭代出来的效果,不再是自娱自乐的Demo,而是能直接落地企业、支撑业务迭代的正规系统。

开源分享:欢迎所有人魔改、落地、复用

我选择开源这个项目,不是因为它已经完美无缺,而是因为我深知:脱离业务的大屏没有价值,被真实业务打磨的项目才会不断进化。

目前项目虽为 Mock 数据状态,但完整的交互逻辑、UI 效果、工程架构、接口契约已全部落地,非常适合二次开发、企业复用。大家可以按需实现这些场景:

  • 替换真实业务数据:接入自身企业的门店、渠道、区域运营数据,一键私有化部署,打造专属企业全国数据驾驶舱;

  • 自定义视觉样式:自由修改地图配色、底图风格、光柱形态、飞线效果,适配企业品牌视觉规范;

  • 拓展业务功能:可新增时间轴趋势分析、多维度数据筛选、报表导出、数据预警、权限管控等功能,按需迭代;

  • 直接落地使用:无需深度开发,部署后即可作为企业运营大屏、可视化展示屏幕使用,颜值与实用性兼备。

很多人觉得「企业级3D数字驾驶舱」是大厂专属、门槛极高,但亲身做完才发现:真正难的不是技术实现,而是敢于动手、落地实践的第一步。

快速上手部署

项目已完整开源,开箱即用,欢迎大家 Clone 体验、魔改迭代、提交 PR & Issue:

开源地址:https://gitee.com/saulCode/corporate-cockpit.git

部署命令:

git clone https://gitee.com/saulCode/corporate-cockpit.git cd corporate-cockpit/backend pip install -r requirements.txt python main.py cd ../frontend npm install npm run dev

启动完成后访问:http://localhost:5173,即可拥有属于自己的3D企业数字驾驶舱。

写在最后

这个项目带给我的最大收获,从来不是一个炫酷的3D大屏效果,而是一次实实在在的认知验证:

哪怕不是图形学专家,依托我搭建好的工程框架,搭配Vibe Coding辅助,普通人也能快速魔改、迭代出专业、可落地的企业级可视化项目。

Vibe Coding 能帮使用者快速完成魔改、新增功能、调试效果,而成熟的工程化结构、标准化设计、业务落地适配性,才是区分「玩具Demo」和「商用项目」的核心关键,这也是本项目最大的优势。

希望这个开源项目,能帮更多人降低3D数据可视化的落地门槛,也期待大家的魔改与优化,让它从我的个人项目,变成更多企业的实用工具。

下次再见!

← 返回列表