Mapquest的工作原理
1. 引言 2. MapQuest的技术 3. 地理编码 4. 使用MapQuest
5. 其他MapQuest应用程序 6. MapQuest的错误
引言
MapQuest绝对称得上是一个精彩绝伦的网络地图程序。它的主要功能包括:FindIt,可以找出特定区域内的商业设施;地图,根据地址、城市、邮编或经纬度创建一个位置地图;以及行车指引,可根据你提供的地址信息生成从A点到B点的行车路线。它可以生成两所住宅之间、两个城市之间或者从Vancouver的一个购物商场到佛罗里达某个机场的行车路线,并且估计出到达目的地所需的时间。
MapQuest.com如何确定“理想”路线?有哪些最常见的错误?为何会发生这些错误?在本文中,让我们来看看MapQuest.com背后的秘密,了解它如何提供地图和方向指示,以及其他一些不太为人所知的应用程序。
MapQuest绝对称得上是一个精彩绝伦的网络地图程序。它的主要功能包括:FindIt,可以找出特定区域内的商业设施;地图,根据地址、城市、邮编或经纬度创建一个位置地图;以及行车指引,可根据你提供的地址信息生成从A点到B点的行车路线。它可以生成两所住宅之间、两个城市之间或者从Vancouver的一个购物商场到佛罗里达某个机场的行车路线,并且估计出到达目的地所需的时间。
每天,MapQuest.com生成约500万张地图和大约700万条行车路线。MapQuest需要处理大量数据——它提供街道级别的美国、加拿大、法国、英国、德国、意大利、奥地利、比利时、丹麦、卢森堡、荷兰、瑞士和西班牙地图,并且提供世界其他国家/地区的城市级别的地图。这些地图的来源包括MapQuestand为其印刷出版物自行建立的绘图数据、来自其他数字地图公司(例如NavTech和TeleAtlas)的信息以及诸如美国邮政服务这样的政府机构编撰的数据库。MapQuest每三个月更新一次数据,根据各个地图来源提供的信息添加新数据或修正数据。
MapQuest的技术
正如大多数人知道的,MapQuest的34台服务器在维吉尼亚州的AOL数据中心进行托管。这34台服务器负责处理即时创建地图和行车路线所需的所有数据以及相关计算工作。这些服务器的具体任务细分如下:
- 15台服务器生成地图
- 15台服务器处理地理编码工作(将地址与经纬度坐标进行匹配)
- 4台服务器创建行车路线
每台服务器都是一个自给自足的单元,存储的信息与所在任务组中其他服务器上存储的信息完全相同。如果你要求MapQuest生成行车路线,在行车路线最终显示在屏幕上时,会用到15台地理编码(我们将在下一节中讨论地理编码)服务器中的一台服务器,15台地图生成服务器中的一台服务器以及四台路线生成服务器中的一台服务器。
MapQuest的路线生成算法会查找两点之间所有可能的路线,并通过在行程的每个阶段权衡某些因素来挑选一条路线。其目标是选出一条最快、最直接的路线。它会考虑道路类型(例如,如果有高速公路或土路供选择,它会选择高速公路)、转弯的数量、道路流量和交叉口数量等因素。在为行程的每一步选择了理想路段之后,它会提供一条完整的行车路线。
MapQuest将所有这些数据输入到自己的技术基础结构中,以便将数据转换为地图和方向指引并显示在MapQuest.com上。让我们看看在这个过程会涉及哪些工作。
当MapQuest路线生成服务器生成一条路线时,它还会计算出预计的行车时间。行车时间是根据各个路段的行车速度(通常是规定的速度上限)和通过各个交叉路口所需的时间计算得出的。MapQuest的市场营销主管Jim Greiner说,“根据转弯的类型(左转、右转或十字路口)以及交叉路口处的道路数量、类型和形状”来计算通过交叉口所需的时间。例如,软件假设从辅路左转弯进入主路要比从主路右转弯进入辅路花费更多的时间。
为了在地图上标出位置或提供从一点到另一点的行车路线,MapQuest必须首先将街道地址转换为经纬度坐标。这个过程称作地理编码。
地理编码
地理编码指的是将一对经度/纬度值指定给某个街道地址的过程。结果不一定很精确——地理编码过程会根据可用信息做出尽可能准确的判断。MapQuest使用多种方法之一来完成地理编码工作。
地址插值
这种方法可提供最精确的结果。在地址插值过程中,街道被分割成多个段,每段都有个关联的地址范围。MapQuest的软件基于给定地址应该位于的街道段,有根据地猜测给定地址的位置。例如,假如你要求MapQuest显示“加利福尼亚好莱坞榆树街25号”这个地址的位置。地理编码服务器会要求地图生成服务器提供与好莱坞的榆树街最匹配的数据。然后,它会找到街道一侧的地址范围为(1到49)而另一侧的地址范围为2到50的街道段。它假定25位于该街道奇数一侧的中间位置,并在与该位置对应的经纬度坐标上定位该地址。
如果它不能使用插值方法对某个地址进行地理编码——通常是因为数据库中没有收录该街道或者给定区域中具有多个同名街道——服务器会尝试使用交叉点匹配(如果地址位于美国之外)或邮编区域(如果地址位于美国国内)方法。
交叉点匹配
为了使用交叉点匹配方法对地址进行地理编码,MapQuest需要找到两个街道段:一个街道段位于MapQuest设想的该地址所在地的附近,而另一个街道段则与该街道段相交。然后,它假定该交叉点是与给定地址最接近的交叉点,并对其进行地理编码。在这种情况下,MapQuest会生成标出了该交叉点的地图,或者根据该交叉点来生成行车路线。
邮编区域
在美国,每个地址都有一个与城市特定区域对应的邮政编码。邮编区域是与五位数、七位数或九位数邮政编码对应的一个区域。大多数人都熟悉五位数邮编,但是这些邮编实际上可划分为更小的“邮编+2”区域和甚至比这还小的“邮编+4”区域。“邮编+4”区域使用九位数邮编,你有时会在官方文档中看到这种邮编,它通常只包括10户家庭(你可以使用USPS邮编查询来查找你所在地址的“邮编+4”代码)。如果MapQuest可以找出该地址所在的九位数邮编区域,它就可以计算出与该区域中心对应的经纬度坐标。下一步是尝试在“邮编+2”区域中定位该地址,然后最后找到基本的五位数邮编区域(一个面积很大的区域)。后面这两种方法不会返回很精确的结果。
现在,你已经了解了MapQuest生成地图和行车路线的方法,下面让我们看看如何使用MapQuest.com得到所需的信息。
使用MapQuest
让我们使用MapQuest来规划到达位于乔治亚州亚特兰大的博闻网合作伙伴howstuffworks的行程。我们开始进行规划所需的所有东西都位于主页的右侧:
我们需要做的第一件事情是找到亚特兰大机场,因为那里将是我们的行程起点。如果单击“FindIt”下面的“Search for Locations”(搜索地点),会看到一个包含某些字段的页面,我们可以在这些字段中填写要搜索的地点和搜索区域:
我们想查找位于乔治亚州亚特兰大市的一个机场。 |
在同一页面上,还有一个商业设施类别列表。如果你不知道要查找的地方的名称或者不知道怎么称呼它,可以搜索这些类别以找到正确的设施分类。你可以在“Travel”(旅行)类别中找到“Airports”(机场),该类别下还有“Auto Rental”(租车)、“Cruises”(游轮)、“Resorts”(风景名胜)和“Sightseeing Tours”(观光旅游)类别。单击任意子类别可以用该关键词自动填充“What”(搜索内容)字段。
在我们单击“Search for Locations”(搜索地点)时,MapQuest会生成一幅亚特兰大地图,并列出搜索到的“机场”。
我们要找的是亚特兰大哈特斯菲尔德机场(Hartsfield Atlanta Airport),它在列表中位于中间靠下的位置。在名称和地址的紧下方有一些链接,我们可以通过它们查看地图或查看与该地点之间的行车路线:
如果我们单击“Map”(地图),会得到我们在亚特兰大的起点位置的精美地图(地图中心为该机场):
临近设施
如果在FindIt页面上单击“See What's in Your Neighborhood”(查看临近设施),可以得到特定地址附近的所有商业设施的列表。图右上方有一个名为“Find Nearby”(查找附近设施)的字段。如果我们要查找位于机场附近的一家酒店,可以在该字段中输入“hotel”,然后会得到位于该区域的酒店列表。我们首先使用FindIt功能生成我们的地图。我们也可以通过在主页的“Maps”(地图)部分中输入亚特兰大哈特斯菲尔德机场的地址来得到这幅地图。此外,MapQuest可以通过邮编、城市、州和经纬度来生成地图。
在进入移动地图视图时,我们有多个选项可以使用。我们可以使用地图周界上的箭头来移动地图,也可以直接单击地图。在地图下方,我们可以决定在单击地图时执行的操作——是放大地图并将地图中心设置为我们单击的点,还是仅仅是重新设定地图的中心。我们还可以使用地图左侧的缩放按钮来放大或缩小地图。我们能够在最大尺度上看到的地图是:
亚特兰大和特斯菲尔德机场在北美地区的位置 |
地图下方有一个用于路线指引的方框。在你获得了某个位置的地图之后,可以通过输入起点地址或终点地址来得到起点与目的地之间的行车路线指引。我们的终点地址是“3350 Peachtree Road in Atlanta”(亚特兰大市桃树路3350号)——即,博闻网美国总部:
在我们单击“Get Directions”(获得方向指引)时,MapQuest会生成从机场到博闻网美国总部的行车路线:
我们的行驶距离是30.29公里,行驶时间为24分钟。 |
如果我们返回到页面顶部,可以看到在该处能够执行的一些操作。
使用“Find Nearby”(查找临近设施)功能,我们可以查找一家咖啡馆,以便在HowStuffWorks总部开门办公之前能够在那里稍事休息。由于我们的路程少于80公里,因此如果希望观赏沿途风景的话,可以要求行车路线避开主要高速公路。此外,我们还可以选择回程路线,以便准确知道如何在行程结束后返回机场。
现在,我们已经生成了准确的地图信息,我们可以将它电子邮件发送它,将它发送给移动电话(使用基于订阅的MapQuest Mobile服务)或者将它下载到掌上型电脑(通过订阅AvantGo软件)。在下一节中,我们将了解这些通过订阅获得的额外服务。
其他MapQuest应用程序>/A
除了在网站上生成地图和路线指引外,MapQuest还开发了大量应用程序:
MapQuest LinkFree
通过MapQuest LinkFree,可以免费地直接链接到MapQuest网站上的地图和行车路线。因此,如果你有自己的网站、个人主页或者想将家中聚会的邀请函发送给朋友,可以在MapQuest上生成地图和行车路线,然后将链接提供给朋友,他们可以单击这些链接并立即获得相关信息。有关将MapQuest信息添加到你的网页的操作说明,请参见MapQuest:LinkFree。
MapQuest Mobile
MapQuest Mobile是一个订阅服务,可以通过移动电话提供商购买此服务。它的费用大约是每月4美元,你可以使用移动电话获得地图和行车路线,就像你在使用MapQuest网站一样。此外,你还可以使用MapQuest.com上的“Send to Phone”(发送到电话)按钮,将地图和路线发送到你的电话进行下载和显示。在下载并安装了MapQuest Mobile应用程序后,你的移动电话提供商会自动开始收取该服务的费用。
MapQuest FindMe
如果你有一部具备GPS功能的Nextel电话,可以将“FindMe”下载到电话上,随时精确查看你在地图中所处的位置,并根据当前位置使用MapQuest的本地搜索功能,还可以获取地图和行车路线并让别人(人选由你决定)知道你现在的位置。FindMe是一个订阅服务,价格为每月5美元左右。通过使用FindMe伴侣网站,你可以跟踪你的位置历史记录并决定哪些人能够知道你现在的位置。
MapQuest个人导航设备
MapQuest, Inc.供图 MapQuest PND |
MapQuest商务应用程序
MapQuest提供了针对企业的多款商业产品,可以为企业的网站增加本地搜索、地图和路线规划功能。这些商务应用程序的起价为每年5000美元,范围从基本MapQuest功能与现有商业基础结构的简单集成到在企业之中建立完整的MapQuest系统。
MapQuest产品和服务的日益增多意味着你可以越来越容易地了解到你所在的位置、你要去的位置以及通过何种路线到达目的地。但是仍然会出现一些小的问题:有时,MapQuest会提供错误信息。
MapQuest的错误
MapQuest说,有不到1%的用户会出于各种原因与他们联系,其中很少数的人是因为得到了错误的行车路线,而另一些很少数的人则是报告网站的错误。由于MapQuest管理的数据量非常庞大,而且这些数据来自不同来源,因此要保证它的地图和行车路线完全正确基本上是不可能的。偶尔会有这样的情况,MapQuest说应该走北面的单行线,而实际上那条路在南面;或者它说应该左转,而实际上需要右转。最常见的一些MapQuest错误包括:地址定位不准确(由地理编码估算造成的)、不能识别地址以及提供的高速公路出口不正确。
如果MapQuest不能识别某个地址,通常是因为该地址信息未能及时更新到MapQuest系统之中。如果你的住宅位于某条去年刚建成的街道上,MapQuest可能还不知道你的存在。城市街道的变化可能要数年之后才进入MapQuest的数据库。首先,城市必须为新的道路举行“落成仪式”,在道路完工并投入使用后,可能要过上数天、数月或数年才履行此手续。在落成之后,美国邮政总局才会正式承认它。在美国邮政总局承认它之后,地图制作公司(为MapQuest提供数据的公司)才会在下一次更新地图时更新此信息。然后,MapQuest会在下一次更新自己的数据时添加新的道路信息。这是一个有些兜圈子的过程。
不正确的高速公路编号(虽然不是一个广泛存在的问题)对于MapQuest用户来说可能是一个大问题。大概在去年,居住在犹他州几个县的人曾经耽误了几次约会。2004年,犹他州交通部更改了I-15、I-70和I-80沿线数百公里长的邮政标记和出口标志,以改正以前的错误标志。交通部在2004年12月便将此情况告知了MapQuest,但是由于MapQuest的数据来自其他来源,因此它在数据提供商确认此更改并提供新数据之前没有对数据进行修正。因此,在2005年11月之前,MapQuest的数据库中犹他州的80多个高速公路出口仍在使用不正确的出口编号。
MapQuest在“Help”(帮助)部分中提供了一些链接,你可以使用它们报告行车路线或地图存在的问题。在提交报告之后,MapQuest会开始错误修复过程。MapQuest将向其数据提供商报告该错误,提供商将确认错误(通常是通过人实际驾车到该位置并用眼睛进行检查),纠正错误,然后将修正后的新信息提供给MapQuest。