武漢CITY INSIGHT
CITY INSIGHT JOURNAL / 001

用开放数据与代码,制作一部武汉城市影片。

和 AI 一起,把武汉的江河、街区与历史,变成一段可以观看的城市故事。

开发手记 · 2026 年 10 月 27 日 · 持续更新

武汉长江大桥城市审阅场景
真实开发画面 · 原生 1080p 审阅帧,地标细节仍在打磨。
01 / THE IDEA

从一段城市视频,开始认识武汉。

最初的目标,是把清华 CMAB 建筑数据与 OpenStreetMap 地图结合起来,让武汉的城市结构变得可见。随着讨论推进,影片从 90 秒扩展到 3 分 30 秒:前 190 秒讲三镇、街区、工业和跨江交通,最后 20 秒留给武汉大学。

片头也从直接介绍两江交汇,改为先交代古城与商埠的来路。历史、地理和今天的生活,需要在一条叙事里接上。墨色、纸色和夜色提供不同观看气质;彩色草书“武漢”只用于城市标志,其余中文采用简体。

02 / OPEN DATA

先问清楚,数据里究竟有什么。

CMAB v7 提供建筑轮廓与估计高度。这里的“3D”主要通过代码把二维轮廓向上拉伸,不能把它理解成已经拥有每栋建筑的精细模型、屋顶或立面纹理。城区预览使用选定范围内的 20,089 条建筑记录,并非武汉全市的完整实景三维模型。

武汉大学的数据单独核查:文理学部范围内有 356 条 CMAB 建筑记录,拆分后形成 360 个多边形体块。“记录数”和“多边形数”统计对象不同,不能混为覆盖率。OSM 补充道路、水域、校园边界与地标位置;完整东湖关系另行下载组装,保留岛屿等内环。

校园的高程来自 Mapzen Terrain Tiles,按项目资料标注 USGS SRTM 来源。高程采样到本地网格,湖面保持水平;这仍是区域栅格数据,不是校园测绘模型。林地取自 OSM 标签,柔和混入地形着色,避免零碎的悬浮几何色块。

审阅版中的武汉大学、东湖与老图书馆
Campus review frame · roofs remain schematic / 校园审阅帧,屋顶仍为轮廓示意
03 / FROM MAP TO SCENE

从经纬度,到一座能被镜头观看的城市。

经纬度不能直接当作屏幕上的米制坐标。预处理先统一投影,再围绕城区和校园各自的中心转换为本地米制坐标,减少大数值带来的计算误差。河流多边形保留孔洞,道路转换为线,建筑轮廓按估计高度生成网格。

当前建筑高度在画面中作 1.8 倍视觉增强,便于广角镜头辨认体块;它不改变原始数据中的高度记录。阴影、环境遮蔽、雾和材质共同建立层次。老图书馆等校园地标的屋顶,依据真实轮廓与 OSM 颜色标签作着色示意,仍不等于精细建筑复原。

Three.js 负责三维场景,Canvas 负责片名、年代、标注与字幕。镜头位置和目标点由时间线驱动,缓动插值让镜头连续移动。成片画布固定为 1920×1080;网页预览可以降低三维渲染分辨率,照顾设备性能。

真实 CMAB 轮廓按估计高度拉伸的原理图
Actual footprint · schematic extrusion / 真实轮廓,拉伸原理示意
01开放数据
02投影与清理
03三维场景
04镜头与双语
05逐帧审阅
06编码与分发
04 / NARRATIVE

历史需要证据,也需要克制。

讲述覆盖三镇成形、1861 年汉口开埠、1924 年江汉关大楼落成、1890 年筹建汉阳铁厂、1954 年规划与 1957 年长江大桥,以及后续多中心城市结构。相关事实优先引用武汉市政府、规划部门、水务部门和学校的公开资料,文末列出链接。

现代建筑数据不能冒充某个历史年份的城市实景。历史段保留弱化的现状空间参照,并明确说明底图性质。没有依据的历史城界、工厂点位和装饰性圈线被撤去;大桥和江汉关的重点提示,也要等讲述到相应年代才出现。

05 / WATCH · RECORD · REVISE

完整看完,记下问题,再一起修。

早期版本在 00:30—01:40 过度靠近河面:讲的是三镇与街区,观众却看不到全貌。另一些辅助图形没有清楚含义,只增加了理解负担。图中保留同一讲述时段的真实开发记录:中文对比展示广角修正之后的标注调整,英文对比保留更早的局部构图。

早期版本的局部河面画面
修改前 · 广角修正后的叙事图形,00:48
修改后可见三镇与两江交汇
修改后 · 年代与讲述对应,00:48

审阅方法也随之改变:冻结一版,从片头连续看到片尾,阅读完整中英文文案,记录构图、叙事、地标、字幕、转场和播放器问题,然后集中修改。下一轮再完整复看,避免“发现一个就修一个”打断判断。

程序逐帧检查 6,300 个时间点的镜头与字幕约束;输出帧还要逐张解码,检查尺寸、缺帧与空白异常。完整播放和一秒一张的缩略图帮助检查节奏。这些检查互相补充,自动通过不代表历史内容和艺术效果已经得到证明。

06 / TWO LANGUAGES

让声音跟上画面,也给城市留下呼吸。

中英文共享同一条章节时间线,语言切换时字幕与旁白一起切换。旁白使用标准普通话男声与英式英语男声候选。根据试听反馈,语速再降低约 12%;时间紧的句子同步精简字幕,不用强行加速把话塞回去。

背景音乐由代码原创合成:以 72 BPM 的节奏、钢琴式音色、持续和声与轻脉冲,陪伴城市从古城、商埠进入工业与跨江发展。配乐在旁白期间降低音量,片尾逐渐收束。它没有使用参考影片的原声音乐。

功能同步、音量峰值和时长可以用程序检查;音色、停顿和纪录片式的舒展节奏,还需要实际试听。旁白的节奏修订与画面审阅分别记录,方便后续继续改进。

07 / THE PLAYER

从一张好看的画面,到一个能用的播放器。

播放器要处理的不只是播放按钮:全屏后进度条和清晰度仍须可用,移动端要有足够大的触控区域,语言切换要保留观看位置,旁白和配乐也不能各走各的时间。

测试覆盖桌面浏览器、390×844 竖屏与 844×390 横屏视口。可见控件的触控区域至少 44px,窄屏提供独立可读字幕。视口模拟不等于已经验证所有 iOS、Android 实机行为。

文件分发采用腾讯云广州 COS。原生 1080p 母版再输出 720p 与 480p,使用适合浏览器的 MP4、H.264 与 AAC。文件名附带内容哈希,清单记录语言、主题、尺寸和地址;跨域读取与 Range 分段请求分别核对。旧 15 秒样片和 3 分 30 秒审阅版必须明确区分。

08 / STILL IN PROGRESS

把完成和待完成,都写清楚。

目前可以查看完整章节预演、真实数据场景、双语字幕与旁白候选、原创配乐,以及播放器交互。历史段的全貌构图、地标提示时机和校园结尾已按审阅清单集中调整。

影片与本页一同发布在 city.dpinsight.world,高清文件由广州 COS 分发。接下来仍会继续打磨精细地标、校园屋顶与地形,并补充实体手机长测。文中开发画面保留其当时状态,不代表已经拥有所有建筑的精细模型。

DATA / REFERENCES

数据、史料与技术引用。

数据许可分别遵循原始发布方要求。建筑估计高度、示意屋顶、历史解释与当前建成环境,在文中及影片里分别说明。

  1. 武汉市概况:城市沿革 ↗
  2. 武汉三镇规划历史漫步 ↗
  3. 建国以来历年武汉城市总体规划成果 ↗
  4. 江汉关大楼落成百年 ↗
  5. 汉阳铁厂工业遗产:文旅局提案答复 ↗
  6. 武汉长江大桥 ↗
  7. 见证武汉江滩蝶变历程 ↗
  8. 黄鹤楼公园管理处:始建与重建 ↗
  9. 武汉大学百年校史 ↗
  10. Mapzen Terrain Tiles / USGS SRTM ↗
  11. OpenStreetMap · 版权与 ODbL ↗
  12. Three.js · 官方文档 ↗
  13. FFmpeg · 官方文档 ↗
  14. edge-tts · 项目文档(标准神经语音客户端) ↗
  15. CMAB v7 · Zhang, Zhao & Long · CC BY 4.0 ↗

WUHAN / BETWEEN THE RIVERS

城市值得慢慢看,开发也是。

回到武汉影片 ↗

本文由 AI 协助整理,依据本项目的数据审计、代码和实际审阅记录撰写。