我打开手机地图,手指在屏幕上划拉两下,输入目的地的名字,一条蓝色路线就画出来了。这事现在简单得跟喝口水一样,但你有没有想过,这张地图到底是怎么来的?不是那种印在纸上的老地图,而是会说话、能导航、还能告诉你哪家店今天打折的在线地图。这背后藏着一整套技术,从卫星在天上拍照,到算法在地上算路,再到一群人在办公室里对着屏幕画线条,每一步都挺有意思的。

最早的地图,那是人拿着笔和纸,走到哪画到哪。画个村子,画条河,画座山,全靠两条腿和一双眼睛。现在呢?卫星在天上转,每天拍下海量的照片,分辨率高得能看清你楼下那棵银杏树是否已经变黄。但这些照片不是直接拿来用的,得先处理。你在地图上看到的道路、建筑、绿地,它们不是照片里自动长出来的,而是技术团队用算法从影像里提取出来的。比如卫星拍了一张图,算法先识别出哪块是路面,哪块是屋顶,哪块是树冠,然后把这些东西变成数据。这个过程叫“矢量化”,就是把照片里的像素点转化成有坐标、有属性、能计算的点、线、面。
这活儿看着简单,干起来却要命。你想想,一条马路在照片上可能断断续续,因为被树挡住了,或者有阴影覆盖。算法得靠周围的线索猜出这条路其实是连着的。更别提那些复杂的立交桥——一条路叠着另一条路,算法经常分不清哪条在上哪条在下。这时候就需要人来干活。地图公司里有一大帮人,他们日常就是对着屏幕,用鼠标把道路一根一根描出来,标上宽度、方向、限速。这些人的工作状态,和二十年前画纸地图的绘图员没什么两样,只是工具从笔换成了鼠标。我认识一个在百度地图干过这活的朋友,他说最怕画城中村的小巷子,弯弯绕绕的,卫星拍出来全是阴影,得靠现场拍照才能补全。他说他画过一条巷子,窄得连自行车都骑不进去,但地图上必须有它,因为有人住在那,点外卖得靠它。
数据弄出来了,还得让它“说话”。在线地图不是一张死图片,它是活的。你搜“附近奶茶店”,地图立马列出十家,还按距离排好序。这背后是索引和搜索技术。地图公司把每个地点都变成一条记录,存上名字、类别、坐标、电话、营业时间。你搜索时,算法先找到离你最近的坐标范围,再在这个范围里筛选出奶茶店,按距离排序。整个过程必须在零点几秒内完成,不然手机屏幕转个圈,你就没耐心了。这就像图书馆的管理员,你刚说“我要找一本关于恐龙的书”,他已经在书架间穿梭,三十秒之内把书递给你,还附带借书证填写指南。
但地图最让人上头的,还是导航。你开车上路,地图给你指路,说“前方三百米右转”。它怎么知道那条路没封?怎么知道哪条路堵?这得靠实时数据。现在的地图与路上的车、手机里的定位、摄像头拍的照片全都连在一起。你在路上开车,手机会自动把位置和速度发回去,地图公司收到上百万个这样的信号,就能算出哪条路车多、哪条路畅通。这个计算量巨大,必须用分布式系统来处理,否则你看到的路况已经是半小时前的了。高德地图的技术团队跟我说过一件事:有一次北京下暴雨,他们发现某条路的车速突然降到零,系统自动判断是积水封路,五分钟之内就在地图上标了红色,还帮后面的车重新规划路线。这活儿,人干不了这么快。
地图上的细节,比你想象的要多得多。你点开一个商场,不光能看到它在哪,还能看到每一层有哪些店,甚至能知道这家店的厕所是否干净。这些数据怎么来的?一部分是公司自己派人采集的。他们开着车,车顶装着摄像头,沿着路慢慢行驶,把沿途的店铺拍下来。另一部分来自用户。你在地图上给一家餐厅写个评价,说“这家酸菜鱼不错”,这条信息就会变成地图上的一个标签。更有意思的是,有些地图公司还搞了众包模式,让用户上传自己拍的照片、门牌号、路口景象,这些照片经过审核后会用来更新地图。就像每个人都在给地图添砖加瓦,你随手拍的一张照片,可能帮了下一个找路的人。
但地图这东西,做出来容易,维护起来难。城市每天都在变,今天新开一条路,明天拆一栋楼,后天路边多了个限高杆。如果地图不更新,你跟着导航开过去,发现路被封了,那感觉比吃了苍蝇还难受。所以地图公司必须有一套更新机制。大路、高速路的变化相对慢,一个月更新一次就够了。但像路边小店、小区里的新路口,变化太快,得靠用户反馈和实时数据来补。我有个朋友做地图数据维护,他每天的工作就是看用户报错信息:“这个地方路不通了”“这家店搬走了”“这个路口多了红绿灯”。他要一条条核实,然后手动修改数据。他说最崩溃的是,有时候刚改完,第二天用户又报错说改错了。这活看着琐碎,但少做一步,地图就会变成废纸。
还有一个事,很多人可能没想过——地图的坐标系。地球是个椭球体,不是平的。你拿手机看地图,屏幕是平的,但上面显示的位置必须从球面转换到平面。这个转换过程叫“投影”,不同的投影方式会导致不同的变形。在中国,用的是一种叫“GCJ-02”的坐标系,这是国家规定的,所有在线地图都必须使用。但卫星和 GPS 用的是“WGS-84”,世界通用的坐标。所以地图公司必须在后台做坐标转换,把 GPS 信号变成 GCJ-02 的坐标,否则定位会偏差几百米。这个转换公式是保密的,地图公司只能自己实现。有一次,我同时打开两个不同的地图 APP,发现同一个位置在两个地图上相差十几米,就是因为转换算法不一样。这小事,却能让你彻底迷路。
说到底,在线地图看起来是一个 APP,实际上是一个巨大的数据工厂。卫星在天上拍,算法在地上算,人在中间描,用户在路上跑,所有信息汇聚在一起,才变成你手机屏幕上那根蓝色的线。它不是什么魔法,而是一群人在背后用脚踩出来的、用眼睛盯出来的、用代码算出来的。下次你用它找到一家想去的店,或者顺利避开一段堵车时,稍微想一下,这张地图比你看到的要重得多。


行业动态