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。
評論