# 广州塔国庆 AR 秀

> 围绕广州塔的国庆主题手机 AR 体验，做成微信小程序，用 EasyAR Mega 基于位置的 SLAM 定位。由广州市主要领导公开推介，按上线当晚六位数并发来设计。

- URL: https://oliverz.dev/zh/work/guangzhou-tower-national-day-themed-ar-show
- Author: Oliver Zhang (https://oliverz.dev)
- Language: zh-Hans
- Category: AR / 文化
- Year: 2024
- Role: 唯一开发者
- Client: 广州市政府
- Agency: Chance 3D
- Stack: AR, WeChat Mini-Program, EasyAR Mega, SLAM, Location-based

## 项目背景

广州希望国庆当天，市民拿手机对准广州塔，就能看到一个分五章的故事在塔身上展开。创意、叙事和视觉设计由 Chance 3D 负责，技术部分由我一个人承接：现场采集、建图、小程序运行时、AR 渲染，还有必须扛住上线当晚的基础设施。

![对准广州塔叠加的 AR 内容](https://oliverz.dev/works/guangzhou-tower-national-day-themed-ar-show/image1.png?v=76631839 "在夜里、在微信的运行环境里，把内容锚定到一座 600 米高的地标上")

## 为什么放在微信里就难了

在微信小程序里做地标 AR，等于和平台对着干。浏览器 AR 依赖的 WebGL 和 SLAM 接口，微信都没有开放，常规做法用不了。我最后用的是 EasyAR Mega 基于位置的视觉定位，先用 GPS 做一层判断，再通过小程序自己的渲染层画出来。

最直接的替代方案是做原生 App，这种规模的户外地标 AR 大多也是这么做的。我没有选。原生 App 意味着站在塔下、有点好奇的市民，得先装一个 App 才能看到内容，而国庆晚上几乎没人愿意迈过这道坎。小程序点一下就能打开。为了去掉安装这一步，接受一条更难的技术路线，整个项目就建立在这个决定上。

## 给一座 600 米的塔建图

我先去现场采集，建好 EasyAR Mega 地图，然后一遍遍回到现场，测在不同光线、天气和人流下定位还稳不稳。

地标这么大，任何想当然都会被打脸。游客站的距离和角度差别极大，塔身的灯光整晚都在变，到了上线那天，定位系统想看到的东西大半会被人挡住。这些坐在办公室里没法验证，只能一轮一轮去现场实测。

## 为上线当晚做准备

国庆晚上只有一次机会，面前同时是几十万人和市里的主要领导。后端出问题不是一张 bug 单，而是一起公共事件。

我的思路是默认网络一定会被挤爆，而不是指望它不被挤爆：资源大力压缩，前面挂 CDN，每一章的资源按需加载、针对手机流量做了调优，再加上降级方案，保证塔周围网络瘫掉的时候体验还能继续跑。

按微信和 EasyAR 后台的数据，上线当晚的会话和交互并发达到六位数。广州市委书记公开推介了这次活动。
