專利名稱:用于移動設(shè)備的基于位置的高速緩存的制作方法
用于移動設(shè)備的基于位置的高速緩存 背景一般而言,用于移動設(shè)備的導(dǎo)航應(yīng)用程序通過將對應(yīng)于預(yù)先計算的路線或 移動設(shè)備的用戶打算在其中旅行的估計的區(qū)域的地圖下載到設(shè)備來操作。使用一般由基于web的供應(yīng)商或在個人計算機或服務(wù)器上維護的數(shù)據(jù)提供的地圖 服務(wù),用戶指定起始點、目的地以及可能的中途停留目的地,然后計算基于這 些位置的靜態(tài)路線。路線的完整地圖被下載到移動設(shè)備。對于這些現(xiàn)有的導(dǎo)航應(yīng)用程序存在重大的限制。首先,導(dǎo)航路線是靜態(tài)的, 并且被綁定到給定的起始點和目的地。萬一用戶決定更改行程,則無法動態(tài)地 改變儲存在移動設(shè)備中的路線。其次,在大多數(shù)情況下,地圖數(shù)據(jù)是基于矢量 的,并且僅支持一種地圖類型,即,分辨率可被自適應(yīng),但是不可能將地圖類 型例如從街道地圖改為鳥瞰圖、地形圖或其它可能的視圖。此外,這一導(dǎo)航應(yīng) 用程序并未考慮到設(shè)備能力上的限制,例如用于地圖存儲的有限的存儲器以及 有限的處理器分配。另外,這些導(dǎo)航應(yīng)用程序在大多數(shù)情況下僅支持地圖數(shù)據(jù) 而非移動設(shè)備的用戶可能感興趣的任何種類的基于位置的數(shù)據(jù)。概述一種基于位置的高速緩存系統(tǒng)為移動通信設(shè)備提供了動態(tài)地提供與用戶 的位置有關(guān)的內(nèi)容的能力。在一示例性形式中,內(nèi)容包括預(yù)期移動設(shè)備的用戶 行進的路線的一系列地圖段。也可提供其它相關(guān)內(nèi)容,例如與所行進的路線相 關(guān)的名勝信息。內(nèi)容信息可以基于例如用戶偏好、移動信息以及設(shè)備狀態(tài)信息 來從上下文上選擇。移動設(shè)備可以由有助于基于位置的高速緩存系統(tǒng)的若干組件組成,包括位 置確定模塊、方向估計器模塊、內(nèi)容容器、內(nèi)容容器、連接管理模塊以及高速 緩存模塊。位置確定模塊確定移動通信設(shè)備的當前位置。方向估計器模塊估計 移動通信設(shè)備的將來位置。內(nèi)容容器儲存與將來位置有關(guān)的內(nèi)容。連接管理模塊提供與移動通信設(shè)備的網(wǎng)絡(luò)連通性。高速緩存模塊經(jīng)由連接管理模塊從內(nèi)容 容器或移動通信設(shè)備外部的替換內(nèi)容源中選擇與將來位置有關(guān)的內(nèi)容。該系統(tǒng) 還可包括一 內(nèi)容服務(wù)器,其經(jīng)由將移動通信設(shè)備與內(nèi)容服務(wù)器相連接的網(wǎng)絡(luò)向 移動通信設(shè)備提供與將來位置有關(guān)的內(nèi)容。該系統(tǒng)還可包括可由移動通信設(shè)備 訪問的、關(guān)于移動通信設(shè)備的當前位置信息的源,例如全球衛(wèi)星定位信息。該基于位置的高速緩存系統(tǒng)跟蹤移動通信設(shè)備的當前位置,并預(yù)測移動通 信設(shè)備的將來位置。基于對將來位置的預(yù)測,該高速緩存模塊確定與將來位置 有關(guān)的內(nèi)容當前是否被儲存在移動通信設(shè)備上。如果適當?shù)膬?nèi)容不在移動設(shè)備 上,則該高速緩存模塊經(jīng)由網(wǎng)絡(luò)連接從內(nèi)容服務(wù)器檢索該內(nèi)容。提供本概述以便以簡化的形式介紹將在以下詳細描述中進一步描述的一 些概念。本概述并不旨在標識出所要求保護的主題的關(guān)鍵特征或必要特征,也 不旨在用于限制所要求保護的主題的范圍。所要求保護主題的其他特征、細節(jié)、 功能、以及優(yōu)點將由如附圖中進一步示出的以及在所附權(quán)利要求中所定義的以 下更詳細描寫的各實施例和實現(xiàn)的詳細描述而變得顯而易見。附圖簡述
圖1是移動設(shè)備與內(nèi)容服務(wù)器以及地理位置信息源的關(guān)系的示意圖。圖2是移動設(shè)備上的示例性的基于位置的高速緩存操作的示意圖。 圖3是由基于位置的高速緩存系統(tǒng)執(zhí)行以動態(tài)地向移動設(shè)備提供內(nèi)容的 一系列操作的流程圖。圖4是在基于位置的高速緩存系統(tǒng)內(nèi)提供內(nèi)容的知曉位置的系統(tǒng)的示意圖。圖5是在開發(fā)知曉位置的應(yīng)用程序時的交互的示意性狀態(tài)圖。 圖6是在基于位置的高速緩存系統(tǒng)內(nèi)提供內(nèi)容的路標樹立和定向操作的 流程圖。圖7是提供圖6的附加細節(jié)的路標樹立和定向操作的流程圖。 圖8是可在基于位置的高速緩存系統(tǒng)的實現(xiàn)中使用的通用移動設(shè)備的示 意圖。圖9是可在基于位置的高速緩存系統(tǒng)的實現(xiàn)中使用的通用計算機系統(tǒng)的示意圖。
詳細描述
此處所公開的技術(shù)被設(shè)計成向移動通信設(shè)備提供特定于用戶的位置和興 趣的、但獨立于為該用戶所計算的路線的地圖數(shù)據(jù)和其它內(nèi)容。地圖數(shù)據(jù)的供 應(yīng)被按需智能且動態(tài)地下載到移動通信設(shè)備上。該技術(shù)此處一般被稱為基于位 置的高速緩存系統(tǒng)。
地圖數(shù)據(jù)可根據(jù)多個參數(shù)而提供給移動設(shè)備,這些參數(shù)包括移動方向、速 度(當前和平均)以及上下文。上下文還可以按照全局上下文,即用戶的環(huán)境 或地理位置,以及局部上下文,即包括偏好、興趣、用戶位置以及移動設(shè)備的 硬件和軟件能力及限制在內(nèi)的用戶簡檔來理解。
所選地圖的分辨率可以取決于行進速度、上下文(例如,名勝的包括)、 可用地圖數(shù)據(jù)、以及移動通信設(shè)備上的限制或上限(例如,存儲器、顯示器大 小和分辨率、以及處理器速度)。所選以在移動設(shè)備上呈現(xiàn)的地圖因此被自適 應(yīng)以匹配相關(guān)準則。向移動設(shè)備下載的間隔也可取決于包括用戶的行進速度、 連接選項和速度以及存儲器分配在內(nèi)的上下文。
基于對位置和上下文信息的分析,可基于例如大小和分辨率來計算地圖數(shù) 據(jù)段并從內(nèi)容服務(wù)器下載到移動設(shè)備。地圖段也可基于類似的準則從移動設(shè)備 上刪除。地圖數(shù)據(jù)也可通過具有位置信息的多媒體數(shù)據(jù)來豐富?;谖恢玫母?速緩存系統(tǒng)的好處可以通過與智能連接管理和位置管理技術(shù)相結(jié)合而得到增 強。
基于位置的高速緩存系統(tǒng)100在圖1中示出。系統(tǒng)100 —般是客戶機一服 務(wù)器模型,并且其基礎(chǔ)是圍繞移動設(shè)備102的。移動設(shè)備102可以是移動電話、 個人數(shù)字助理、移動存儲設(shè)備(例如,MP3播放器或便攜式照片/視頻庫)、 全球定位系統(tǒng)設(shè)備、汽車信息中心(例如,通用汽車公司的ONSTAR)、或能 夠接收地理位置數(shù)據(jù)并與網(wǎng)絡(luò)122接口以接收附加內(nèi)容的任何其它便攜式設(shè) 備。內(nèi)容服務(wù)器124經(jīng)由網(wǎng)絡(luò)122與移動設(shè)備102連接。系統(tǒng)100還可包括與 移動設(shè)備102接口的全球定位系統(tǒng)(GPS)服務(wù)116,或用于確定移動設(shè)備102 的地理位置的其它方法。移動設(shè)備102具有用于實現(xiàn)如圖1所示的基于位置的高速緩存操作的若干 模塊或組件。這些模塊可包括位置管理器模塊104、移動方向估計器模塊106、高速緩存模塊108以及連接管理器模塊114。位置管理器模塊104、移動方向 估計器模塊106以及高速緩存模塊108共同初步實現(xiàn)了對地圖數(shù)據(jù)的智能和動 態(tài)選擇以便在移動設(shè)備102上呈現(xiàn)。另外,移動設(shè)備102可包括用于儲存地圖 數(shù)據(jù)的內(nèi)容容器110以及用于儲存用戶偏好或其它上下文信息的上下文容器 112。內(nèi)容容器110和上下文容器112可采用移動設(shè)備102的通用存儲器內(nèi)的 數(shù)據(jù)結(jié)構(gòu)的形式。如圖1的實施例中所示,移動設(shè)備102可以通過與一個或多個網(wǎng)絡(luò)122 的連接與內(nèi)容服務(wù)器124通信。網(wǎng)絡(luò)122可以是任何類型的網(wǎng)絡(luò),例如局域網(wǎng) (LAN)、無線局域網(wǎng)(WLAN)、廣域網(wǎng)(WAN)、因特網(wǎng)、電話網(wǎng)絡(luò)、 微波網(wǎng)絡(luò)(例如,WiMAX)、無線電網(wǎng)絡(luò)(例如,GPRS)或光學網(wǎng)絡(luò),或其 組合。移動設(shè)備102可具有與多個網(wǎng)絡(luò)同時連接的能力。例如,如果移動設(shè)備 102是無線電話,則它可使用全球移動通信系統(tǒng)(GSM)標準、碼分多址(CDMA) 標準、通用移動電信系統(tǒng)(UMTS)標準或任何其它網(wǎng)絡(luò)電話標準來與語音電 話網(wǎng)絡(luò)連接。數(shù)據(jù)可以交替地或同時地使用電路交換數(shù)據(jù)(CSD)、通用分組 無線電業(yè)務(wù)(GPRS)、高速下行鏈路分組接入(HSDPA)或任何其它數(shù)據(jù)傳 輸協(xié)議來發(fā)送。網(wǎng)絡(luò)連接可以由連接管理器114來管理。連接管理器114負責基于可用硬 件來選擇用于將數(shù)據(jù)從內(nèi)容服務(wù)器124下載到移動設(shè)備102的最佳網(wǎng)絡(luò)連接。 合適的連接管理器模塊的一個示例性實現(xiàn)在MICROSOFT WINDOWS MOBILE平臺中具體化。示例性連接類型可包括藍牙、GPRS、WLAN和UMTS。 如果移動設(shè)備102被裝備為處理多種協(xié)議或具有多個通信接口,則還有可能選 擇一個以上連接類型。對大多數(shù)適當數(shù)據(jù)傳輸選項的選擇可以取決于多個因 素,包括要傳輸?shù)臄?shù)據(jù)的量、可用連接類型、移動設(shè)備當前正執(zhí)行的操作、以 及在上下文容器112中定義的任何用戶偏好。例如,如果用戶正使用移動設(shè)備 102上的web瀏覽器應(yīng)用程序,并且當前正在使用GPRS協(xié)議通過WLAN下 載信息,則連接管理器114可以指示經(jīng)由可用的藍牙接口來下載地圖數(shù)據(jù)。當WLAN連接免費時,由于更高的數(shù)據(jù)傳輸速率,連接管理器114可以重定向下 載操作經(jīng)由WLAN接口發(fā)生。內(nèi)容服務(wù)器124包括數(shù)據(jù)存儲126和連接服務(wù),以提供內(nèi)容服務(wù)器124 和移動設(shè)備102之間的接口。數(shù)據(jù)存儲126儲存要按需上傳到移動設(shè)備102的 地圖數(shù)據(jù)。在一個示例性實施例中,連接服務(wù)可以是web服務(wù)。web服務(wù)的主 要功能是響應(yīng)于移動設(shè)備102的估計的移動方向提供必要的地圖數(shù)據(jù)。由內(nèi)容 服務(wù)器124提供的web服務(wù)還可基于由移動設(shè)備102中的上下文容器112提供 的上下文信息來從數(shù)據(jù)存儲126中選擇地圖數(shù)據(jù)。如圖1所示,移動設(shè)備可以直接從GPS服務(wù)116或替換地從其它源接收 地理位置數(shù)據(jù)。為了從GPS服務(wù)116接收地理定位數(shù)據(jù),移動設(shè)備102 —般 配備有GPS接收機芯片,或者其經(jīng)由電纜或藍牙與外部GPS設(shè)備連接。這一 GPS接收機被調(diào)諧以從全球定位衛(wèi)星接收信號并對移動設(shè)備102的位置進行三 角測量。在圖1的實施例中,這一GPS設(shè)備可以被結(jié)合到以下進一步描述的 位置管理器模塊104中?;蛘?,移動設(shè)備102可以通過使用多個應(yīng)答器與WLAN 118、 GPRS網(wǎng)絡(luò) 120或任何其它無線網(wǎng)絡(luò)技術(shù)標準接口來確定地理位置。如果在移動設(shè)備102 的范圍內(nèi)有至少三個提供網(wǎng)絡(luò)的無線傳輸源,則移動設(shè)備102中的位置管理器 104可以基于無線網(wǎng)絡(luò)應(yīng)答器的固定位置對地理位置進行三角測量。位置管理 器104可以查詢應(yīng)答器以提供這一固定位置信息。地理位置還可通過移動設(shè)備102的用戶的直接數(shù)據(jù)輸入或任何位置源來 確定。位置管理器104可以被裝備為使用任一或所有位置信息源,即GPS、其 它三角測量方法、直接輸入或任何其它方法來確定地理位置。移動設(shè)備102在 進一步確定適當?shù)牡貓D數(shù)據(jù)來進行呈現(xiàn)時對于位置信息源是不可知的。移動方向估計器106從位置管理器104接收移動設(shè)備102的實際地理位 置,并估計移動設(shè)備102的用戶將移動的方向。該估計可以基于這一實際位置 信息、用戶在先前一段時間內(nèi)(例如,在上幾分鐘或幾秒內(nèi),該時間段還可取 決于用戶的速度)行進的方向、環(huán)境上下文信息以及用戶上下文信息來計算。 例如,用戶可以在以恒定速度沿著公路行進的小汽車中。這一環(huán)境上下文信息 可以基于地圖坐標和速度來外推。移動方向估計器106因此可以從該上下文中確定用戶將繼續(xù)沿公路行進?;蛘?,如果用戶的速度在幾秒的時間段內(nèi)減小并 且區(qū)域的地圖指示與另一條道路相交,則這一信息可能暗示用戶方向的潛在改 變,并且系統(tǒng)100可準備好適應(yīng)這一改變。
移動方向估計器106可以使用若干不同算法中的任一種來計算將來的估 計的用戶位置。示例性算法包括跟蹤路線的任何線性或非線性外推。外推指的 是該算法應(yīng)能夠從所儲存的跟蹤路線點中估計出設(shè)備的用戶在一段時間內(nèi)有 最高的可能性會所在的位置。可出于各種原因中的任一種,例如移動設(shè)備102 中的處理器的速度、存儲器分配要求、或期望考慮的變量數(shù)目,來選擇一特定
算法。移動方向估計器106對于實現(xiàn)應(yīng)用專用算法也可以是開放的。
一旦由移動方向估計器106確定,所估計的位置然后被提供給高速緩存模 塊108以啟動對所有相關(guān)地圖和其它數(shù)據(jù)的預(yù)加載。高速緩存模塊108取決于 用戶的位置和當前上下文來確定數(shù)據(jù)是否應(yīng)從內(nèi)容服務(wù)器124預(yù)加載以及本地 內(nèi)容容器110中的數(shù)據(jù)是否可被刪除。在來自位置管理器104的數(shù)據(jù)(例如, 地圖)請求的情況下,高速緩存模塊108—般從本地內(nèi)容容器110中檢索該數(shù) 據(jù)。否則,如果數(shù)據(jù)不是被本地儲存的,則數(shù)據(jù)必須立即從內(nèi)容服務(wù)器124上 傳。此外,如果移動設(shè)備102在其存儲器中只有極少的可用存儲,則高速緩存 模塊108從內(nèi)容容器110中清除被標識為離用戶的實際位置或期望位置最遠的 數(shù)據(jù)。高速緩存模塊108還從上下文容器112中清除最不適用于用戶的實際或 期望位置的數(shù)據(jù)。
內(nèi)容容器110是用于基于位置的數(shù)據(jù)的數(shù)據(jù)存儲。在一個實現(xiàn)中,內(nèi)容容 器IIO可以是簡單的二進制文件,以最小化移動設(shè)備102的必要資源。在另一 實現(xiàn)中,內(nèi)容容器110可以是移動數(shù)據(jù)庫。在一個實現(xiàn)中,使用面向?qū)ο蟮臄?shù) 據(jù)結(jié)構(gòu),可以將基于位置的數(shù)據(jù)封裝在具有以下示例性接口的類內(nèi)
a) 數(shù)據(jù)和用戶的當前給定位置之間的距離的計算;
b) 基于位置的數(shù)據(jù)的類型; C)基于位置的數(shù)據(jù)的數(shù)量;
d) 基于位置的數(shù)據(jù)的優(yōu)先級;以及
e) 用于基于位置的數(shù)據(jù)的Get (獲取)函數(shù)。 這些數(shù)據(jù)類可以在保持所有這些對象的容器(container)類中結(jié)構(gòu)化(在數(shù)據(jù)庫的情況下,該容器類是唯一接口)。容器類可提供以下示例性接口a) 獲得具有到給定點的最小距離的對象的列表;b) 獲得具有到給定線的最小距離的對象的列表; C)獲得具有到給定區(qū)域的最小距離的對象的列表;d) 獲得給定區(qū)域內(nèi)的對象的列表;e) 添加對象;以及f) 移除對象。以此方式,儲存在移動設(shè)備102上的內(nèi)容容器110中的地圖和其它內(nèi)容(即, 存儲器中的"對象")可以與用戶的當前位置進行比較,從而允許高速緩存模 塊108做出適當?shù)南乱坏貓D選擇以及存儲器分配決策。例如,如果高速緩存模 塊108確定用于儲存地圖和內(nèi)容的可用存儲器正在減少,則離用戶的位置最遠 的地圖可被丟棄以提供用于添加與用戶的當前位置更相關(guān)的地圖和內(nèi)容的存 儲空間。上下文容器112是用于移動設(shè)備102的用戶的所有相關(guān)上下文數(shù)據(jù)和偏好的數(shù)據(jù)存儲。示例性偏好可包括以下a) 移動設(shè)備102上的可用存儲;b) 用戶的平均移動速度; C)優(yōu)選運輸手段;d) 可用/優(yōu)選的位置相關(guān)數(shù)據(jù)類型;e) 可用/優(yōu)選的地圖類型;f) 移動設(shè)備102上的可用存儲器空間或處理器分配;g) 移動設(shè)備102上的顯示器的大小和分辨率;h) 移動設(shè)備102上的可用連接類型;以及i) 取決于成本的優(yōu)選連接類型。這些數(shù)據(jù)可以由單個類/對象提供,并且可通過移動設(shè)備102上的用戶界面來配置。許多參數(shù)在可能時可被自動計算以避免用戶輸入。收集并使用這一類型的上下文數(shù)據(jù)的目的是向用戶提供對環(huán)境最適當?shù)牡貓D。例如,高速緩存模塊108可基于用戶的移動來選擇替換的地圖。如果很 明顯用戶正在以僅可由移動的車輛達到的速度移動,則高速緩存模塊108將選擇以非常低的細節(jié)水平覆蓋大區(qū)域(例如,以英里或千米為比例)的道路地圖。 如果用戶的個人偏好信息指示用戶通常是以火車旅行的,則高速緩存模塊108 可選擇標識了火車路線和火車站的地圖?;蛘?,如果用戶的速度暗示用戶正在 步行,則高速緩存模塊108可選擇以高細節(jié)水平覆蓋小區(qū)域(例如,以英尺或 米為比例)的地圖。地圖中的各種上下文細節(jié)水平可取決于高速緩存模塊108在選擇要從內(nèi) 容服務(wù)器124下載的特定地圖時所考慮的已知的用戶偏好來智能地提供給用 戶。如果用戶的個人偏好信息指示用戶喜歡經(jīng)常光顧咖啡店或酒吧,則可將已 知的咖啡店或酒吧位置呈現(xiàn)為地圖上的路標。如果用戶偏好信息指示用戶正在 假期旅行中,則可在地圖上提供指示該地圖的可查看區(qū)域內(nèi)的歷史或旅游景點 (例如,沿著公路的戰(zhàn)場或城市中的博物館)的路標信息。其它路標信息可指 示所顯示的地圖的可査看區(qū)域之外的某些吸引人的事物的方向。注意,不需要有中央內(nèi)容服務(wù)器,但是內(nèi)容可改為從多個分布式或甚至不 相關(guān)的內(nèi)容服務(wù)器檢索。此外,內(nèi)容可以不僅限于地圖。例如,如果用戶正在 訪問旅游勝地,則高速緩存模塊108可從服務(wù)器中尋找被標識為提供了與該特 定位置或勝地有關(guān)的名勝內(nèi)容的內(nèi)容。例如,博物館可提供可被呈現(xiàn)在移動設(shè) 備102上以供用戶參觀該博物館的多媒體內(nèi)容。示例性內(nèi)容可包括音頻敘述引 導(dǎo)參觀或有關(guān)展品的描述性信息。如對于地圖所描述的,這一上下文內(nèi)容可以 在按需的基礎(chǔ)上被下載和高速緩存以適應(yīng)存儲器或其它限制。基于位置的高速 緩存系統(tǒng)可以結(jié)合此處進一步描述的知曉位置的框架來支持任何數(shù)據(jù)類型的 下載和演示以提供適當?shù)纳舷挛膬?nèi)容。數(shù)據(jù)還可以被提供給移動設(shè)備102上的 任何其它應(yīng)用程序以供呈現(xiàn)、位置計算或任何其它所支持的目的。高速緩存模塊108可以基于任何給定時刻的存儲器分配、處理器需求、以 及移動設(shè)備102的其它狀態(tài)信息來做出內(nèi)容存儲和呈現(xiàn)確定。例如,如果移動 設(shè)備102上可用的存儲器不足以儲存關(guān)于整個計劃的路線的必需地圖,則基于 位置的高速緩存系統(tǒng)100能夠通過從存儲器中丟棄先前的地圖段并在必要時下 載其它地圖段來向用戶動態(tài)地提供關(guān)于整個旅行的適當?shù)貓D?;谖恢玫母咚?緩存系統(tǒng)100因此提供了優(yōu)于在旅行之前基于預(yù)定路線來下載并靜態(tài)地儲存地 圖的其它技術(shù)的顯著優(yōu)點。高速緩存模塊108還可考慮移動設(shè)備102的特定顯示器的大小和分辨率并向移動設(shè)備102呈現(xiàn)其所能支持的較高分辨率內(nèi)容。
連接管理器114還可使用上下文容器112中的用戶偏好信息以及移動設(shè)備
102的狀態(tài)信息來做出連接決策。例如,基于與用戶的移動設(shè)備102相關(guān)聯(lián)的
數(shù)據(jù)計劃,不同的定價結(jié)構(gòu)可在一天的不同時間經(jīng)由一種服務(wù)或協(xié)議應(yīng)用于數(shù)
據(jù)傳輸?;蛘?,用戶可訂閱來自特定供應(yīng)商的統(tǒng)一費率的WiFi服務(wù)。如果用 戶在多個WiFi供應(yīng)商服務(wù)的特定位置,則連接管理器114可選擇用戶的訂閱 服務(wù)而非另一可用服務(wù)。在又一示例中,如果連接管理器114認識到移動設(shè)備 102停放或以其它方式連接到有線網(wǎng)絡(luò),則連接管理器114因較高的數(shù)據(jù)傳輸 速度而可選擇使用這一有線網(wǎng)絡(luò)而非無線選項來進行數(shù)據(jù)傳輸。
用于移動設(shè)備的基于位置的高速緩存系統(tǒng)的一個簡單的示例性實現(xiàn)在圖 2中示出。在第一時間段中,移動設(shè)備顯示器200描繪了第一地圖202,該第 一地圖指示在該第一地圖202所指示的地理上下文中用戶的位置。第一地圖 202由高速緩存模塊210提供給顯示器200。用戶被描繪為沿著第一公路206 在小汽車204中向著與第二公路208的交叉路口行進。
基于現(xiàn)有的環(huán)境和其它上下文信息,例如小汽車204在第一公路206上的 行進時間的長度、用戶在第一公路206上先前的行程以及其它考慮事項,高速 緩存模塊210預(yù)期用戶將繼續(xù)沿著第一公路206行進并經(jīng)過與第二公路208的 交叉路口。由此,高速緩存模塊210先前己經(jīng)儲存了第二地圖202,如對于第 二時間段在所提議的顯示200a中所示的。第二地圖202a估計用戶的小汽車 204a沿著第一公路206經(jīng)過與第二公路208的交叉路口的位置。
然而,位置管理器和移動方向估計器向高速緩存模塊210提供指示用戶正 在減速的經(jīng)更新的信息。從第一地圖202的位置和上下文信息中,高速緩存模 塊210可確定用戶有可能會轉(zhuǎn)到第二公路208上,如在第一地圖202中由第二 公路208上小汽車的替換位置204'、 204"所指示的。因此,代替顯示第二地圖 202a,高速緩存模塊210聯(lián)系內(nèi)容服務(wù)器212以檢索另外的地圖來覆蓋用戶可 能轉(zhuǎn)到第二公路208上的可能性。
一旦位置管理器確定用戶轉(zhuǎn)到了一特定方向,高速緩存模塊210就在顯示 200b中呈現(xiàn)適當?shù)牡谌貓D202b,示出小汽車204沿著第二公路204前進并 示出在第二公路208的方向上的地理信息。如對于顯示202b上的第三地圖202b
13所指示的,第三地圖202b由高速緩存模塊210從內(nèi)容服務(wù)器212動態(tài)地下載。圖3描繪了由圖1的位置管理器模塊104、移動方向估計器模塊106和高 速緩存模塊108所執(zhí)行來提供移動設(shè)備102上的基于位置的高速緩存功能的一 系列示例性操作300。在尋找操作302中,位置管理器104確定移動設(shè)備102 的地理位置。如上所述,這一尋找操作302可以通過GPS或其它三角測量方 法來執(zhí)行,或者可簡單地基于用戶輸入。接著,在確定操作302中,移動方向 估計器106確定移動設(shè)備102的移動的方向。然后,在推導(dǎo)操作306中,高速 緩存模塊108推導(dǎo)移動設(shè)備102的估計的將來位置。如上所述,這一推導(dǎo)操作 306可以考慮到諸如儲存在上下文容器112中的移動設(shè)備102的特定環(huán)境以及 用戶偏好等附加上下文因素。基于位置、方向和上下文信息,高速緩存模塊108進行査詢操作308以確 定適當?shù)南乱坏貓D是否已經(jīng)儲存在移動設(shè)備102上。如果已經(jīng)有了適當?shù)牡貓D, 則在檢索操作310中,高速緩存模塊108從內(nèi)容容器110中檢索下一地圖。或 者,如果在査詢操作308中高速緩存模塊108確定下一適當?shù)貓D尚未儲存在移 動設(shè)備102中,則在連接操作312中,高速緩存模塊108經(jīng)由網(wǎng)絡(luò)122與內(nèi)容 服務(wù)器124連接。然后,在下載操作314中,高速緩存模塊108從內(nèi)容服務(wù)器 124下載下一適當?shù)貓D。 一旦高速緩存模塊108或者從內(nèi)容容器IIO檢索了下 一地圖,或者從內(nèi)容服務(wù)器124下載了地圖,則在呈現(xiàn)操作316中,經(jīng)由移動 設(shè)備上的顯示器向用戶呈現(xiàn)下一適當?shù)貓D316。圖4示出了可被實現(xiàn)為基于位置的高速緩存系統(tǒng)的一部分以便為移動設(shè) 備提供適當?shù)牡貓D的知曉位置的系統(tǒng)400。知曉位置的系統(tǒng)400包括位置管理 器420、知曉位置的應(yīng)用程序430、以及地圖管理器440。位置管理器420與一 個或多個位置源425(m)連接。地圖管理器440與一個或多個地圖存儲442、地 圖生成器444和地圖web服務(wù)器446連接。位置管理器420被配置成從一個或多個移動設(shè)備位置源425G.n)接收位置 信息,并將位置信息抽象為提供給知曉位置的應(yīng)用程序430的位置事件。移動 設(shè)備位置源425G.n)可以是提供關(guān)于一項目的位置信息的任何東西。例如,一 個移動設(shè)備位置源可以是GPS接收機。另一移動設(shè)備位置源可以是指示用戶 的位置的用戶輸入。例如,用戶可通過移動設(shè)備上的用戶輸入來指示用戶在某一位置。用戶可通過例如鍵區(qū)、觸摸屏或語音識別等用戶接口來將位置輸入到 移動設(shè)備中。另一移動設(shè)備位置源可以是RFID標簽。每一移動設(shè)備位置源
425d.N)可以提供不同分辨率的位置數(shù)據(jù)。例如,某些位置源可能非常準確,而
其它位置源可能僅準確到一定義的區(qū)域內(nèi),例如鄰里或道路的延長。
移動設(shè)備位置源425G.N)可對應(yīng)于鄰近的或遙遠的位置源。鄰近源對應(yīng)于 位置生成硬件,包括但不限于GPS接收機,或?qū)?yīng)于移動設(shè)備本身,其從網(wǎng) 絡(luò)信息中確定其位置。遙遠的位置源對應(yīng)于從遠程聯(lián)網(wǎng)源推或拉的位置信息 (例如,所到達的具有小汽車的位置的推送的短消息服務(wù)(SMS)消息,或經(jīng) 由web請求返回(拉取)的位置信息)。鄰近和遙遠的位置源都被看作是抽象 邏輯實體。這使得編程模型對于許多不同種類的位置信息都是相似的。
一旦接收到位置數(shù)據(jù),位置管理器420就確定是否觸發(fā)了與知曉位置的應(yīng) 用程序430相關(guān)的任何位置事件。位置管理器420在出現(xiàn)與感興趣的區(qū)域具有 某一邏輯關(guān)系(諸如進入或離開感興趣的區(qū)域)的項目時提供位置事件,而非 僅僅將來自位置源的原始位置數(shù)據(jù)提供給知曉位置的應(yīng)用程序430。感興趣的 區(qū)域可以與任何區(qū)域有關(guān),并且可以是室內(nèi)或室外。例如,室內(nèi)位置可以用于 顯示固定資產(chǎn)(例如,會議室)和/或移動資產(chǎn)(例如,人、辦公室設(shè)備、或存 貨)的位置。感興趣的室外區(qū)域可以是城市街區(qū)、建筑物或某一其它陸標周圍 的區(qū)域、或某一其它預(yù)定區(qū)域。感興趣的室外區(qū)域也可以是可移動的資產(chǎn)(例 如,小汽車或人)。
知曉位置的應(yīng)用程序430基于項目與感興趣的區(qū)域的關(guān)系來注冊位置事 件而非解釋原始位置數(shù)據(jù)。在發(fā)生預(yù)定位置事件時,位置管理器420通知知曉 位置的應(yīng)用程序430。在這一點上,知曉位置的應(yīng)用程序430執(zhí)行被開發(fā)為處 理位置事件的事件驅(qū)動代碼例程。知曉位置的應(yīng)用程序430因此對所生成的位 置事件做出響應(yīng)。
在發(fā)生位置事件時,知曉位置的應(yīng)用程序430向地圖管理器440提供一組 加權(quán)準則。例如,該加權(quán)準則可包括建議的地圖分辨率以及知曉位置的應(yīng)用程 序430希望顯示在由地圖生成器444所繪制的地圖上的一組對象。知曉位置的 應(yīng)用程序430還可提供知曉位置的應(yīng)用程序430希望呈現(xiàn)在現(xiàn)有或生成的地圖 之上的對象。除了知曉位置的應(yīng)用程序430響應(yīng)于事件來驅(qū)動地圖生成器440對地圖的呈現(xiàn)之外,知曉位置的應(yīng)用程序430還可以是自驅(qū)動的。例如,知曉位置的應(yīng)用程序430可具有周期性地"拉取"信息并請求地圖管理器440呈現(xiàn) 新地圖的定時器。因此,除了 "推送"事件驅(qū)動響應(yīng)之外,知曉位置的應(yīng)用程 序430還可"拉取"數(shù)據(jù)并采取行動。地圖管理器440從知曉位置的應(yīng)用程序430中抽象出地圖信息,使得它無 需了解關(guān)于如何處理地圖或位置信息的細節(jié)。知曉位置的應(yīng)用程序430向地圖 管理器440提供它希望顯示的地圖的名稱或類型,而不是知曉位置的應(yīng)用程序 430必需包括復(fù)雜的地圖呈現(xiàn)代碼。地圖生成器444不被綁定到任何單個應(yīng)用 程序或呈現(xiàn)引擎。例如, 一個呈現(xiàn)引擎可以是基于矢量的,而另一呈現(xiàn)引擎可 以是基于位圖的。地圖管理器440因此向知曉位置的應(yīng)用程序430提供與地圖 生成器444交互的接口。地圖管理器440向知曉位置的應(yīng)用程序430提供一組豐富的特征,而無需 知曉位置的應(yīng)用程序430 了解如何實現(xiàn)地圖代碼的細節(jié)。例如,假設(shè)應(yīng)用程序 430希望允許用戶指向地圖上的一個區(qū)域,然后將該數(shù)據(jù)轉(zhuǎn)換成經(jīng)度和緯度, 或者在室內(nèi)地圖的情況下轉(zhuǎn)換成室內(nèi)坐標系。地圖管理器440將該信息提供給 知曉位置的應(yīng)用程序430。地圖管理器440擔當知曉位置的應(yīng)用程序430和地 圖生成器444以及地圖web服務(wù)446之間的代理,并向知曉位置的應(yīng)用程序 430提供功能。某些功能包括將移動設(shè)備上的X/Y屏幕坐標映射到地圖上的緯度/經(jīng)度/ 海拔高度地圖坐標。例如,用戶可在當前顯示地圖的屏幕上點擊以輸入其位置。 響應(yīng)于用戶輸入,地圖管理器440將X/Y屏幕位置映射到緯度/經(jīng)度/海拔高度 地圖位置。類似地,地圖管理器440將緯度/經(jīng)度/海拔高度地圖數(shù)據(jù)映射到X/Y 屏幕位置,從而允許知曉位置的應(yīng)用程序430動態(tài)地呈現(xiàn)在當前顯示的地圖之 上。諸如滑雪區(qū)域地圖等某些地圖呈現(xiàn)上的海拔高度可能會顯著影響X/Y位 置。有許多方式來將X/Y坐標轉(zhuǎn)換成緯度/經(jīng)度/海拔高度坐標。 一般而言,地 圖管理器440接收X/Y屏幕坐標,將該坐標匹配到地圖,然后基于地圖的比例 和地圖邊界,使用投影技術(shù)來提供緯度/經(jīng)度/海拔高度坐標。知曉位置的應(yīng)用 程序430無需了解地圖本身是如何呈現(xiàn)的或使用了什么"投影技術(shù)"。許多不同的地圖投影技術(shù)都是可能的,包括但不限于諸如墨卡托(Mercator)投影、 圓柱投影、極投影、網(wǎng)格投影等經(jīng)典地圖投影技術(shù),以及自定義投影技術(shù)(例 如,滑雪區(qū)域地圖或體育場座位地圖)。知曉位置的應(yīng)用程序430可以無縫地 在不同投影技術(shù)之間移動。地圖管理器440還向知曉位置的應(yīng)用程序430提供關(guān)于該組可用地圖的高 級事件。這些事件向知曉位置的應(yīng)用程序430提供了諸如滿足知曉位置的應(yīng)用 程序430所請求的準則的若干地圖何時可用等重要信息。知曉位置的應(yīng)用程序 430不限于使用單個地圖來顯示。例如, 一個應(yīng)用程序可在一段時間內(nèi)使用街 道地圖,然后在另一時間期間使用地鐵地圖(例如,顯示公共汽車路線、地鐵 隧道等)。地圖管理器440根據(jù)其適用性順序來對地圖排序。當沒有滿足知曉 位置的應(yīng)用程序430所提供的準則的地圖可用,但地圖管理器440可定位滿足 某些準則的地圖時,則提供這些地圖。地圖管理器440還允許將新地圖動態(tài)地提供到移動設(shè)備上。地圖可在任何 時刻被下載到移動設(shè)備上。例如,當添加了新的運輸路線時,可以下載用于公 共交通運輸應(yīng)用程序的新地圖。根據(jù)一個實施例,這些地圖使用兩個文件來表 示, 一個是二進制文件且對地圖管理器440是不透明的,另一個是它所理解的 文件。根據(jù)一個實施例,該地圖使用XML文件來表示。地圖管理器440能夠 讀取該XML文件,并獲得將該地圖添加到移動設(shè)備上的本地地圖數(shù)據(jù)存儲所 必需的信息。以下是地圖文件的示例性XML表示。<MapData Version="1.01,, MapProjection="SimpleGrid,, MetersPerPixel="2.80253449893166" MapInfoClass="none" CustomMapRender="none,,><SimpleLatLongRectangle MapFileName="device_map—1—O.PNG"><MapCoordinate Position="NorthWestComer,, Latitude="50.7867" Longitude="6.07814549019608" /><MapCoordinate Position-"NorthEastComer" Latitude="50.7867" Longitude="6.09407106666667"/><MapCoordinate Position="SouthWestCorner" Latitude="50,7766295454545" Longitude="6.07814726827094" /><MapCoordinate Position="SouthEastCorner', Latitude="50.7766295454545" Longitude="6.09406985757576" />
</SimpleLatLonRectangle>
</MapData>
mapprojection指的是用于顯示地圖的技術(shù)。在此具體示例中,地圖投影
類型是簡單網(wǎng)格。MetersPerPixel指的是地圖的平均分辨率。MapInfoClass 指的是是否有回答關(guān)于該地圖的問題所需要的自定義類。該字段允許開發(fā)者在 編程環(huán)境內(nèi)包括當顯示地圖時可被調(diào)用的自定義類。類似地, CustomMapRenderer指的是是否需要自定義呈現(xiàn)引擎來繪制地圖。 MapFileName字段指的是包含地圖呈現(xiàn)引擎將用于繪制地圖的信息的二進制 文件名。S[mpleLatLongRectangle字段將地圖標識為由緯度和經(jīng)度坐標定義
的矩形。
以下示例示出了所利用的某些自定義字段。
<MapData Version="1.01" MapProjection="SimpleGrid" MetersPerPixel="2.80253449893166" MapInfoClass-"CustomMapInfo 1" CustomMapRende產(chǎn)"CustomMapRender 1 ">
<CustomMapInfo 1 MapFiIeName="device—map— 1—O.PNG" classid="CustomMapEngine.MapInfoParser" />
<CustomMapRenderl MapFileName="device_map—1_0.PNG', classid="CustomMapEngine.MapRenderEngine,, />
</MapData>
地圖管理器440可具有在設(shè)備的地圖存儲442中可用的多個地圖,這些地 圖可被應(yīng)用程序430使用。地圖管理器440搜索設(shè)備的地圖存儲442中可用的 該組地圖,并査找將要使用的最佳地圖。在選擇之后,選中并呈現(xiàn)最適合的地 圖。
圖5描繪了在開發(fā)知曉位置的應(yīng)用程序時的交互的狀態(tài)圖500。在狀態(tài)510 處開始,定義感興趣的地理區(qū)域。對感興趣的區(qū)域的選擇可在部署知曉位置的應(yīng)用程序之前或之后發(fā)生。另外,該信息可在任何時刻被發(fā)送到移動設(shè)備。感 興趣的區(qū)域是與地圖有關(guān)的預(yù)定義區(qū)域。感興趣的區(qū)域可以是可定義的任何大 小。例如,感興趣的區(qū)域可以是一平方米的大小或整個國家。感興趣的區(qū)域是 基于知曉位置的應(yīng)用程序的需求來定義的。例如,假設(shè)所開發(fā)的知曉位置的應(yīng)用程序確定孩子何時離開學校并回家。 在該具體示例中,感興趣的區(qū)域可以是包括學校的區(qū)域以及包括孩子的家的另一區(qū)域。某些感興趣的區(qū)域可由開發(fā)者選擇,而其它感興趣的區(qū)域可由用戶選 擇。例如,諸如上述示例等許多知曉位置的應(yīng)用程序是在向用戶提供了知曉位 置的應(yīng)用程序之后配置的。在以上示例中,家長可選擇感興趣的區(qū)域。狀態(tài)520示出對地圖和地圖服務(wù)器的選擇。開發(fā)者可在系統(tǒng)中可用的地圖 之間選擇,或者可創(chuàng)建其自己的地圖。根據(jù)本發(fā)明的一個實施例,可用地圖在 知曉位置的應(yīng)用程序之間共享,使得不同的知曉位置的應(yīng)用程序可使用相同的 地圖。以此方式,每一知曉位置的應(yīng)用程序不需要開發(fā)其自己的地圖。在大多 數(shù)情況下,地圖呈現(xiàn)的細節(jié)對知曉位置的應(yīng)用程序的開發(fā)者隱藏。萬一開發(fā)者 希望包括其自己的呈現(xiàn)軟件,則開發(fā)者可如以下進一步描述地在狀態(tài)540處將 該呈現(xiàn)軟件結(jié)合到該環(huán)境中。在狀態(tài)530處,開發(fā)者對響應(yīng)于與知曉位置的應(yīng)用程序內(nèi)的感興趣的區(qū)域相關(guān)聯(lián)的事件而執(zhí)行的基于事件的位置代碼進行編程。該基于事件的代碼取決 于所開發(fā)的知曉位置的應(yīng)用程序的類型,并且可包括許多不同類型的數(shù)據(jù)。例 如, 一程序可在用戶到達預(yù)定位置時執(zhí)行動作。在上述跟蹤孩子的示例中,可 對一示例路線編程以基于在該特定時刻孩子的位置突出顯示家或?qū)W校。開發(fā)者 還可響應(yīng)于事件將項目放置到地圖上。在狀態(tài)540處,開發(fā)者還可設(shè)置用于地圖呈現(xiàn)的偏好。例如,開發(fā)者可能 希望對應(yīng)用程序的一部分使用基于矢量的呈現(xiàn)引擎,而對應(yīng)用程序的另一部分 使用基于位圖的系統(tǒng)。地圖引擎可由許多不同的源提供。希望構(gòu)建引擎的任何 開發(fā)者可提供符合編程接口的地圖引擎。每一地圖引擎被插入到開發(fā)系統(tǒng)中。在狀態(tài)550處,可使用真實和/或模擬的位置源來測試知曉位置的應(yīng)用程 序。該系統(tǒng)提供了位置源的模擬器,使得可在現(xiàn)場應(yīng)用之前測試知曉位置的應(yīng) 用程序。使用模擬的數(shù)據(jù)源向開發(fā)者提供了當發(fā)生位置事件時要測試的基于事件的位置代碼。對模擬的位置源數(shù)據(jù)的另一使用是"回放"先前記錄的真實世 界位置數(shù)據(jù)。這對于應(yīng)用程序開發(fā)、測試和調(diào)試而言是有用的。圖6呈現(xiàn)了示出用于選擇地圖或其它基于位置的內(nèi)容的知曉位置的框架600的示例性實現(xiàn)的流程圖。最初,在獲取操作602處,獲取地像。操作 604指示該地像可以是從任何源獲取的任何任意圖像。例如,該地像 可以從顯示圖像的移動設(shè)備中預(yù)存儲的源(例如,圖1的高速緩存模塊108) 獲得,或者從外部源獲得,不論是外部存儲器設(shè)備還是通過從地圖源(例如, 圖1的內(nèi)容服務(wù)器124)或甚至從另一用戶下載地像。該地像還可以 在下載到移動設(shè)備之前由呈現(xiàn)圖像來動態(tài)地呈現(xiàn)。顯示在移動設(shè)備上的地圖可 具有各種分辨率,并且以各種格式儲存。只要路標樹立和定向信息可被疊加在 地像上,任何任意的地圖就是可接受的。在顯示操作606處,在移動設(shè)備上顯示所獲取的或動態(tài)地呈現(xiàn)的地像 的至少一部分。由于諸如蜂窩電話、尋呼機或個人數(shù)字助理等移動設(shè)備通常具 有小顯示屏,因此可能無法顯示整個地像。在某些情況下,如果顯示器足 夠大或地圖足夠小,則可顯示整個地像或其很大一部分。在只能顯示地圖 的一部分的情況下,可能期望在地像上疊加附加的導(dǎo)航項目,例如方向信 息或陸標(以下稱為"陸標")?;蛘撸@些陸標可結(jié)合任何地圖顯示而不管 大小、分辨率或詳盡性。在第二顯示操作608中,這些陸標實際上被顯示在地像上。在一個實 現(xiàn)中,陸標可被疊加在地像上,使得路標與周圍地形的關(guān)系可被看見???顯示多個陸標,不論是靜態(tài)的還是圍繞地像移動的。在另一實現(xiàn)中, 一個 陸標可被認為是相對于地像上的其它陸標的錨或參考對象。在建立操作610中, 一旦顯示了陸標,就可建立錨定該陸標的參考對象。 或者,可以首先建立該錨對象,然后可顯示陸標(即,操作608和610的時間 順序可交換)。錨對象可位于地像上的任何地方,不論是在顯示屏上還是 外?;蛘撸绻^對象從顯示屏移開,例如在用戶改變位置或改變顯示器的分 辨率的情況下,則可選擇顯示屏上的地圖區(qū)域內(nèi)的一新的錨對象。將陸標錨定 到錨對象允許在陸標和錨對象之間維持某些關(guān)系。例如,可確定錨對象和陸標 之間的距離關(guān)系和方向關(guān)系。即使陸標和錨對象本身圍繞顯示屏移動、從顯示屏中消失或重新出現(xiàn)在顯 示屏上,也可維持該錨定關(guān)系。例如,錨對象最初可被顯示在地像的中央, 而其它陸標圍繞該錨對象。在地像上不適合顯示維度的位置處的任何陸標 可由該顯示維度內(nèi)指示該陸標在地像的未看見部分上的相對位置的路標 來引用。該路標用于補救將地圖維持在某一特定細節(jié)水平同時維持關(guān)于有關(guān)無 法以該細節(jié)水平適合顯示的項目的關(guān)系的信息的問題。
一旦錨對象在適當?shù)奈恢?,則在查詢操作612中確定陸標或錨對象是否在
移動設(shè)備的顯示屏上。如果對查詢操作612的回答是"是",即錨對象或陸標 實際上的確適合在顯示屏區(qū)域內(nèi),則在顯示操作614中將錨對象或陸標顯示在 屏幕上。只要錨對象或特定陸標的位置保持在顯示屏上的地像的區(qū)域內(nèi), 就顯示錨對象和陸標。注意,移動設(shè)備的用戶可通過縮小或放大地像或通 過從一個物理位置移到另一個來改變所顯示的地像區(qū)域。例如,假設(shè)用戶 正在查看一地像并決定在該地圖的特定部分上遠離顯示陸標之處放大。如 果用戶放得足夠大,則陸標不再適合在顯示器上(即,陸標將仍位于地像 本身上,但是可能不再能在移動設(shè)備屏幕上顯示)。
注意,當移動設(shè)備的用戶在地像上放大時所創(chuàng)建的地像的分辨率 越大,附加路標就越有可能出現(xiàn)。并且,如果錨對象的位置離開了屏幕,則也 可使用路標來指向錨對象。在這些情形中,維持操作616維持關(guān)于陸標或錨對 象的路標,只要它在顯示屏的可查看區(qū)域之外。路標樹立取決于陸標或錨對象 是否能被顯示而被打開或關(guān)閉。由此,當?shù)叵竦姆直媛驶蛴脩舻奈恢酶淖?時,知曉位置的框架600的狀態(tài)在操作614和616之間交替。
此外,當框架600在維持操作616時,可實現(xiàn)一可任選的創(chuàng)建操作618。 在創(chuàng)建操作618中,創(chuàng)建一定向標記以向用戶指示關(guān)于路標所表示的陸標的方 向、距離或其它信息。定向標記可以自動、在用戶請求時或在某一其它條件下 創(chuàng)建。定向標記可包括相應(yīng)的方向矢量以幫助用戶相對于地像來定向其自 身。
圖7提供了關(guān)于以上圖6的維持操作616的附加細節(jié),該操作在圖7中被 重新標號為操作702。在査詢操作704中,判定要顯示幾種可能類型的可用信 息中的哪一種作為路標的一部分。第一可能性在操作706處指示,其中顯示屏幕外陸標的名字作為路標。名 字僅是示例性的,并且可改為使用其它標識符號,例如數(shù)字或圖形圖標。在操 作708處描繪的第二種可能性是指示陸標到錨對象的距離。也可顯示其它關(guān)系,諸如錨對象和陸標之間的時間關(guān)系。在操作710中描繪的第三種可能性是開發(fā)一定向引用。該定向引用可用于指向用戶必須移動以到達該陸標的相對于錨對 象的方向。定向引用不必確切地指向陸標,即像矢量那樣,而是可基本上指向 適當?shù)姆较??;蛘?,對于更準確的描述,可提供具有到陸標的矢量的定向標記。錨對象和陸標之間的方向矢量的創(chuàng)建在創(chuàng)建操作712中指示。也可提供允許用戶使用 矢量來將其自身與不與地像相關(guān)聯(lián)的定向標記,例如太陽的位置對齊的方 向矢量。方向矢量也可用于幫助明確樹立路標的陸標、定向標記和錨對象之間 的特殊關(guān)系。最后,在更新操作714中,可動態(tài)地更新可在路標中顯示的任何關(guān)系。由 此,陸標可在例如一個陸標對應(yīng)于移動設(shè)備的用戶,而該用戶然后將該移動設(shè) 備給予將經(jīng)由該移動設(shè)備來跟蹤的第二用戶時改變名字。當然,定向引用、矢 量或其他東西以及距離計算不必在移動設(shè)備的用戶在地像所定義的區(qū)域 中移動時更新。圖8描繪了用于在基于位置的高速緩存系統(tǒng)中使用的示例性移動設(shè)備 800。移動設(shè)備800包括如在任何標準計算設(shè)備中的處理器802以及存儲器804。 下文中所描述的處理器802、存儲器804、以及其他組件可以通過系統(tǒng)總線814 來接口。系統(tǒng)總線814可以是若干類型的總線結(jié)構(gòu)中的任何一種,包括存儲器 總線或存儲器控制器、外圍總線、交換光纖、點對點連接、以及局部總線。存 儲器804 —般包括易失性存儲器(例如,RAM)和非易失性存儲器(例如, ROM、 PCMCIA卡)。操作系統(tǒng)806可以在存儲器804中駐留并且在處理器 802上執(zhí)行。示例性操作系統(tǒng)可以是來自微軟公司的WINDOWS CE操作系統(tǒng)。一個或多個應(yīng)用程序806可被加載到存儲器804中以由處理器806結(jié)合操 作系統(tǒng)606來執(zhí)行。示例性應(yīng)用程序可包括電子郵件程序、日程安排程序、個 人信息管理程序、文字處理程序、電子數(shù)據(jù)表程序、因特網(wǎng)瀏覽器程序、音樂 文件管理程序、以及照片和視頻文件管理程序。存儲器804還可包括在處理器802上執(zhí)行的通知管理器810。如將在以下更詳細描述的,通知管理器810處 理從應(yīng)用程序808到一個或多個用戶通知設(shè)備的通知請求。移動計算設(shè)備800還具有可以使用一個或多個電池來實現(xiàn)的電源812。通 過使用代替電池或為電池重新充電的與移動設(shè)備800相連接的電源線或供電數(shù) 據(jù)傳輸電纜,電源812也可以來自外部AC源。電源812被連接到移動設(shè)備600 的大多數(shù)(如果不是全部)組件以供每個組件工作。在一個實施例中,移動設(shè)備800可包括通信能力,例如,移動設(shè)備800 作為無線電話來工作。具有電話能力的電話無線設(shè)備800 —般包括用于與無線 電話網(wǎng)接口的天線816、發(fā)射機818、以及接收機820。另外,移動設(shè)備800 可包括話筒834以及揚聲器836以供用戶進行電話通信。揚聲器836還可以是 用于與有線或無線耳機或頭戴式耳機相連接的有線或無線輸出端口的形式。移動設(shè)備800可以通過一個或多個通信接口 822與眾多其他網(wǎng)絡(luò)相連接, 例如,無線LAN (Wi-Fi)網(wǎng)絡(luò)、有線LAN或WAN、 GPRS、藍牙、UMTS 或任何其他網(wǎng)絡(luò)。天線816或多根天線可用于不同的通信目的,例如,射頻識 別(RFID)、微波發(fā)射和接收、Wi-Fi發(fā)射和接收、以及藍牙發(fā)射和接收。移動設(shè)備800 —般還包括某一類型的用戶界面。如圖8所示,移動設(shè)備 800可具有鍵盤824和顯示器826。鍵盤824可以是有限數(shù)字觸摸墊、全"qwerty" 鍵盤、或兩者的組合。"鍵盤824也可包括專用按鈕、滾輪、跟蹤球、以及其 他界面選項,例如,菜單選擇或?qū)Ш芥I或電話功能鍵。除了描繪信息,顯示器 826還可以是觸摸屏顯示器,該顯示器允許通過用用戶的手指或指示筆觸摸顯 示屏以通過圖形界面來做出輸入選擇或直接在在顯示器826上寫字母和數(shù)字來 輸入數(shù)據(jù)。移動設(shè)備800還可具有一個或多個外部通知機制。在圖8所描繪的實施例 中,移動設(shè)備800包括音頻生成器828、發(fā)光二極管(LED) 830、以及振動設(shè) 備832。這些設(shè)備可直接耦合到電源812,使得當被激活時,即使處理器802 以及其它組件可能關(guān)閉以節(jié)省電池電量,它們也可保持一段由通知管理器810 控制的保持通電時間??捎米鲀?nèi)容服務(wù)器的示例性硬件和操作環(huán)境在圖9中示出。該硬件包括計 算機900形式的通用計算設(shè)備,包括處理單元902、系統(tǒng)存儲器904、以及操作上將包括系統(tǒng)存儲器904在內(nèi)的各種系統(tǒng)組件耦合至處理單元902的系統(tǒng)總 線918??梢灾淮嬖谝粋€或者存在一個以上處理單元902,使得計算機900的 處理器包括單個中央處理單元(CPU),或者多個處理單元,通常稱為并行處 理環(huán)境。計算機900可以是常規(guī)計算機、分布式計算機、或者任何其他類型的 計算機,本發(fā)明不限于此。
系統(tǒng)總線918可以是幾種類型的總線體系結(jié)構(gòu)中的任何一種,包括存儲器 總線或存儲控制器、外圍總線、交換光纖、點對點連接、以及使用各種總線體 系結(jié)構(gòu)中的任一種的局部總線。系統(tǒng)存儲器904可被簡單地稱為存儲器,并且 包括只讀存儲器(ROM)卯6和隨機存取存儲器(RAM) 905?;据斎?輸出 系統(tǒng)(BIOS) 908被存儲在ROM 906中,它包含幫助在諸如啟動期間在計算 機900內(nèi)各元件之間傳遞信息的基本例程。計算機900還可包括用于對硬盤(未 示出)進行讀寫的硬盤驅(qū)動器930,用于對可移動磁盤936進行讀寫的磁盤驅(qū) 動器932,以及用于對可移動光盤938,如CDROM或其它光介質(zhì)進行讀寫的 光盤驅(qū)動器934。
硬盤驅(qū)動器930、磁盤驅(qū)動器932和光盤驅(qū)動器934分別由硬盤驅(qū)動器接 口 920、磁盤驅(qū)動器接口 922和光盤驅(qū)動器接口 924連接到系統(tǒng)總線918。驅(qū) 動器及其相關(guān)聯(lián)的計算機可讀介質(zhì)為計算機900提供了計算機可讀指令、數(shù)據(jù) 結(jié)構(gòu)、程序模塊和其它數(shù)據(jù)的非易失性存儲。本領(lǐng)域的技術(shù)人員應(yīng)當理解,在 示例操作環(huán)境中可以使用可儲存可由計算機訪問的數(shù)據(jù)的任何類型的計算機 可讀介質(zhì),例如,磁帶盒、閃存卡、數(shù)字視頻盤、RAM、以及ROM。
多個程序模塊可被儲存在硬盤930、磁盤932、光盤934、 ROM 906、或 RAM 905上,包括操作系統(tǒng)910、 一個或多個應(yīng)用程序912、其它程序模塊914、 以及程序數(shù)據(jù)916。在一個示例性實現(xiàn)中,知曉位置的地圖管理和操作可以作 為操作系統(tǒng)910、應(yīng)用程序912、或其他程序模塊914的一部分而被包含在內(nèi)。 狀態(tài)描述文件、對象數(shù)據(jù)值、以及其他數(shù)據(jù)可作為程序數(shù)據(jù)916來儲存。
用戶可通過諸如鍵盤940和如鼠標等定點設(shè)備942等的輸入設(shè)備向個人計 算機900中輸入命令和信息。其他輸入設(shè)備(未示出)可包括,例如,話筒、 操縱桿、游戲手柄、圖形輸入板、觸摸屏設(shè)備、圓盤式衛(wèi)星天線、掃描儀、傳 真機、以及攝像機。這些和其它輸入設(shè)備通常通過耦合到系統(tǒng)總線918的串行
24端口接口 926連接到處理單元902,但也可通過其它接口連接,如并行端口、 游戲端口、或通用串行總線(USB)。
監(jiān)視器944或其它類型的顯示設(shè)備也經(jīng)由諸如視頻適配器946等接口連接 至系統(tǒng)總線918。除監(jiān)視器944之外,計算機通常包括其它外圍輸出設(shè)備,如 打印機958和揚聲器(未示出)。這些和其它輸入設(shè)備通常通過耦合到系統(tǒng)總 線918的串行端口接口 926連接到處理單元902,但也可通過其它接口連接, 如并行端口、游戲端口、或通用串行總線(USB)。
計算機900可使用至一個或多個遠程計算機,諸如遠程計算機954的邏輯 連接在網(wǎng)絡(luò)化環(huán)境中操作。這些邏輯連接由耦合至計算機900或者與其整合的 通信設(shè)備來實現(xiàn),本發(fā)明不限于特定類型的通信設(shè)備。遠程計算機954可以是 另一計算機、服務(wù)器、路由器、網(wǎng)絡(luò)個人計算機、客戶機、對等設(shè)備或其它常 見的網(wǎng)絡(luò)節(jié)點,并且通常包括許多或所有以上相對于計算機900所描述的元件, 盡管在圖9中僅示出了存儲器存儲設(shè)備956。圖9所描繪的邏輯連接包括局域 網(wǎng)(LAN) 950和廣域網(wǎng)(WAN) 952。這樣的網(wǎng)絡(luò)環(huán)境常見于辦公室網(wǎng)絡(luò)、 企業(yè)范圍計算機網(wǎng)絡(luò)、內(nèi)聯(lián)網(wǎng)和因特網(wǎng),這些網(wǎng)絡(luò)可以是所有類型的網(wǎng)絡(luò)。
當在LAN 950環(huán)境中使用時,計算機900通過作為一種類型的通信設(shè)備 的網(wǎng)絡(luò)接口或適配器928連接到局域網(wǎng)950。當在WAN 952環(huán)境中使用時, 計算機900通常包括調(diào)制解調(diào)器948、網(wǎng)絡(luò)適配器、或用于通過廣域網(wǎng)952建 立通信的任何其他類型的通信設(shè)備?;驗閮?nèi)置或為外置的調(diào)制解調(diào)器948經(jīng)由 串行端口接口 926連接到系統(tǒng)總線918。在網(wǎng)絡(luò)化環(huán)境中,相對于個人計算機 900所描繪的程序模塊或其部分可以存儲在遠程存儲器存儲設(shè)備中。可以理解, 所示的網(wǎng)絡(luò)連接是示例性的,且可以使用在計算機之間建立通信鏈路的其它手 段和通信設(shè)備。
此處所描述的技術(shù)可在一個或多個系統(tǒng)中被實現(xiàn)為邏輯操作和/或模塊。 邏輯操作可被實現(xiàn)為在一個或多個計算機系統(tǒng)中執(zhí)行的處理器實現(xiàn)的步驟的 序列以及在一個或多個計算機系統(tǒng)中的互連機器或電路模塊。同樣地,各組件 模塊的描述可以按照由模塊執(zhí)行或?qū)崿F(xiàn)的操作來提供。所得的實現(xiàn)是取決于實 現(xiàn)所描述的技術(shù)的底層系統(tǒng)的性能要求的選擇問題。從而,組成此處所述的技 術(shù)的實施例的邏輯操作被不同地稱為操作、步驟、對象或模塊。此外,應(yīng)該理解,除非以其他方式明確地要求保護或權(quán)利要求語言固有地需要一特定的次 序,否則邏輯操作可以按任何次序來執(zhí)行。以上說明、示例和數(shù)據(jù)提供了對本發(fā)明的各示例性實施例的結(jié)構(gòu)和使用的 全面描述。盡管以上帶著一定程度的特殊性或?qū)σ粋€或多個單獨實施例的參考 描述了本發(fā)明的各實施例,但是本領(lǐng)域的技術(shù)人員能夠?qū)λ_的實施例做出 多種更改而不背離本發(fā)明的精神或范圍。更具體地,應(yīng)該理解,所描述的技術(shù) 可以獨立于個人計算機來采用。因此構(gòu)想了其他實施例。其目的是以上描述中 所包含以及在附圖中所示出的所有一切應(yīng)當解釋為僅僅是說明了特定實施例 而非限制??梢詫毠?jié)或結(jié)構(gòu)做出改變而不背離如所附權(quán)利要求書中定義的本發(fā)明的基本要素。
權(quán)利要求
1.一種用于向移動通信設(shè)備(102)動態(tài)地提供位置相關(guān)內(nèi)容的方法,所述方法包括跟蹤所述移動通信設(shè)備的當前位置(302);預(yù)測所述移動通信設(shè)備的將來位置(306);確定與所述將來位置相關(guān)的內(nèi)容當前是否儲存在所述移動通信設(shè)備上(308);以及在確定所述內(nèi)容當前未儲存在所述移動通信設(shè)備上時,經(jīng)由網(wǎng)絡(luò)連接從內(nèi)容存儲檢索所述內(nèi)容(314)。
2. 如權(quán)利要求1所述的方法,其特征在于,還包括經(jīng)由所述移動通信設(shè) 備的界面向用戶呈現(xiàn)所述內(nèi)容(316)。
3. 如權(quán)利要求2所述的方法,其特征在于,所述界面包括可視顯示(826)。
4. 如權(quán)利要求1所述的方法,其特征在于,所述內(nèi)容包括包含所述移動 通信設(shè)備(102)的將來位置(202b)的區(qū)域的地圖。
5. 如權(quán)利要求1所述的方法,其特征在于,還包括通過以下步驟管理所 述移動通信設(shè)備上所述內(nèi)容的存儲在從所述內(nèi)容存儲檢索到所述內(nèi)容時將所述內(nèi)容儲存在所述移動通信設(shè) 備上;以及清除與所述移動通信設(shè)備的將來位置最不相關(guān)的不相關(guān)內(nèi)容的內(nèi)容。
6. 如權(quán)利要求1所述的方法,其特征在于,還包括基于所述移動通信設(shè) 備上儲存的上下文信息選擇所述內(nèi)容。
7. 如權(quán)利要求6所述的方法,其特征在于,所述上下文信息包括所述移 動通信設(shè)備的用戶的偏好信息。
8. 如權(quán)利要求6所述的方法,其特征在于,所述上下文信息包括關(guān)于所 述移動通信設(shè)備的狀態(tài)信息。
9. 如權(quán)利要求6所述的方法,其特征在于,所述上下文信息包括所述移 動通信設(shè)備的移動信息。
10. —種具有用于執(zhí)行實現(xiàn)如權(quán)利要求1所述的方法的計算機進程的計算機可執(zhí)行指令的計算機可讀介質(zhì)。
11. 一種基于位置的高速緩存系統(tǒng)(00),包括 移動通信設(shè)備(102),所述移動通信設(shè)備還包括.確定所述移動通信設(shè)備(102)的當前位置的位置確定模塊(104); 估計所述移動通信設(shè)備(102)的將來位置的方向估計器模塊G06); 儲存與所述將來位置相關(guān)的內(nèi)容的內(nèi)容容器(110);提供到所述移動通信設(shè)備(102)的網(wǎng)絡(luò)連通性的連接管理模塊(114);以及經(jīng)由所述連接管理模塊(114)從所述內(nèi)容容器(110)或所述移動 通信設(shè)備(102)外部的替換內(nèi)容源選擇與所述將來位置相關(guān)的內(nèi)容的高速緩存模塊(108);以及向所述移動通信設(shè)備(102)提供與所述將來位置相關(guān)的內(nèi)容的內(nèi)容服務(wù)器(124);連接所述移動通信設(shè)備(102)和所述內(nèi)容服務(wù)器(124)的網(wǎng)絡(luò)(122);以及可由所述移動通信設(shè)備(102)訪問的、關(guān)于所述移動通信設(shè)備(102)的 當前位置信息源(116)。
12. 如權(quán)利要求11所述的基于位置的高速緩存系統(tǒng)(100),其特征在于 所述移動通信設(shè)備(102)還包括用戶界面(824、 826);以及 所述當前位置信息源包括由用戶經(jīng)由所述用戶界面(824、 826)輸入到所述移動通信設(shè)備(102)中的數(shù)據(jù)。
13. 如權(quán)利要求ll所述的基于位置的高速緩存系統(tǒng),其特征在于 所述移動通信設(shè)備(102)還包括用戶界面(824、 826);以及 與所述將來位置有關(guān)的所述內(nèi)容經(jīng)由所述用戶界面(824、 826)呈現(xiàn)給用戶。
14. 如權(quán)利要求13所述的基于位置的高速緩存系統(tǒng),其特征在于,所述 內(nèi)容是地圖(202),而所述用戶界面是可視顯示(826)。
15.如權(quán)利要求11所述的基于位置的高速緩存系統(tǒng)(100),其特征在于 所述當前位置信息源包括全球定位系統(tǒng)服務(wù)(116);以及所述移動通信設(shè)備(102)還包括全球定位系統(tǒng)接收機。
16. 如權(quán)利要求11所述的基于位置的高速緩存系統(tǒng)(100),其特征在于: 所述源包括通信信號(118、 120)的集合;以及所述移動通信設(shè)備(102)中的位置確定模塊(104)適用于基于所述通信 信號(118、 120)的集合對所述移動通信設(shè)備(102)的當前位置進行三角測
17. —種提供基于位置的高速緩存功能的移動通信設(shè)備(102),包括 確定所述移動通信設(shè)備(102)的當前位置的位置確定模塊(104); 估計所述移動通信設(shè)備(102)的將來位置的方向估計器模塊(106); 儲存與所述將來位置相關(guān)的內(nèi)容的內(nèi)容容器(110); 提供到所述移動通信設(shè)備(102)的網(wǎng)絡(luò)連通性的連接管理模塊(114);以及經(jīng)由所述連接管理模塊(114)從所述內(nèi)容容器(110)或所述移動通信設(shè) 備(102)外部的替換內(nèi)容源選擇與所述將來位置相關(guān)的所述內(nèi)容的高速緩存 模塊(108)。
18. 如權(quán)利要求17所述的移動通信設(shè)備(102),其特征在于,還包括向 用戶呈現(xiàn)與所述將來位置相關(guān)的所述內(nèi)容的用戶界面(824、 826)。
19. 如權(quán)利要求18所述的移動通信設(shè)備,其特征在于,所述用戶界面包 括可視顯示(826)。
20. 如權(quán)利要求17所述的移動通信設(shè)備(102),其特征在于,所述位置 確定模塊(104)適用于基于通信信號(118、 ]20)的集合對所述移動通信設(shè) 備(102)的當前位置進行三角測量。
全文摘要
一種基于位置的高速緩存系統(tǒng)(100)為移動通信設(shè)備(102)提供了動態(tài)地提供與用戶的位置有關(guān)的內(nèi)容的能力。內(nèi)容可包括預(yù)期移動設(shè)備的用戶行進的路線的一系列地圖段。也可提供其它相關(guān)內(nèi)容,例如與所行進的路線相關(guān)的名勝信息。該系統(tǒng)跟蹤移動設(shè)備(102)的當前位置,并預(yù)測移動設(shè)備(102)的將來位置。基于對將來位置的預(yù)測,高速緩存模塊(108)確定與將來位置有關(guān)的內(nèi)容當前是否被儲存在移動設(shè)備(102)上。如果適當?shù)膬?nèi)容不在移動設(shè)備(102)上,則高速緩存模塊(108)經(jīng)由網(wǎng)絡(luò)連接(122)從內(nèi)容服務(wù)器(124)檢索該內(nèi)容。內(nèi)容信息可以基于例如用戶偏好、移動信息以及設(shè)備狀態(tài)信息來從上下文上選擇。
文檔編號H04L29/08GK101405572SQ200780009364
公開日2009年4月8日 申請日期2007年2月13日 優(yōu)先權(quán)日2006年3月15日
發(fā)明者G·P·布拉徹, I·W·塞爾莫, R·費斯爾, W·馬努瑟克 申請人:微軟公司