一张地图装下比利时全国公交:数据从哪来,实时有多实
ovlive 把比利时四家公交运营商的开放数据聚合成一张实时地图。本期聊聊 GTFS 与 SIRI 的取舍、'实时'与时刻表估算的差距,以及独立应用维护多数据源的真实成本。

今天聊一个看着很小、其实很硬的东西:HN 上刷屏的 ovlive,一张聚合了比利时全部火车、地铁、有轨电车和公交的实时地图。它不是官方产品,靠四家运营商的开放数据活着,小工具背后是数据协议、聚合成本和'实时'这个词的真实含义。我请来陈砚,他在一家出行科技公司做实时车辆数据管线,我们从这张地图聊到整个出行数据行业的碎片化。
本文由每日自动管线生成:选题与素材来自 Hacker News 公开讨论,访谈内容由 AI 基于原文整理,嘉宾为角色设定,观点不代表任何真实人物。
小听: 今天这个主角看起来很小:一张画满移动车辆的比利时地图。你第一次打开 ovlive,从数据的角度看到的是什么?
陈砚: 本质上是一个跨运营商的实时聚合层。比利时没有全国统一的一家公司:国铁 NMBS/SNCB、弗拉芒的 De Lijn、布鲁塞尔的 STIB-MIVB、瓦隆的 TEC,四家各跑各的系统、各发各的开放数据。ovlive 把四路数据拼成一张地图,火车、地铁、电车、公交都在上面动。看着只是个前端,真功夫是把四套异构数据对齐到同一个时空坐标系里。
小听: 评论区有条高赞玩笑:'很快我们就需要一张关于全世界所有实时地图的实时地图了。'你笑归笑,这句话戳中了什么?
陈砚: 戳中的是碎片化。每个国家、每个运营商都有自己的 App 和自己的数据出口,旅客一跨境体验就碎掉。这句玩笑反过来读就是:如果协议和标准足够统一,根本不需要每个国家重造一张地图。现在数据是开放了,但开放的姿势五花八门,聚合就成了每个想做的人都要重付一遍的体力成本。
小听: 那就引出 wvh 的老问题:数据来自一个跑统一开源协议的中心服务器,还是从一堆不同端点、不同格式里各自抓来的?
陈砚: 是后者,页脚的来源页写得很坦白:De Lijn、NMBS/SNCB、STIB、TEC 四路开放数据,独立应用,不隶属任何政府或运营商。没有一个中心服务器替你收拾好一切,每个源有自己的格式和刷新节奏。工程量集中在聚合层:坐标系统一、线路和站点 ID 对齐、时刻表与实时位置关联,全是脏活。

统一地图是体力活
小听: 协议这块评论区有篇长科普:美国主流是 GTFS 和 GTFS-RT,欧盟推 NeTEx 和 SIRI,还要求成员国建国家级数据枢纽。为什么消费级应用几乎都选 GTFS?
陈砚: 因为 GTFS 是拿表达力换简单。静态数据就是一包 CSV 压进 ZIP,实时部分用 Protobuf 走 HTTP 拉取,pull 模式对客户端极其友好,写个解析器是两天的事。SIRI 和 NeTEx 是 XML 家族,能表达故障、拥堵这类更细的语义,但建模和解析成本翻好几倍。所以不少欧洲系统干脆在前面架一层转换,对外也吐 GTFS——消费端生态在哪里,数据就往哪里流。
小听: 那代价呢?选 GTFS 意味着丢掉什么?
陈砚: 丢的是语义精度,而且正好落在评论区分歧的焦点上:'实时'到底是什么。jeffjeffersen 说他从来不敢信站台上的倒计时,rsynnott 回了一句大实话——你看到的很可能和官方 App 用的是同一份数据。很多所谓实时,其实是被延误信息修正过的时刻表,是预测而非车辆的真实位置。车辆级 GPS 流是另一档成本,运营商开不开、用多少精度开,直接决定下游所有实时地图的成色。

'即将进站'的第五分钟
小听: ovlive 页脚有个诚实的细节:四个来源的日期并不一致,De Lijn 标到 9 月 5 日,SNCB 停在 7 月 6 日。这说明什么?
陈砚: 说明四个源的更新节奏和口径根本不同频:静态路网有的月更、有的季更,实时流的延迟也各有水位。聚合方要按源维护新鲜度策略,过期怎么降级、怎么标注,都是看不见的成本。再加上独立应用没有官方 SLA,上游改个字段你就断——来源页那句'官方来源才是权威'不是客套,是把责任边界先讲清楚。
小听: jpoesen 引用的那句声明值得展开:不隶属任何政府、公共机构或运营商。'独立'这个身份除了情怀,还剩什么实际意义?
陈砚: 剩下的是信任和自由度。官方 App 有充分动机只讲自家的好话,独立聚合可以把四家摆上同一张地图公平呈现,哪里数据断、哪里陈旧一目了然。开放数据许可让这件事合法,但独立也意味着没有接口承诺、没有稳定性保证,全靠作者自己扛维护。所以这类项目在哪国都稀缺:技术门槛不高,耐心门槛极高。
小听: 最后替想动手的从业者问一句:如果想在自家城市复刻一个 ovlive,第一步该干什么?最该先搞定的是什么?
陈砚: 先去找数据出口,别先写地图渲染。查你所在的地方有没有 GTFS 或 SIRI 的开放端点,确认里面到底是修正过的时刻表还是车辆真位置,再决定你能对用户承诺什么。地图只是皮,数据口径才是里子。哪天我们不再需要'实时地图的实时地图',标准才算真的赢了。
一张地图的价值不在渲染,而在把四套异构数据流对齐到同一张桌面上的耐心:协议决定表达力的上限,数据口径决定'实时'的成色,独立决定你敢不敢把上游的不完美摆出来。感谢陈砚。本文观点仅代表访谈角色设定,原始讨论见参考链接。