MapQuest.com可即時生成地圖和方向指示。在該網站面世後的第一個月內,就獲得了一百萬次的點擊量,而它的迅速走紅甚至還催生一個新的行業。網路地圖應用程式現在已經有點泛濫成災了,但是MapQuest仍然保持了其領先地位。
MapQuest.com如何確定“理想”路線?有哪些最常見的錯誤?為何會發生這些錯誤?在本文中,讓我們來看看MapQuest.com背後的秘密,了解它如何提供地圖和方向指示,以及其他一些不太為人所知的應用程式。
MapQuest絕對稱得上是一個精彩絕倫的網路地圖程式。它的主要功能包括:FindIt,可以找出特定區域內的商業設施;地圖,根據地址、城市、郵編或經緯度創建一個位置地圖;以及行車指引,可根據你提供的地址信息生成從A點到B點的行車路線。它可以生成兩所住宅之間、兩個城市之間或者從Vancouver的一個購物商場到佛羅里達某個機場的行車路線,並且估計出到達目的地所需的時間。
每天,MapQuest.com生成約500萬張地圖和大約700萬條行車路線。MapQuest需要處理大量數據——它提供街道級別的美國、加拿大、法國、英國、德國、義大利、奧地利、比利時、丹麥、盧森堡、荷蘭、瑞士和西班牙地圖,並且提供世界其他國家/地區的城市級別的地圖。這些地圖的來源包括MapQuestand為其印刷出版物自行建立的繪圖數據、來自其他數字地圖公司(例如NavTech和TeleAtlas)的信息以及諸如美國郵政服務這樣的政府機構編撰的資料庫。MapQuest每三個月更新一次數據,根據各個地圖來源提供的信息添加新數據或修正數據。
技術
正如大多數人知道的,MapQuest的34台伺服器在維吉尼亞州的AOL數據中心進行託管。這34台伺服器負責處理即時創建地圖和行車路線所需的所有數據以及相關計算工作。這些伺服器的具體任務細分如下:
15台伺服器生成地圖
15台伺服器處理地理編碼工作(將地址與經緯度坐標進行匹配)
4台伺服器創建行車路線
每台伺服器都是一個自給自足的單元,存儲的信息與所在任務組中其他伺服器上存儲的信息完全相同。如果你要求MapQuest生成行車路線,在行車路線最終顯示在螢幕上時,會用到15台地理編碼(我們將在下一節中討論地理編碼)伺服器中的一台伺服器,15台地圖生成伺服器中的一台伺服器以及四台路線生成伺服器中的一台伺服器。 MapQuest的路線生成算法會查找兩點之間所有可能的路線,並通過在行程的每個階段權衡某些因素來挑選一條路線。其目標是選出一條最快、最直接的路線。它會考慮道路類型(例如,如果有高速公路或土路供選擇,它會選擇高速公路)、轉彎的數量、道路流量和交叉口數量等因素。在為行程的每一步選擇了理想路段之後,它會提供一條完整的行車路線。MapQuest將所有這些數據輸入到自己的技術基礎結構中,以便將數據轉換為地圖和方向指引並顯示在MapQuest.com上。讓我們看看在這個過程會涉及哪些工作。
當MapQuest路線生成伺服器生成一條路線時,它還會計算出預計的行車時間。行車時間是根據各個路段的行車速度(通常是規定的速度上限)和通過各個交叉路口所需的時間計算得出的。MapQuest的市場行銷主管Jim Greiner說,“根據轉彎的類型(左轉、右轉或十字路口)以及交叉路口處的道路數量、類型和形狀”來計算通過交叉口所需的時間。例如,軟體假設從輔路左轉彎進入主路要比從主路右轉彎進入輔路花費更多的時間。
為了在地圖上標出位置或提供從一點到另一點的行車路線,MapQuest必須首先將街道地址轉換為經緯度坐標。這個過程稱作地理編碼。
背景知識 MapQuest成立於20世紀60年代——從在加油站賣地圖起家。在那時,它還不是“MapQuest”。起初,它是R.R. Donnelley & Sons的繪圖部門,後來它從中獨立出來並成立了GeoSystems Global Corporation(GGC)公司。GGC在1996年推出了MapQuest.com網站,並且推出之後的30天內獲得了100萬次的點擊量。GGC在1999年將公司名稱更改為MapQuest並成功上市,一年後,AOL收購了該公司。 |
地理編輯
地理編碼指的是將一對經度/緯度值指定給某個街道地址的過程。結果不一定很精確——地理編碼過程會根據可用信息做出儘可能準確的判斷。MapQuest使用多種方法之一來完成地理編碼工作。
地址插值
這種方法可提供最精確的結果。在地址插值過程中,街道被分割成多個段,每段都有個關聯的地址範圍。MapQuest的軟體基於給定地址應該位於的街道段,有根據地猜測給定地址的位置。例如,假如你要求MapQuest顯示“加利福尼亞好萊塢榆樹街25號”這個地址的位置。地理編碼伺服器會要求地圖生成伺服器提供與好萊塢的榆樹街最匹配的數據。然後,它會找到街道一側的地址範圍為(1到49)而另一側的地址範圍為2到50的街道段。它假定25位於該街道奇數一側的中間位置,並在與該位置對應的經緯度坐標上定位該地址。
如果它不能使用插值方法對某個地址進行地理編碼——通常是因為資料庫中沒有收錄該街道或者給定區域中具有多個同名街道——伺服器會嘗試使用交叉點匹配(如果地址位於美國之外)或郵編區域(如果地址位於美國國內)方法。
交叉點匹配
為了使用交叉點匹配方法對地址進行地理編碼,MapQuest需要找到兩個街道段:一個街道段位於MapQuest構想的該地址所在地的附近,而另一個街道段則與該街道段相交。然後,它假定該交叉點是與給定地址最接近的交叉點,並對其進行地理編碼。在這種情況下,MapQuest會生成標出了該交叉點的地圖,或者根據該交叉點來生成行車路線。
郵編區域
在美國,每個地址都有一個與城市特定區域對應的郵政編碼。郵編區域是與五位數、七位數或九位數郵政編碼對應的一個區域。大多數人都熟悉五位數郵編,但是這些郵編實際上可劃分為更小的“郵編+2”區域和甚至比這還小的“郵編+4”區域。“郵編+4”區域使用九位數郵編,你有時會在官方文檔中看到這種郵編,它通常只包括10戶家庭(你可以使用USPS郵編查詢來查找你所在地址的“郵編+4”代碼)。如果MapQuest可以找出該地址所在的九位數郵編區域,它就可以計算出與該區域中心對應的經緯度坐標。下一步是嘗試在“郵編+2”區域中定位該地址,然後最後找到基本的五位數郵編區域(一個面積很大的區域)。後面這兩種方法不會返回很精確的結果。
使用
讓我們使用MapQuest來規劃到達位於喬治亞州亞特蘭大的博聞網合作夥伴howstuffworks的行程。我們開始進行規劃所需的所有東西都位於主頁的右側;
我們需要做的第一件事情是找到亞特蘭大機場,因為那裡將是我們的行程起點。如果單擊“FindIt”下面的“Search for Locations”(搜尋地點),會看到一個包含某些欄位的頁面,我們可以在這些欄位中填寫要搜尋的地點和搜尋區域:
在同一頁面上,還有一個商業設施類別列表。如果你不知道要查找的地方的名稱或者不知道怎么稱呼它,可以搜尋這些類別以找到正確的設施分類。你可以在“Travel”(旅行)類別中找到“Airports”(機場),該類別下還有“Auto Rental”(租車)、“Cruises”(遊輪)、“Resorts”
(風景名勝)和“Sightseeing Tours”(觀光旅遊)類別。單擊任意子類別可以用該關鍵字自動填充“What”(搜尋內容)欄位。
在我們單擊“Search for Locations”(搜尋地點)時,MapQuest會生成一幅亞特蘭大地圖,並列出搜尋到的“機場”。
我們要找的是亞特蘭大哈特斯菲爾德機場(Hartsfield Atlanta Airport),它在列表中位於中間靠下的位置。在名稱和地址的緊下方有一些連結,我們可以通過它們查看地圖或查看與該地點之間的行車路線:
如果我們單擊“Map”(地圖),會得到我們在亞特蘭大的起點位置的精美地圖(地圖中心為該機場):
地圖右上方有一個名為“Find Nearby”(查找附近設施)的欄位。如果我們要查找位於機場附近的一家酒店,可以在該欄位中輸入
“hotel”,然後會得到位於該區域的酒店列表。
我們首先使用FindIt功能生成我們的地圖。我們也可以通過在主頁的“Maps”(地圖)部分中輸入亞特蘭大哈特斯菲爾德機場的地址來得到這幅地圖。此外,MapQuest可以通過郵編、城市、州和經緯度來生成地圖。
在進入移動地圖視圖時,我們有多個選項可以使用。我們可以使用地圖周界上的箭頭來移動地圖,也可以直接單擊地圖。在地圖下方,我們可以決定在單擊地圖時執行的操作——是放大地圖並將地圖中心設定為我們單擊的點,還是僅僅是重新設定地圖的中心。我們還可以使用地圖左側的縮放按鈕來放大或縮小地圖。我們能夠在最大尺度上看到的地圖。
地圖下方有一個用於路線指引的方框。在你獲得了某個位置的地圖之後,可以通過輸入起點地址或終點地址來得到起點與目的地之間的行車路線指引。我們的終點地址是“3350 Peachtree
Road in Atlanta”(亞特蘭大市桃樹路3350號)——即,博聞網美國總部:
使用“Find Nearby”(查找臨近設施)功能,我們可以查找一家咖啡館,以便在HowStuffWorks總部開門辦公之前能夠在那裡稍事休息。由於我們的路程少於80公里,因此如果希望觀賞沿途風景的話,可以要求行車路線避開主要高速公路。此外,我們還可以選擇回程路線,以便準確知道如何在行程結束後返回機場。
現在,我們已經生成了準確的地圖信息,我們可以將它電子郵件傳送它,將它傳送給行動電話(使用基於訂閱的MapQuest Mobile服務)或者將它下載到掌上型電腦(通過訂閱AvantGo軟體)。
其他程式
除了在網站上生成地圖和路線指引外,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個人導航設備(PND)是一種內置了MapQuest功能(包括地圖和行車路線)的攜帶型GPS接收機。你還可以設定路點和目的地,以及查看MapQuest提供的內置興趣點。這款售價為700美元的設備能夠以語音方式指引行車方向(使用30種語言和50種不同語音),在駕車時為你提供幫助。
MapQuest商務應用程式
MapQuest提供了針對企業的多款商業產品,可以為企業的網站增加本地搜尋、地圖和路線規劃功能。這些商務應用程式的起價為每年5000美元,範圍從基本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。