有一种炫耀只属于骑行者:骑完一趟,打开地图,发现它拼出了一个字。一个词。一颗心。一辆大致像样的自行车。人们做这件事已经很多年了——盯着城市街道图,一个弯一个弯地手工规划。用一个晚上做这件事很美好,用三个晚上做就很折磨。

所以我们做了 Route Art 输入一个词,它就会找出一条沿着你附近真实街道描出它的骑行路线。你打字的同时它就开始工作了——不用去找什么按钮。

它能做什么

输入 你好。你还在打字的时候,形状就以虚线轮廓出现在地图上——那是目标。你停下来之后片刻,路线就出现在下面,沿着真实的道路和自行车道。

然后它会做一件我们挺得意的事:如果结果一般,它会悄悄在附近找一个更好的位置,如果更好就换过去。你不用开口。

你也可以上传一幅画。SVG 效果最好,因为它保留了画作真实的线条。PNG 或 JPG 也可以——会被自动描出来。

满意之后,看它画出来 会一笔一笔地回放路线,让你看到这个词像在骑行记录里那样浮现。然后下载 GPX,出发。

为什么这件事比看上去难

我们的第一次尝试把形状交给了一个普通的路线引擎,就是那种告诉你怎么去超市的。回来的是一堆读不出来的方块。

一旦看明白,原因很简单。普通路线引擎优化的是位移:它想要从 A 到 B 最快、最合理的走法,于是它选主干道、选转弯最少的路。在方格路网里,两点之间有很多同样快的走法——而「哪一条看起来像字母 H」不在它关心的范围内。

所以路线引擎必须换掉。Route Art 跑在我们自己的街道地图上,代价函数在乎的是形状:每一条路都按它偏离你要画的那根线有多远来定价,范围限定在这根线周围一条窄走廊内。沿着你笔画走的路很便宜,离开它的路很贵。这个思路来自 Waschk 与 Krüger 2019 年关于 GPS 艺术自动路线规划的论文,他们正是指出了现成路线引擎的这一缺陷。

有一课我们学得很辛苦:光靠自行车道不行。 悉尼市中心的自行车网络很密集,却碎成了数百个互不相连的片段——你没法在碎片上画出连续的一笔。所以连通性由道路提供,自行车道则成为路线在力所能及时偏向的一种偏好。

评分是诚实的,有时诚实得残酷

每个结果都会得到一个描绘评分,而让这个数字和你眼睛看到的一致,比路线算法本身还费工夫。

我们的第一版只问一个问题:路线离形状有多近?它给明显什么都不像的结果打了 84 分。一条路线可以沿着你的线来回折返,黏在字母的一端而忽略其余部分,却仍然在「贴近程度」这一项上得分漂亮。

所以现在评分问三个问题:路线是否留在形状上,它是否真的走遍了形状经过的每个地方,以及它比图形本身长了多少?一条比图形长两倍半的路线就是涂鸦,不管它贴得多紧。

数字下面还有一句大白话的判断——清晰可读能读但松散,或不像这个形状。我们宁可告诉你它没成功,也不愿递给你一个看起来很自信的数字。

真正决定好坏的是什么

我们认真测了,而不是凭感觉猜,有些结果让我们意外。

放在哪里比其他任何因素都重要。 同一个词挪开几个街区,分数可能差二十分。所以帮我找个更好的位置才是值得按的按钮:它会搜索你周围的街道,并且始终把你现在的位置也算作候选,因此只可能变好。任何手动调整都比不上它。

尺寸主要是在避免灾难,而不是创造惊艳。 每个字母多留点空间确实有帮助,但它真正的作用是挡住糟糕的结果:局促的形状有时会明显失败,宽裕的则不会。工具会替你决定文字大小,你不用管它。

有两件我们很确信的事,其实没用。 我们试过把字母改成方正的直线造型以贴合方格路网——在十六次测试中没有可测量的差异。我们试过更宽更矮的字母——同样没有。街道与街道之间的差异比这两个效应都大,这是个很好的教训:别相信单独一个漂亮结果。

关于距离,请对自己诚实

下面是没人会提的部分。一个大到能读出来的词,是一趟正经的长途。

字母需要空间才能辨认,而空间是用公里计的。城市尺度上五个字母的词更像是一场活动,而不是一个下午——工具会毫不犹豫地给你五十公里和四小时的预估。它会在你做决定之前把距离和时间摆出来,据我们所知,其他 GPS 艺术工具都没有这么做。

其中一部分我们已经追回来了。路线现在会算出笔画的最佳顺序,以及每一笔该往哪个方向骑,在一个测试词上把字母之间的空跑距离减少了将近 40%——整趟骑行大约省下 15%,且图形毫无损失。但剩下的就是纯粹的几何:可读性是要用公里换的。

从短的开始。 是一个完全体面的第一次尝试。

试试看

Route Art 现已上线——免费、无需注册、自行车路线,而且在你打字时全部运行在你的浏览器里。

几点值得知道的:

  • 先输入短的。 两三个字母就能让你看清本地街道的能耐,再决定要不要挑战一句话。
  • 帮我找个更好的位置 这是现有最大的改进,而且不可能让结果更差。
  • 先看距离再兴奋。然后再看一遍。
  • 下载 GPX,像任何其他路线一样导入你的码表或手机。

如果你做出了漂亮的一个,我们很想看看。记得 @partyonbici——如果你所在城市的街道就是不配合,那不是你的问题,是路网的问题,我们都经历过。

画点什么 →