特許第6017566号(P6017566)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ グーグル インコーポレイテッドの特許一覧

特許6017566モバイル装置生成事象分析に基づく地図タイルデータのプリフェッチ
<>
  • 特許6017566-モバイル装置生成事象分析に基づく地図タイルデータのプリフェッチ 図000002
  • 特許6017566-モバイル装置生成事象分析に基づく地図タイルデータのプリフェッチ 図000003
  • 特許6017566-モバイル装置生成事象分析に基づく地図タイルデータのプリフェッチ 図000004
  • 特許6017566-モバイル装置生成事象分析に基づく地図タイルデータのプリフェッチ 図000005
  • 特許6017566-モバイル装置生成事象分析に基づく地図タイルデータのプリフェッチ 図000006
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6017566
(24)【登録日】2016年10月7日
(45)【発行日】2016年11月2日
(54)【発明の名称】モバイル装置生成事象分析に基づく地図タイルデータのプリフェッチ
(51)【国際特許分類】
   G09B 29/00 20060101AFI20161020BHJP
   G09B 29/10 20060101ALI20161020BHJP
   G06T 11/60 20060101ALI20161020BHJP
   G01C 21/32 20060101ALI20161020BHJP
   G01C 21/26 20060101ALI20161020BHJP
【FI】
   G09B29/00 Z
   G09B29/10 A
   G06T11/60 300
   G01C21/32
   G01C21/26 P
【請求項の数】13
【全頁数】22
(21)【出願番号】特願2014-531821(P2014-531821)
(86)(22)【出願日】2012年8月20日
(65)【公表番号】特表2014-532196(P2014-532196A)
(43)【公表日】2014年12月4日
(86)【国際出願番号】US2012051564
(87)【国際公開番号】WO2013048640
(87)【国際公開日】20130404
【審査請求日】2015年8月6日
(31)【優先権主張番号】13/244,686
(32)【優先日】2011年9月26日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】502208397
【氏名又は名称】グーグル インコーポレイテッド
(74)【代理人】
【識別番号】100108453
【弁理士】
【氏名又は名称】村山 靖彦
(74)【代理人】
【識別番号】100110364
【弁理士】
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100133400
【弁理士】
【氏名又は名称】阿部 達彦
(72)【発明者】
【氏名】ノース, トーマス ジー.
(72)【発明者】
【氏名】カベリエ, ハンス−オレイ
【審査官】 彦田 克文
(56)【参考文献】
【文献】 特開2006−078872(JP,A)
【文献】 特開2003−179972(JP,A)
【文献】 特開2009−177697(JP,A)
【文献】 特開2001−202384(JP,A)
【文献】 国際公開第2008/054805(WO,A1)
【文献】 特表2007−531004(JP,A)
【文献】 佐藤健哉 他,データ放送を利用した車載機器への情報配信システム,マルチメディア,分散,協調とモバイル(DICOMO 2000)シンポジウム論文集 Vol.2000 No.7,2000年 6月28日,Vol.2000 No.7,685〜690頁
(58)【調査した分野】(Int.Cl.,DB名)
G09B 29/00
G09B 29/10
G06T 11/60
G01C 21/26
G01C 21/32
(57)【特許請求の範囲】
【請求項1】
モバイルコンピューティング装置上で実行するマッピングモジュールでの活動に基づいて、地理的位置のグラフィカル表現を前記モバイルコンピューティング装置に表示する地図タイルデータを前記モバイルコンピューティング装置にプリフェッチするためのコンピュータ実施方法であって、前記方法が、
ユーザーマッピング活動データをユーザーマッピング活動システムで前記モバイルコンピューティング装置から受信することであって、前記ユーザーマッピング活動データが、前記モバイルコンピューティング装置上で実行する前記マッピングモジュールによって生成されて、地理的位置を示し、前記ユーザーマッピング活動データが、前記マッピングモジュールを使用して実行された検索に対応する地理的位置のログ、前記マッピングモジュールによって前記モバイルコンピューティング装置上でレンダリングされた地図内の地理的位置、および前記モバイルコンピューティング装置上でレンダリングされた地図内に表された地理的位置間の道順に対する経路指定情報のうちの1つまたは複数を含む、ユーザーマッピング活動データを前記モバイルコンピューティング装置から受信することと、
前記ユーザーマッピング活動データから地理的位置データを抽出することと、
前記地理的位置データをネットワーク接続を経由してリモートマッピングシステムに送信することと、
地図タイルデータを前記ユーザーマッピング活動データから抽出された前記地理的位置データと照合することであって、前記地図タイルデータが均一のサイズを有する地図画像の部分を含む、地図タイルデータを前記地理的位置データと照合することと、
前記一致した地図タイルデータをベクトル形式で前記リモートマッピングシステムから前記モバイルコンピューティング装置に送信することと、
前記一致した地図タイルデータを、前記モバイルコンピューティング装置のキャッシュ記憶装置に格納することと、
記モバイルコンピューティング装置で表示するために、前記リモートマッピングシステムからさらなる伝達を受信することなく、その後の前記モバイルコンピューティング装置からの地図タイルデータの要求に応答して、前記キャッシュ記憶装置から前記一致した地図タイルデータを取得することと、を含む、コンピュータ実施方法。
【請求項2】
前記抽出された地理的位置データが関連性があるかどうかを判断するために、前記ユーザーマッピング活動データを分析することをさらに含み、関連性のある地理的位置データが、閾値を上回るいくつかの地理的位置指標を含む、請求項1に記載のコンピュータ実施方法。
【請求項3】
前記地理的位置データを前記リモートマッピングシステムに送信することが、関連性のある地理的位置データを前記リモートマッピングシステムに送信することを含む、請求項に記載のコンピュータ実施方法。
【請求項4】
リモートマッピングシステムデータを、前記ユーザーマッピング活動データから抽出された前記地理的位置データと照合することが、リモートマッピングシステムデータを前記ユーザーマッピング活動データから抽出された前記関連性のある地理的位置データと照合することを含む、請求項に記載のコンピュータ実施方法。
【請求項5】
前記地理的位置データが、市の名前、住所、空港名コード、または全地球測位システム座標のうちの1つもしくは複数を含む、請求項1に記載のコンピュータ実施方法。
【請求項6】
地理的位置データを前記ユーザーマッピング活動データから抽出することが、前記ユーザーマッピング活動データを解析することを含む、請求項1に記載のコンピュータ実施方法。
【請求項7】
モバイルコンピューティング装置上で実行するマッピングモジュールでの活動に基づいて、地理的位置のグラフィカル表現を前記モバイルコンピューティング装置に表示する地図タイルデータを前記モバイルコンピューティング装置にプリフェッチするためのコンピュータシステムであって、前記システムが、
モバイルコンピューティング装置で実行可能なユーザーマッピング活動モジュールであって、前記ユーザーマッピング活動モジュールが、ユーザーマッピング活動データを受信し、地理的位置データを前記ユーザーマッピング活動データから抽出するための命令を含み、前記モバイルコンピューティング装置上で実行する前記マッピングモジュールが、前記ユーザーマッピング活動データを生成し、かつ、前記ユーザーマッピング活動データが、前記マッピングモジュールを使用して実行された検索に対応する位置のログ、前記マッピングモジュールによって前記モバイルコンピューティング装置上でレンダリングされた地図内の地理的位置、および前記モバイルコンピューティング装置上でレンダリングされた地図内に表された地理的位置間の道順に対する経路指定情報のうちの1つまたは複数を含む、ユーザーマッピング活動モジュールと、
前記地理的位置データを前記ユーザーマッピング活動モジュールから受信し、リモートマッピングシステムデータを前記ユーザーマッピング活動データから抽出された前記地理的位置データと照合して、前記一致したリモートマッピングシステムデータを、前記モバイルコンピューティング装置でのキャッシュ記憶のために、前記モバイルコンピューティング装置に送信するための命令を含むリモートマッピングシステムであって、前記一致したリモートマッピングシステムデータが、均一のサイズを有する地図画像の部分を含む、リモートマッピングシステムと、を備える、コンピュータシステム。
【請求項8】
モバイルコンピューティング装置上で実行しているマッピングモジュールでの活動に基づいて、地理的位置のグラフィカル表現を前記モバイルコンピューティング装置に表示する地図タイルデータを前記モバイル装置にプリフェッチするためのコンピュータ実施方法であって、前記方法が、
ユーザーマッピング活動データを前記マッピングモジュールにおいて生成することであって、前記ユーザーマッピング活動データが、地理的位置を示し、かつ、前記マッピングモジュールを使用して実行された検索に対応する地理的位置のログ、前記マッピングモジュールによって前記モバイルコンピューティング装置上でレンダリングされた地図内の地理的位置、および前記モバイルコンピューティング装置上でレンダリングされた地図内に表された地理的位置間の道順に対する経路指定情報のうちの1つまたは複数を含む、ユーザーマッピング活動データを生成することと、
前記モバイル装置上の前記ユーザー活動データから地理的位置データを抽出することと、
前記地理的位置データを、ネットワーク接続を経由してリモートマッピングシステムに送信することと、
地図タイルデータを前記ユーザーマッピング活動データから抽出された前記地理的位置データと照合することであって、前記地図タイルデータが均一のサイズを有する地図画像の部分を含む、地図タイルデータを前記地理的位置データと照合することと、
前記一致した地図タイルデータをベクトル形式で前記モバイルコンピューティング装置に送信することと、
前記一致した地図タイルデータを、前記モバイルコンピューティング装置のキャッシュ記憶装置に格納することと、
その後、前記モバイルコンピューティング装置で表示するために、前記リモートマッピングシステムからさらなる伝達を受信することなく、前記キャッシュ記憶装置から前記一致した地図タイルデータを取得することと、を含む、コンピュータ実施方法。
【請求項9】
モバイルコンピューティング装置上で実行しているマッピングモジュールでのユーザー活動に基づいて、地図タイルデータを前記モバイル装置にプリフェッチするための命令を格納する有形的コンピュータ可読媒体であって、前記命令がプロセッサによって実行される場合に、前記プロセッサに、
ユーザーマッピング活動データを前記マッピングモジュールで生成することであって、前記ユーザーマッピング活動データが、地理的位置を示し、かつ、前記マッピングモジュールを使用して実行された検索に対応する地理的位置のログ、前記マッピングモジュールによって前記モバイルコンピューティング装置上でレンダリングされた地図内の地理的位置、および前記モバイルコンピューティング装置上でレンダリングされた地図内に表された地理的位置間の道順に対する経路指定情報のうちの1つまたは複数を含む、ユーザーマッピング活動データを生成することと、
前記モバイル装置上の前記ユーザー活動データから地理的位置データを抽出することと、
前記地理的位置データを、ネットワーク接続を経由してリモートマッピングシステムに送信することと、
地図タイルデータを前記ユーザーマッピング活動データから抽出された前記地理的位置データと照合することであって、前記地図タイルデータが均一のサイズを有する地図画像の部分を含む、地図タイルデータを前記地理的位置データと照合することと、
前記一致した地図タイルデータをベクトル形式で前記モバイルコンピューティング装置に送信することと、
前記一致した地図タイルデータを、前記モバイルコンピューティング装置のキャッシュ記憶装置に格納することと、
その後、前記モバイルコンピューティング装置で表示するために、前記リモートマッピングシステムからさらなる伝達を受信することなく、前記キャッシュ記憶装置から前記一致した地図タイルデータを取得することと、を行わせる、有形的コンピュータ可読媒体。
【請求項10】
モバイルコンピューティング装置上で実行する、ウェブサービスアカウントに対応するマッピングモジュールでの活動に基づいて、地理的位置のグラフィカル表現を前記モバイルコンピューティング装置に表示するように構成された地図タイルデータを前記モバイルコンピューティング装置にプリフェッチするためのコンピュータ実施方法であって、前記方法が、
ユーザーマッピング活動データをユーザーマッピング活動システムで前記モバイルコンピューティング装置から受信することであって、前記ユーザーマッピング活動データが、前記ウェブサービスアカウントに対応し、地理的位置を示し、前記ユーザーマッピング活動データが、検索に対応する地理的位置のログ、および前記モバイルコンピューティング装置上でレンダリングされた地図内に表された地理的位置間の道順に対する経路指定情報のうちの1つまたは複数を含む、ユーザーマッピング活動データを前記モバイルコンピューティング装置から受信することと、
前記ユーザーマッピング活動データから地理的位置データを抽出することと、
前記地理的位置データをネットワーク接続を経由してリモートマッピングシステムに送信することと、
地図タイルデータを前記ユーザーマッピング活動データから抽出された前記地理的位置データと照合することであって、前記地図タイルデータが均一のサイズを有する地図画像の部分を含む、地図タイルデータを前記地理的位置データと照合することと、
前記一致した地図タイルデータをベクトル形式で前記リモートマッピングシステムから前記モバイルコンピューティング装置に送信することと、
前記一致した地図タイルデータを、前記モバイルコンピューティング装置のキャッシュ記憶装置に格納することと、
前記モバイルコンピューティング装置で表示するために、前記リモートマッピングシステムからさらなる伝達を受信することなく、その後の前記モバイルコンピューティング装置からの地図タイルデータの要求に応答して、前記キャッシュ記憶装置から前記一致した地図タイルデータを取得することと、を含む、コンピュータ実施方法。
【請求項11】
モバイルコンピューティング装置上で実行する、ウェブサービスアカウントに対応するマッピングモジュールでの活動に基づいて、地理的位置のグラフィカル表現を前記モバイルコンピューティング装置に表示するように構成された地図タイルデータを前記モバイルコンピューティング装置にプリフェッチするためのコンピュータシステムであって、前記システムが、
モバイルコンピューティング装置で実行可能なユーザーマッピング活動モジュールであって、前記ユーザーマッピング活動モジュールが、ユーザーマッピング活動データを受信し、地理的位置データを前記ユーザーマッピング活動データから抽出するための命令を含み、前記ユーザーマッピング活動データが、前記ウェブサービスアカウントに対応し、検索に対応する地理的位置のログ、および地理的位置間の道順に対する経路指定情報のうちの1つまたは複数を含む、ユーザーマッピング活動モジュールと、
前記地理的位置データを前記ユーザーマッピング活動モジュールから受信し、リモートマッピングシステムデータを前記ユーザーマッピング活動データから抽出された前記地理的位置データと照合して、前記一致したリモートマッピングシステムデータを、前記モバイルコンピューティング装置でのキャッシュ記憶のために、前記モバイルコンピューティング装置に送信するための命令を含むリモートマッピングシステムであって、前記一致したリモートマッピングシステムデータが、均一のサイズを有する地図画像の部分を含む、リモートマッピングシステムと、を備える、コンピュータシステム。
【請求項12】
モバイルコンピューティング装置上で実行する、ウェブサービスアカウントに対応するマッピングモジュールでの活動に基づいて、地理的位置のグラフィカル表現を表示する地図タイルデータを前記モバイルコンピューティング装置にプリフェッチするためのコンピュータ実施方法であって、前記方法が、
ユーザーマッピング活動データを生成することであって、前記ユーザーマッピング活動データが、前記ウェブサービスアカウントに対応し、地理的位置を示し、前記ユーザーマッピング活動データが、マッピングモジュールを使用して実行された検索に対応する地理的位置のログ、および地理的位置間の道順に対する経路指定情報のうちの1つまたは複数を含む、ユーザーマッピング活動データを生成することと、
前記ユーザーマッピング活動データから地理的位置データを抽出することと、
前記地理的位置データを、ネットワーク接続を経由してリモートマッピングシステムに送信することと、
地図タイルデータを前記ユーザーマッピング活動データから抽出された前記地理的位置データと照合することであって、前記地図タイルデータが均一のサイズを有する地図画像の部分を含む、地図タイルデータを前記地理的位置データと照合することと、
前記一致した地図タイルデータをベクトル形式で前記モバイルコンピューティング装置に送信することと、
前記一致した地図タイルデータを、前記モバイルコンピューティング装置のキャッシュ記憶装置に格納することと、
その後、前記モバイルコンピューティング装置で表示するために、前記リモートマッピングシステムからさらなる伝達を受信することなく、前記キャッシュ記憶装置から前記一致した地図タイルデータを取得することと、を含む、コンピュータ実施方法。
【請求項13】
モバイルコンピューティング装置上で実行している、ウェブサービスアカウントに対応するマッピングモジュールでのユーザー活動に基づいて、地図タイルデータを前記モバイル装置にプリフェッチするための命令を格納する有形的コンピュータ可読媒体であって、前記命令がプロセッサによって実行される場合に、前記プロセッサに、
ユーザーマッピング活動データを生成することであって、前記ユーザーマッピング活動データが、前記ウェブサービスアカウントに対応し、地理的位置を示し、前記ユーザーマッピング活動データが、前記マッピングモジュールを使用して実行された検索に対応する地理的位置のログ、および地理的位置間の道順に対する経路指定情報のうちの1つまたは複数を含む、ユーザーマッピング活動データを生成することと、
前記ユーザーマッピング活動データから地理的位置データを抽出することと、
前記地理的位置データを、ネットワーク接続を経由してリモートマッピングシステムに送信することと、
地図タイルデータを前記ユーザーマッピング活動データから抽出された前記地理的位置データと照合することであって、前記地図タイルデータが均一のサイズを有する地図画像の部分を含む、地図タイルデータを前記地理的位置データと照合することと、
前記一致した地図タイルデータをベクトル形式で前記モバイルコンピューティング装置に送信することと、
前記一致した地図タイルデータを、前記モバイルコンピューティング装置のキャッシュ記憶装置に格納することと、
その後、前記モバイルコンピューティング装置で表示するために、前記リモートマッピングシステムからさらなる伝達を受信することなく、前記キャッシュ記憶装置から前記一致した地図タイルデータを取得することと、を行わせる、有形的コンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、一般に、デジタル地図データのプリフェッチに関し、より詳細には、モバイル装置で実行するマッピングアプリケーションによって生成されたデータの分析に基づき、そのモバイル装置上で表示するために、デジタル地図データをプリフェッチするためのシステムおよび方法に関する。
【背景技術】
【0002】
本明細書で提供する背景技術の記述は、本開示のコンテキストをおおまかに提示することのみを目的とする。現在指名されている発明者の仕事は、本背景技術の節に記述される範囲で、そうでなければ出願時に従来技術と見なされ得ない記述の態様のみならず、明示的にも暗黙的にも本開示に対する従来技術として認められない。
【0003】
携帯電話、タブレットコンピュータ、ノートブックなどの、多数のモバイルコンピューティング装置は、全地球測位システム(GPS)ハードウェアおよびアプリケーションを組み込む。GPSハードウェアおよびアプリケーションは、モバイルコンピューティング装置でのナビゲーションに有用であり、しばしばモバイルマッピングモジュールと組み合わされる。装置上でインスタンス生成されると、モバイルマッピングモジュールは、装置上のGPS送信機または他のGPSハードウェアおよびマッピングシステムのバックエンドアプリケーションサーバーと通信し得る。バックエンドのマッピングシステムからプッシュまたはプルされたマッピングデータを使用して、マッピングモジュールは、次いで、装置の現在の位置の周辺地域のデジタル地図をモバイル装置上でレンダリングし得る。地図データは、しばしば、GPSハードウェアからマッピングモジュールを介してシステムに提供された装置の位置に基づいて、マッピングシステムから装置にプッシュされる。例えば、街路、建物、および他の地理的特徴のグラフィカル表現に対するデータが、モバイル装置にプッシュされ得、その装置上で実行するマッピングモジュールが、装置の現在の位置に基づくか、または装置を使用したマッピングシステムの検索に基づいて、プッシュされたデータを、装置のディスプレイ画面上の画像にレンダリングし得る。
【0004】
地図画像をレンダリングするために、装置は、通常、専用サーバーからラスター画像を受信する。例えば、地図サーバーは、インターネット上で動作し、指定された地理的地域に対して、画像をポータブルネットワークグラフィックス(PNG)フォーマットで様々なクライアント装置に提供し得る。ラスター画像は、クライアント装置でのレンダリングは比較的容易であるが、ラスター画像データは、通常、総合的な地図に対して、大量の記憶空間を必要とする。また、クライアント装置でラスター画像を効率的に操作することも困難である。例えば、選択された領域を拡大するためには、新しいラスター画像データがサーバーから取得されるか、または利用可能なラスター画像データが、品質における顕著な劣化とともに拡大されるか、のいずれかである。
【発明の概要】
【課題を解決するための手段】
【0005】
この発明の概要および以下の発明を実施するための形態に記述される特徴および利点は、包括的ではない。多数の追加の特徴および利点が、本明細書の図、仕様、および請求項を考慮すると、当業者には明らかであろう。その上、他の実施形態は、この発明の概要に記述される特徴おより利点の1つまたは複数(または全部)を省略し得る。
【0006】
ウェブベースマッピングシステムのグラフィック要素をスマートフォンまたは他のモバイルコンピューティング装置に表示するための地図タイルデータ(すなわち、256画素×256画素などの均一のサイズを有する地図画像の部分)が、そのモバイル装置でのマッピングモジュールの使用履歴の分析に基づいて、装置にプリフェッチされ得る。例えば、ユーザーマッピング活動システムは、ユーザーマッピング活動データをモバイル装置からネットワーク接続を経由して受信し得る。モバイルコンピューティング装置上で実行しているマッピングモジュールは、ユーザーマッピング活動データを生成し得る。ユーザーマッピング活動システムは、次いで、地理的位置データをユーザーマッピング活動データから抽出し、その地理的位置データを、ネットワーク接続を介してマッピングシステムに送信し得る。マッピングシステムは、次いで、地図タイルデータに関連づけられた地理的位置をユーザーマッピング活動データの地理的位置と照合し得、その一致したタイルデータを、モバイルコンピューティング装置でのキャッシュ記憶のためにモバイルコンピューティング装置に送信し得る。ユーザーマッピング活動システムは、抽出された地理的位置データが、そのタイルデータのプリフェッチを正当とするのに十分に関連性があるかどうかを判断するために、ユーザーマッピング活動データの分析も行い得る。関連性のある地理的位置データは、閾値を上回るいくつかの地理的位置指標を含み得る。
【0007】
いくつかの実施形態では、ユーザーマッピング活動データは、モバイル装置がマッピングモジュールを実行した地理的位置のログに対応する位置履歴ファイル、マッピングモジュールを使用して実施された検索のログに対応する検索履歴ファイル、およびマッピングモジュールによって表された地理的位置間の経路のログに対応する経路指定履歴ファイルのうちの1つまたは複数を含む。地理的位置データは、モバイルコンピューティング装置上で実行するマッピングアプリケーションによって生成または受信されるデータを含み得、ユーザーの現在の位置、ユーザーの所望の将来の位置など、を示す。例えば、地理的位置データは、市の名前、住所、空港名コード、または全地球測位システム座標のうちの1つもしくは複数を含み得る。
【図面の簡単な説明】
【0008】
図1】モバイル装置を使用したマッピングモジュールの使用履歴の分析に基づき、モバイルコンピューティング装置上で実行するマッピングモジュール用にデータをプリフェッチするためのシステムのハイレベルブロック図である。
図2】ユーザーマッピングモジュールデータに従ってプリフェッチされる地図タイルに対する例示的なデータ構造である。
図3】モバイルコンピューティング装置の例示的なブロック図およびユーザーマッピングモジュールデータに対するデータ構造である。
図4】本明細書で説明されるように、ウェブおよび移動体通信ネットワークベースのマッピングシステムに対して、地図タイルデータをプリフェッチするための1つの方法の例示的な流れ図である。
図5】マッピングモジュールを実行するコンピューティング装置上でのキャッシュ記憶および表示用に、データをプリフェッチするためのシステムおよび方法を実施するコンピューティング環境のハイレベルブロック図である。
【0009】
図は、説明のみを目的として、本発明の好ましい実施形態を示す。当業者は、本明細書で説明する構造および方法の代替実施形態が、本明細書で説明する本発明の本質から逸脱することなく、採用され得ることを、以下の説明から容易に理解するであろう。
【発明を実施するための形態】
【0010】
一般的に言えば、モバイル装置上で実行するマッピングモジュールは、マッピングモジュールのためのデジタル地図タイルデータをプリフェッチする。個々の地図タイルによって表される地理的地域のサイズは、ユーザーが地図を表示し、地図タイルが関連付けられているズームレベルによって決まり得、そのため、より低いズームレベルでの単一の地図タイルは、より高いズームレベルでの単一の地図タイルよりも大きな地理的地域を示す。マッピングシステムは、ベクターグラフィックス形式に従って、各地図タイルを記述子とともに生成し得る。クライアント装置(例えば、携帯電話、タブレットコンピュータなど)は、各地図タイルに対応するベクトル記述子から各タイルに対するラスター画像をローカルに生成し得る。一実施形態では、マッピングシステム100(図1)は、要求されたデータをデータベースから取り出す。一旦、リモートマッピングシステムからフェッチされると、地図タイルデータは、次いで、マッピングモジュールを用いて取られたユーザー動作の分析に基づき、ユーザーに対して見込まれる表示のために、モバイル装置内に格納され得る。ユーザーのマッピングモジュール活動分析は、ユーザーが将来、地図データを表示しそうな1つまたは複数の所定の地理的位置を識別し得る。一旦、地図タイルデータがプリフェッチされ、モバイル装置のメモリに格納されると、モバイル装置は、地図データをバックエンドのマッピングシステムから取得する必要なく、1つまたは複数の所定の地理的位置に対するプリフェッチされた地図タイルデータを使用して、デジタル地図を迅速にレンダリングし得る。地図タイルデータのプリフェッチは、地図レンダリングの待ち時間を減らして、より良いユーザーエクスペリエンスをもたらし得る。ユーザーマッピングモジュール活動分析は、ユーザーが将来居る可能性がある地理的位置を判断することにより、地図データをプリフェッチすべき1つまたは複数の地理的位置を判断する。この分析は、モバイル装置のバックエンドで実行され得、ユーザーのマッピングモジュール活動に関連した全てのデータを考慮し得る。いくつかの実施形態では、システムは、ユーザーがほとんどの時間をどこで過ごすかに関連したデータ、ユーザーがマッピングモジュールを介して実行した検索、計画された経路または旅行、モバイル装置で検出された事象など、を使用する。
【0011】
一般に、ベクトルベースの地図データは、様々な幾何学形状を(例えば、地点の数学的記述およびその地点を接続する経路を使用して)指定して、道路、建物、公園、水域などの、様々な地図要素をレンダリングするために、これらの形状がどのように位置付けられるべきかを示し得る。例えば、線分のラスター画像を構成する各画素を指定するのではなく、線分のベクトルベースの記述は、線分の2つのエンドポイントを指定し、その2つのエンドポイントが直線によって接続されることを示し得る。地図要素のベクトルベースの記述は、本明細書では、ベクトル記述子または単にベクトルと呼ばれ得、1つまたはいくつかのベクトル記述子の組は、ベクトルデータと呼ばれ得る。一般に、地図要素は、あるベクトル記述子を使用して記述され得る。バックエンドまたはリモートのマッピングシステムは、地理的地域の地図がクライアント装置でレンダリングされるズームレベル、地図がそれに従ってクライアント装置でレンダリングされる地図のタイプ(例えば、地形、交通、交通機関など)、以前に提供された地図データなどを考慮して、地理的地域のベクトルベースの記述を生成し得る。また、いくつかの実施形態では、地図サーバーは、地図の内容を、ベクトルデータがどのようにレンダリングされるべきかを示すスタイルデータとは別に記述するベクトルデータ、およびラベル、およびテキスト、画像などによって地図の内容を記述するプレイスページデータを提供し得る。
【0012】
図1は、ユーザーマッピングモジュール活動の分析に基づいて、コンピューティング装置106上で実行するマッピングモジュール104用に地図タイルデータ102をプリフェッチするためのシステム100を示すハイレベルブロック図である。システム100は、マッピングモジュール104を実行可能であるコンピューティング装置106、ユーザーマッピング活動モジュール108、およびマッピングモジュール104が、地図タイルデータをフェッチまたは受信して、地図データキャッシュ110(すなわち、コンピューティング装置106のメモリまたは他のメモリなど)内に格納することを可能にするために、装置106がデータをプリフェッチすることを可能にする他のモジュールを含み得る。いくつかの実施形態では、装置106は、マッピングモジュール104およびユーザーマッピング活動モジュール108の命令を実行する。装置106は、パーソナルコンピュータ、スマートフォン、タブレットコンピュータ、または本明細書に記載する、様々なモジュール、命令などを実行可能な他のコンピューティング装置を含み得る。マッピングモジュール104およびユーザーマッピング活動モジュール108は、マッピングシステム112およびユーザーマッピング活動システム114を含むバックエンド構成要素111と、インターネット115または他のタイプのネットワーク(例えば、LAN、MAN、WAN、携帯もしくは移動体通信ネットワーク、有線もしくは無線ネットワーク、プライベートネットワーク、または仮想プライベートネットワークなど)を通じて通信し得る。
【0013】
マッピングシステムサーバー116は、マッピングモジュール104に対してデータを送信および受信し得る。いくつかの実施形態では、マッピングシステム112およびマッピングサーバー116は、コンピュータ実行可能命令およびデータを送信して、マッピングモジュール104がデジタル地図をコンピューティング装置106のディスプレイ構成要素内にレンダリングすることを可能にし得る。例えば、マッピングサーバー116は、位置データ、クライアントコンピューティング装置106またはユーザーマッピング活動システム114による分析の結果、または他のデータを受信し、その結果として、ベクターグラフィックス形式のデジタル地図タイルデータ118、デジタル地図タイルデータ118内に表された特定の企業または住所に対応するリストデータ120、リストデータ120の特定の企業または住所のウェブサイトに対応するプレイスページデータ122などを送信するためのモジュール117を含み得る。
【0014】
いくつかの実施形態では、マッピングモジュール104およびユーザーマッピング活動モジュール108は、データを分析して、どの地図タイルをマッピングシステム112が装置106にキャッシングのために送信するかを判断し得、それらのタイルをシステム112から取得する。他の実施形態では、バックエンド構成要素111は、コンピューティング装置106から送信されたデータを分析して、どのタイルをキャッシュ記憶のために装置106に送信するかを判断し得る。例えば、マッピングモジュール104は、位置データをコンピューティング装置106のGPS送受信機からマッピングシステム112に送信し得、ユーザーマッピング活動モジュール108は、ユーザーマッピング活動データをコンピューティング装置106からユーザーマッピング活動システム114に送信し得る。ユーザーマッピング活動データは、一般に、地理的位置(例えば、ユーザーの現在または将来の位置、計画された位置、好みの位置、など)を示す、モバイルコンピューティング装置上で実行するマッピングアプリケーションによって生成または受信される任意のデータを含み得る。例えば、いくつかの実施形態では、ユーザーマッピング活動データは、地図検索要求のログ、地図上の様々な地点間の経路指定データ、地図上の興味のある地点、ユーザーによって設定されたか、またはマッピングアプリケーションによって判断されたお気に入りの好みの位置などのうちの1つまたは複数を含む。地理的位置データは、市の名前、住所、空港名コード、全地球測位システム座標などのうちの1つまたは複数を含み得る。
【0015】
マッピングモジュール104は、マッピングモジュール104が、ユーザーの現在の地理的位置または任意の他の地理的位置のデジタル表現をコンピューティング装置106のディスプレイ構成要素にレンダリングすることを可能にするコンピュータ実行可能命令を含み得る。レンダリングプロセスの一部として(例えば、ユーザーがマッピングモジュール104を実行する場合、マッピングモジュール104を使用して地理的位置の検索を実施する場合、マッピングモジュール104を使用して、2つ以上の地理的位置間の経路検索を実施する場合など)、マッピングモジュール104は、マッピングシステム112からのラスター化されたベクトルデータ(すなわち、タイルデータ118、リストデータ120、プレイスページデータ122)および/またはキャッシュされた地図タイルデータ102を含むマッピングインタフェース104aを、コンピューティング装置106のディスプレイ内に表示する命令を実行し得る。マッピングインタフェース104aは、ユーザーが、キャッシュ110から、マッピングシステム112から、または他の地図データソースから、地図データ102を使用して、装置106に地理的位置の様々なデジタル表現をレンダリングさせることを可能にし得る。
【0016】
ユーザーマッピング活動モジュール108は、ユーザーマッピング活動データ124を、コンピューティング装置106のユーザーマッピング活動データキャッシュ126、マッピングモジュール104、または様々な他のモジュールから収集するための、コンピュータ実行可能命令を含み得る。いくつかの実施形態では、ユーザーマッピング活動データキャッシュ126は、コンピューティング装置106上で実行するか、またはコンピューティング装置106と通信する、様々な他のモジュール(例えば、ウェブブラウザ、ユーザーマッピング活動追跡モジュール、旅行計画モジュール、電子メールモジュールなど)から、データ124を格納し得る。ユーザーマッピング活動モジュール108は、ユーザーマッピング活動データ124を分析するか、またはデータ124を分析のためにユーザーマッピング活動システム114に送信するための命令も含み得る。
【0017】
いくつかの実施形態では、クライアント装置106におけるユーザーマッピング活動モジュール108は、マッピングモジュール104を使用して、コンピューティング装置106で表示される地図タイルデータ102をプリフェッチするために、モバイル装置事象データ124を受信、送信、および分析し得る。いくつかの実施形態では、モジュール108は、コンピューティング装置のGPSハードウェアによって判断された位置の履歴、マッピングモジュール検索履歴データ、マッピングモジュール104によって表される2つ以上の地理的位置間で計画された経路からの経路指定データ、またはユーザーがマッピングモジュール104を使用して指定している地理的位置を示す他のデータ136を含む、ユーザーマッピング活動データ124を分析するための命令を含む。クライアントモバイルコンピューティング装置106におけるモジュール108によるモバイル装置事象データ124の分析は、モジュール108が、モバイル装置でのキャッシュ記憶のために、地図タイルデータ200を取得するため、マッピングシステム112に送信し得る位置データを判断し得る。
【0018】
他の実施形態では、ユーザーマッピング活動システム114は、マッピングモジュール104を使用して、コンピューティング装置106で表示される地図タイルデータ102をプリフェッチするために、ユーザーマッピング活動データ124を受信、送信、および分析するためのモジュール129を含む、ユーザーマッピング活動システムサーバー128をバックエンド111において含み得る。いくつかの実施形態では、サーバー128は、ユーザーマッピング活動データ124を1つまたは複数のデータリポジトリ内に格納する。例えば、データ124は、コンピューティング装置のGPSハードウェアによって判断された位置の履歴、マッピングモジュール検索履歴データ132、マッピングモジュール104によって表される2つ以上の地理的位置間で計画された経路からの経路指定データ、またはユーザーが訪問することを計画しているか、またはマッピングモジュール104によって生成されたデータから判断されるように、訪問する可能性がある地理的位置を示す他のデータ136を含む、ユーザーの位置130を含み得る。モジュール129は、データリポジトリ130、132、134、および136内に格納されたデータを分析するためのコンピュータ実行可能命令を含み得る。サーバーバックエンド構成要素111でのモジュール129によるユーザーマッピング活動データ124の分析は、ユーザーマッピング活動システムサーバー128がマッピングシステム112に送信し得る位置データを判断し得る。
【0019】
図2は、地図タイルデータ200に対するハイレベルブロック図の一実施形態を示す。地図タイル200は、複数の属性200a、例えば、名前、位置データ202、グラフィック構成要素204、およびリストデータ206を含み得る。位置データ202は、地理的地域を表す地図タイル200の特定の地理的位置を記述する特定の座標202aを含み得る。いくつかの実施形態では、位置データ202は、地図タイル200に対する北、南、東、および西の境界などの複数の境界202aを含む。位置データ202は、全地球測位システム(GPS)または、物理的オブジェクトがどこに位置するかを判断することが可能な他のシステムによって決定されるような、緯度および経度の座標を含み得る。グラフィック構成要素204は、位置および分類データ204aを含み得る。いくつかの実施形態では、グラフィック構成要素204に対する位置データは、GPS座標、地図タイル200の境界202a内の位置などを含み得る。グラフィック構成要素204に対する分類データは、構造、輸送項目(例えば、道路、鉄道など)、地形特徴、および地図タイル200の位置データ202によって記述される境界内に含まれる物理的オブジェクトを図表で表す他の項目など、グラフィック構成要素204が表す物理的オブジェクトのタイプを含み得る。リストデータ206は、地図タイル200内のグラフィック構成要素204によって表される物理的オブジェクトの特性を記述する様々なグループの情報206aを含み得る。いくつかの実施形態では、情報206aは、地図タイル200内に図表で表される、企業、興味のある地点、ショッピングセンター、公園などに対するリスト情報を含む。情報206aは、仕様および、オブジェクトの履歴、物理的仕様などを記述する他の情報も含み得る。例えば、情報206aは、地図タイル200内のリストデータ206によって表される、企業、興味のある地点などに対する、アイコン、位置、およびプレイスページデータ206a1aを含む、いくつかのリスト206a1、206a2などを含み得る。プレイスページデータ206a1aは、地図タイル200内のグラフィック構成要素204、アイコン、または他のグラフィック項目によって表される特定のリストを記述する様々なウェブリソースからの情報を含むウェブページをレンダリングするための、テキスト、写真、および他のデータを含み得る。
【0020】
図3は、地図データキャッシュ110内に格納して、コンピューティング装置106上に表示するために、地図タイルデータ200をプリフェッチするためにシステム100によって使用され得るユーザーマッピング活動データ300の表現である。マッピング活動データ300は、ユーザーマッピング活動モジュール108を実行するコンピューティング装置106によって収集され得る。モジュール108は、コンピューティング装置106上で実行するマッピングモジュール104と通信し得る。いくつかの実施形態では、マッピングモジュール104は、ユーザー入力に応答して、マッピングモジュール104に関連したマッピング活動データ300を生成し得る。例えば、マッピング活動モジュール108は、位置履歴データ304、地図検索履歴データ306、コンピューティング装置106によってレンダリングされた地図上の2つ以上の地点間の経路指定データなどを、コンピューティング装置106に、マッピングモジュール104から取得させるためのコンピュータ実行可能命令を含み得る。言うまでもなく、ユーザーマッピング活動モジュール108は、地図データキャッシュ110内に格納して、コンピューティング装置106上に表示するために、地図タイルデータ200をプリフェッチするために使用され得る位置関連データに関して、コンピューティング装置106上で実行する任意のアプリケーションを監視し得る。ユーザーマッピング活動データの様々な組304、306、308、310の各々は、地理的位置を示すデータ314(すなわち、地理的位置データ314)を含み得る。
【0021】
図4は、地図データキャッシュ110内に格納して、コンピューティング装置106上に表示するために、地図タイルデータ200をプリフェッチするための方法例400の流れ図である。方法400は、1つもしくは複数のブロック、モジュール、機能またはルーチンを、有形的コンピュータ可読媒体内に格納され、コンピューティング装置(例えば、本明細書に記載するような、スマートフォン、タブレットコンピュータ、もしくはモバイルコンピューティング装置、または他のパーソナルコンピューティング装置)のプロセッサを使用して実行される、コンピュータ実行可能命令の形式で含み得る。方法400は、地図タイルデータ200をプリフェッチするために、例えば、システム100に対するコンピューティング環境の任意のバックエンド111もしくはクライアントモバイルコンピューティング装置106モジュールの一部として、またはかかるシステムの外部にあるモジュールの一部として含まれ得る。例えば、方法400は、地図タイルデータ200をプリフェッチするために、システム100のコンピューティング装置上のアプリケーション内で実行する、マッピングモジュール104および/またはユーザーマッピング活動モジュール108の一部であり得る。図4は、説明を容易にするために図を参照して説明されるが、方法400は、いうまでもなく、他のオブジェクトおよびユーザーインタフェースとともに利用され得る。
【0022】
ブロック402で、方法400は、ユーザー許可をオプトアウトユーザーインタフェースから受信後、ユーザーマッピング活動データ300を、コンピューティング装置106上で実行するマッピングモジュール104から取得し得る。ブロック402は、ウェブページまたは他のインタフェースをユーザーのコンピューティング装置上に提示するための命令を含み得、ユーザーはそこから、コンピューティング装置106またはシステム100の任意の他の部分が地図タイルデータをプリフェッチすることを許可するか、または可能にする任意のデータ収集のオプトアウトを選択し得る。マッピングモジュール104から取得されたマッピング活動データ300は、マッピングモジュール104によって保存された位置304のログ、マッピングモジュール104によりコンピューティング装置106上でレンダリングされた地図内の地理的位置に対してマッピングモジュール104によって実行された検索306、レンダリングされた地図上に表された地理的位置間の道順に対する経路指定情報308などに対応する履歴ファイルを含み得る。いくつかの実施形態では、ユーザーマッピング活動データ300は、ユーザーマッピング活動モジュール108、バックエンド構成要素111(例えば、ユーザーマッピング活動システム114)、またはモバイルコンピューティング装置106にローカルもしくはリモートである、他のモジュールおよび構成要素からの要求に応答して、モバイルコンピューティング装置106から取得され得る。さらなる実施形態では、モバイルコンピューティング装置106は、ユーザーマッピング活動データ300または以下で説明する分析の結果を定期的にバックエンド構成要素111に送信し得る。さらに、ユーザーマッピング活動システムは、ユーザーマッピング活動データ300を、マッピングシステム112に結合された別のコンピューティング装置などの他のソースから、モバイルコンピューティング装置106および他の装置の両方のユーザーに共通しているウェブサービスアカウントを介して、取得/受信し得る。
【0023】
ブロック404で、方法400は、ブロック402で送信または取得されたユーザーマッピング活動データ300を分析し得る。いくつかの実施形態では、クライアントモバイルコンピューティング装置106でのユーザーマッピング活動モジュール108が、ユーザーマッピング活動データ300を定期的に分析して、結果を、ローカルもしくはリモートのユーザーマッピング活動システム114またはマッピングシステム112にネットワーク接続を介して送信し得る。他の実施形態では、ユーザーマッピング活動システム114は、データ300をモバイルコンピューティング装置106からネットワーク接続を介して取得または受信し得る。事象モジュール108は、データ300を受信または取得して、それを、地理的位置データ314を発見するために解析し得る。モジュール108は、ユーザーマッピング活動データ300から地理的位置データ314を識別または判断するために、データ300を解析するための1つまたは複数のコンピュータ実行可能命令を含み得る。代替または追加として、バックエンド構成要素111がデータ300を分析し、ユーザーマッピング活動システムサーバー128がデータ300を受信または取得して、位置データ314を発見するためにそれを解析し得る。モジュール108および/またはモジュール129は、データ300を解析し、データ300から位置データ314を識別または判断するための1つまたは複数のコンピュータ実行可能命令を含み得る。ユーザーマッピング活動データ300から判断された地理的位置データ314は、市の名前、住所、空港名コード、GPS座標または地図タイルデータを判断するためにマッピングシステム112によって利用可能な地理的位置を示す任意の他の情報を含み得る。
【0024】
ブロック406で、地理的位置データ314が、地図タイルデータのプリフェッチを正当とするのに十分に関連性がある場合、モジュール129またはモジュール108がそのデータをブロック408でマッピングシステム112に送信し得る。いくつかの実施形態では、モジュール129または108は、任意の発見された地理的位置データ314がキャッシュ110内への格納のために地図タイルデータのプリフェッチを継続するのに十分に関連性があるかを判断するために、ユーザーマッピング活動データ300を分析するための1つまたは複数のコンピュータ実行可能命令を含み得る。例えば、モジュール129または108は、「ボストン」を地理的位置として示すユーザーマッピング活動データ300から地理的位置データ314の1つのインスタンスを判断するだけであり得る。1つのみの指標は、地図タイルデータをキャッシュするため、システム100によるいかなる更なる動作も正当とし得ない。しかし、より多くのユーザーマッピング活動データ300からの特定の地理的位置データ314のもっと多くの指標は、全体として、地図タイルデータをキャッシュするために、さらなる命令の実行を正当とする閾値量に達し得る。モジュール129または108は、地理的位置データ314を1つまたは複数のデータリポジトリ内に格納するためのコンピュータ実行可能命令を含み得る。例えば、モジュール129または108は、マッピングモジュール検索履歴306を分析し、履歴306内の地理的位置データ314を判断して、その判断されたデータをリポジトリ内に格納し得る。データリポジトリ132内の判断された地理的位置データ314が、閾値量を満たすか、または上回る場合、地理的位置データ314の量が、地図タイルデータをキャッシュするために、さらなる命令の実行を正当とし得る。
【0025】
ユーザーマッピング活動データ300または判断された地理的位置データ314は、タイムスタンプ情報も含み得、モジュールは、地理的位置データ314の判断が地図タイルデータのキャッシングを正当とし得る閾値期間を判断するためのコンピュータ実行可能命令を含み得る。例えば、モジュール129または108が、1週間の期間内に「ボストン」に対する3つの地理的位置データ314の指標を判断した場合、モジュール(または複数)は、1つまたは複数の閾値が超えられていると判断して、その位置に対する地図タイルデータをキャッシュするためのさらなる命令を実行し得る。対照的に、モジュール129または108が、1年の期間内に「ボストン」に対する3つの地理的位置データ314の指標を判断した場合、モジュール(または複数)は、1つまたは複数の閾値が超えられていないと判断して、ブロック402に戻り得る。言うまでもなく、ブロック404および406は、次のブロックに進むか、またはユーザーマッピング活動データ300の取得を継続するかを判断するために、ユーザーマッピング活動データ300の統計的および他の分析を実行し得る。
【0026】
ブロック404および406の分析後、方法400は、地理的位置データ314が、地図タイルデータをキャッシュするため、さらなるコンピュータ実行可能命令の実行を正当とするのに十分に関連性があると判断すると、方法400は、ブロック404および406の分析結果140をブロック408でマッピングシステム112に送信し得る。ユーザーマッピング活動システム114またはクライアントモバイルコンピューティング装置106は、分析結果140を、モジュール117による処理のために、マッピングシステムサーバー116に送信し得る。
【0027】
ブロック410で、モジュール117は、関連性のある地理的位置データを含む、受信された分析結果140を、マッピングシステムデータと照合するための命令を実行し得る。いくつかの実施形態では、ブロック410は、受信された地理的位置データを、マッピングシステム112に送信されたか、またはそれによって取得された分析結果140に対応する、地図タイルデータ118、リストデータ120、プレイスページデータ122などのうちの1つまたは複数と照合する。いくつかの実施形態では、モジュールは、マッピングシステム112の1つまたは複数のデータリポジトリからデータを取得する。
【0028】
ブロック412で、モジュール117は、取得されたデータをモバイルコンピューティング装置106に送信するための命令を実行し得る。いくつかの実施形態では、ブロック412は、タイルデータ、リストデータ120、プレイスページデータ122などのうちの1つまたは複数をコンピューティング装置106に送信する。方法400は、取得されたデータを、ユーザーマッピング活動データ300をユーザーマッピング活動システム114に送信したコンピューティング装置106上で実行するマッピングモジュール104にも送信し得る。
【0029】
ブロック414で、タイルデータ、リストデータ120、プレイスページデータ122などを受信した、コンピューティング装置106またはマッピングモジュール104は、その受信したデータを格納するための命令を実行し得る。いくつかの実施形態では、ブロック414は、受信したデータをキャッシュ110内に格納し得る。マッピングモジュール104は、次いで、キャッシュされたデータを使用して、キャッシュ110からコンピューティング装置上に表示するための地図をレンダリングし得る。
【0030】
図5は、地図データキャッシュ110内に格納して、コンピューティング装置106上に表示するために、地図タイルデータ200をプリフェッチするための方法500を実施するために使用され得るコンピューティング装置501を有するモバイルマッピングシステム500に対するコンピューティング環境例のハイレベルブロック図である。コンピューティング装置501は、モバイル装置(例えば、携帯電話、タブレットコンピュータ、Wi−Fi対応装置、または、無線もしくは有線通信が可能な他のパーソナルコンピューティング装置)、シンクライアント、または他の既知のタイプのコンピューティング装置を含み得る。当業者によって理解されるであろうように、本明細書の開示および教示を考慮すると、異なるアーキテクチャを有する、他のタイプのコンピューティング装置が使用できる。モバイルマッピングシステム例500に類似しているか、または同一のプロセッサシステムが、図1のシステム例、図2および図3のデータ構造、図4の方法などを実施および実行するために使用され得る。モバイルマッピングシステム例500は、複数の周辺機器、インタフェース、チップ、メモリなどを含むとして後述されるが、それらの要素のうちの1つまたは複数は、地図タイルデータをプリフェッチするために、システム例100を実施および実行するために使用される他のプロセッサシステム例から省略され得る。また、他の構成要素が追加され得る。
【0031】
図5に示すように、コンピューティング装置501は、相互接続バス504に結合されているプロセッサ502を含む。プロセッサ502は、図5に完全にオンチップとして示されている、レジスタセットまたはレジスタ空間506を含むが、それは、代替として、完全にもしくは一部オフチップで配置され得るか、または専用電気的接続を介して、および/もしくは相互接続バス504を介して、プロセッサ502に直接結合され得る。プロセッサ502は、任意の適切なプロセッサ、処理装置またはマイクロプロセッサであり得る。図5には示していないが、コンピューティング装置501は、マルチプロセッサ装置であり得、従って、プロセッサ502と同一であるかまたは類似し、かつ相互接続バス504に通信的に結合されている、1つまたは複数の追加のプロセッサを含み得る。
【0032】
図5のプロセッサ502は、チップセット508に結合され、それは、メモリコントローラ510および周辺入力/出力(I/O)コントローラ512を含む。周知のように、チップセットは、通常、チップセット508に結合された1つもしくは複数のプロセッサによってアクセス可能であるか、または使用される、入出力およびメモリ管理機能ならびに複数の汎用および/または専用レジスタ、タイマーなどを提供する。メモリコントローラ510は、プロセッサ502(または、複数のプロセッサがある場合には複数のプロセッサ)がシステムメモリ514および大容量記憶装置516にアクセスできるようにする機能を実行する。
【0033】
システムメモリ514は、例えば、スタティックランダムアクセスメモリ(SRAM)、ダイナミックランダムアクセスメモリ(DRAM)、フラッシュメモリ、読取り専用メモリ(ROM)などの、任意の所望のタイプの揮発性および/または不揮発性メモリを含み得る。大容量記憶装置516は、任意の所望のタイプの大容量記憶装置を含み得る。例えば、コンピューティング装置501が、API 519を有するマッピングモジュール518およびユーザーマッピング活動モジュール520(図4の方法400によって記述されるような命令を含む)を実施するために使用される場合、大容量記憶装置516は、ハードディスクドライブ、光学式ドライブ、テープ記憶装置、ソリッドステートメモリ(例えば、フラッシュメモリ、RAMメモリなど)、磁気メモリ(例えば、ハードドライブ)、または大容量記憶に適した任意の他のメモリを含み得る。本明細書では、モジュール、ブロック、機能、操作、手順、ルーチン、ステップ、および方法という用語は、指定された機能をコンピューティング装置501およびモバイルマッピングシステム500に提供する、具体的なコンピュータプログラム論理または具体的なコンピュータ実行可能命令を指す。従って、モジュール、ブロック、機能、操作、手順、ルーチン、ステップ、および方法は、ハードウェア、ファームウェア、および/またはソフトウェアで実施され得る。一実施形態では、プログラムモジュールおよびルーチン(例えば、マッピングモジュール518、API 519、ユーザーマッピング活動モジュール520など)は、大容量記憶装置516に格納されて、システムメモリ514にロードされ、そして、プロセッサ502によって実行されるか、または有形的コンピュータ可読記憶媒体(例えば、RAM、ハードディスク、光/磁気媒体など)に格納されているコンピュータプログラム製品から提供され得る。大容量記憶516は、データベース521も含み得、それは、GPSデータ、グラフィックス、地図タイルデータ、ならびにマッピングモジュール518、API 519、ユーザーマッピング活動モジュール520などが、マッピングデータサーバー116、ユーザーマッピング活動システム114、または他のシステムから受信したGPSデータ、グラフィックスなどに、それを通してアクセスし得るデータベースインタフェースモジュールのみならず、マッピングモジュール518およびユーザーマッピング活動モジュール520による使用のための他のデータを格納する。
【0034】
周辺入出力コントローラ510は、プロセッサ502が周辺入力/出力(I/O)装置522および524、ネットワークインタフェース526、移動体通信ネットワーク送受信機527、ローカルネットワーク送受信機528、ならびにGPS送受信機529と(ネットワークインタフェース526を介して)周辺入出力バス528を介して通信できるようにする機能を実行する。入出力装置522および524は、例えば、キーボード、ディスプレイ(例えば、液晶ディスプレイ(LCD)、ブラウン管(CRT)ディスプレイなど)、ナビゲーション装置(例えば、マウス、トラックボール、静電容量式タッチパッド、ジョイスティックなど)などの任意の所望のタイプの入出力装置であり得る。入出力装置522および524は、図に関連して説明されるように、GPSデータをGPS送受信機529から受信して、GPSデータをシステム100のバックエンド構成要素に送信し、地図およびユーザーインタフェースをレンダリングおよび表示するために、マッピングモジュール518およびユーザーマッピング活動モジュール520とともに使用され得る。移動電話送受信機527は、ローカルネットワーク送受信機528と共に常駐し得る。ローカルネットワーク送受信機528は、Wi−Fiネットワーク、Bluetooth(商標登録)、赤外線、または他の無線データ転送プロトコルに対するサポートを含み得る。他の実施形態では、1つの要素が、コンピューティング装置501によって採用される様々な無線プロトコルの各々を同時にサポートし得る。例えば、ソフトウェア無線が、ダウンロード可能命令を介して、複数のプロトコルをサポートすることを可能にし得る。作動中、コンピューティング装置501は、定期的に、可視の無線ネットワーク送信機(移動体通信およびローカルネットワークの両方)を定期的にポーリングすることを可能にし得る。かかるポーリングは、通常の無線トラフィックがコンピューティング装置501上でサポートされている間でさえ、可能であり得る。ネットワークインタフェース528は、例えば、イーサネット装置(商標登録)、非同期転送モード(ATM)装置、802.11無線インタフェース装置、DSLモデム、ケーブルモデム、移動電話モデムなどであり得、それは、地図タイルデータをプリフェッチするためのシステム100が、少なくともシステム100に関連して説明された要素を有する別のコンピュータシステムと通信することを可能にする。
【0035】
メモリコントローラ512および入出力コントローラ510が、図5では、チップセット508内の別個の機能ブロックとして示されているが、これらのブロックによって実行される機能は、単一の集積回路内に統合され得るか、または2つ以上の別個の集積回路を使用して実施され得る。モバイルマッピングシステム500は、リモートコンピューティング装置530および532上でマッピングモジュール518およびユーザーマッピング活動モジュール520も実施し得る。リモートコンピューティング装置530および532は、イーサネットリンク534を通して、コンピューティング装置501と通信し得る。例えば、コンピューティング装置501は、リモートコンピューティング装置530、532上で実行するマッピングモジュールによって作成されたマッピングデータを受信し得る。いくつかの実施形態では、マッピングモジュール518および/またはユーザーマッピング活動モジュール520は、クラウドコンピューティングサーバー536からインターネット538を介してコンピューティング装置501によって取得され得る。クラウドコンピューティングサーバー536を使用する場合、取得されたマッピングモジュール518および/またはユーザーマッピング活動モジュール520は、コンピューティング装置501とプログラムでリンクされる。マッピングモジュール518および/またはユーザーマッピング活動モジュール520は、コンピューティング装置501またはリモートコンピューティング装置530、532内に常駐するJava(登録商標)仮想マシン(JVM)環境内で実行するJava(登録商標)アプレットであり得る。マッピングモジュール518および/またはユーザーマッピング活動モジュール520は、コンピューティング装置501、530、および532上に配置されたウェブブラウザ内で実行するように適合された「プラグイン」でもあり得る。いくつかの実施形態では、マッピングモジュール518および/またはユーザーマッピング活動モジュール520は、マッピングシステム112およびユーザーマッピング活動システム114がインターネット538を介して行い得るように、バックエンド構成要素540と通信し得る。
【0036】
前述のシステムおよび手順を使用して、地図データ100をプリフェッチするためのシステムおよびマッピングシステム500は、コンピューティング装置106上で実行するマッピングモジュールでのユーザーマッピング活動に対応する地理的位置を示すコンピューティング装置からのデータを取得して分析できる。ユーザーマッピング活動、位置データ、マッピングモジュール検索履歴、経路指定データ、または他のデータが、地図タイルデータをプリフェッチするために適した位置を判断するために解析され得る。言うまでもなく、本明細書に記載のシステムは、ユーザーに、ユーザーのプライバシを保護するため、本明細書に記載するプリフェッチ方法のいずれかをそこからオプトアウトすることができるユーザーインタフェースを提示し得る。
【0037】
本明細書全体を通して、複数のインスタンスが、単一のインスタンスとして記載されている構成要素、操作、または構造を実施し得る。1つまたは複数の方法の個々の操作が別々の操作として示され、記述されているが、個々の操作の1つまたは複数は、同時に実行され得、また、操作が示された順序で実行されることは要求されない。構成例において別個の構成要素として提示された構造および機能は、組み合わされた構造または構成要素として実施され得る。同様に、単一の構成要素として提示された構造および機能は、別個の構成要素として実施され得る。これらおよび他の変形、修正、追加、および改良は、本明細書の主題の範囲内に含まれる。
【0038】
例えば、システム500は、LAN、MAN、WAN、モバイル、有線もしくは無線ネットワーク、プライベートネットワーク、または仮想プライベートネットワークの任意の組合せを含み得るがそれに限定されない。さらに、図5では、説明を単純化して明確にするために、3つのリモートコンピューティング装置530および532のみが示されているが、任意の数のクライアントコンピュータがサポートされ、システム500内で通信できることを理解されたい。
【0039】
加えて、ある実施形態が、本明細書では、論理、またはいくつかの構成要素、モジュール、もしくは機構を含むとして記述される。モジュールは、ソフトウェアモジュール(例えば、マシン可読媒体上または伝送信号内で具体化されたコードであり、そのコードはプロセッサによって実行される)またはハードウェアモジュールのいずれかを構成し得る。ハードウェアモジュールは、ある操作の実行が可能な有形的ユニットであり、ある方法で構成または配置され得る。実施形態例では、1つもしくは複数のコンピュータシステム(例えば、スタンドアロン、クライアント、またはサーバーコンピューティングシステム)またはコンピュータシステム(例えば、プロセッサまたはプロセッサのグループ)の1つもしくは複数のハードウェアモジュールが、ソフトウェア(例えば、アプリケーションまたはアプリケーション部分)によって、本明細書に記載のようにある操作を実行するために動作するハードウェアモジュールとして構成され得る。
【0040】
様々な実施形態では、ハードウェアモジュールが、機械的または電子的に実施され得る。例えば、ハードウェアモジュールは、ある操作を実行するために永久的に(例えば、フィールドプログラマブルゲートアレイ(FPGA)または特定用途向け集積回路(ASIC)などの、専用プロセッサとして)構成されている専用回路または論理を含み得る。ハードウェアモジュールは、ある操作を実行するためにソフトウェアによって一時的に構成されているプログラム可能論理または回路(例えば、汎用プロセッサまたは他のプログラム可能プロセッサ内に包含されるような)も含み得る。ハードウェアモジュールを、専用および永久的に構成された回路において、または一時的に構成された(例えば、ソフトウェアによって構成された)回路において、機械的に実装する判断は、費用および時間の検討によって決定され得ることが理解されるであろう。
【0041】
その結果、「ハードウェアモジュール」という用語は、有体物を包含し、ある方法で動作するために、または本明細書に記載のある操作を実行するために、物理的に構築されているか、永久的に構成されている(例えば、ハードワイヤードされている)か、または一時的に構成されている(例えば、プログラムされている)エンティティであると理解されるべきである。本明細書では、「ハードウェア実施モジュール」は、ハードウェアモジュールを指す。ハードウェアモジュールが一時的に構成されている(例えば、プログラムされている)実施形態を考慮すると、ハードウェアモジュールの各々は、時間内のいずれか1つの事例において、構成またはインスタンス生成される必要はない。例えば、ハードウェアモジュールが、ソフトウェアを使用して構成された汎用プロセッサを含む場合、汎用プロセッサは、異なる時にそれぞれ異なるハードウェアモジュールとして構成され得る。例えば、特定のハードウェアモジュールをある場合に構成し、異なるハードウェアモジュールを異なる場合に構成するために、ソフトウェアが、それに応じてプロセッサを構成し得る。
【0042】
ハードウェアモジュールは、他のハードウェアモジュールに情報を提供し、また、他のハードウェアモジュールから情報を取得し得る。その結果、記述されたハードウェアモジュールは、通信的に結合されていると見なされ得る。複数のかかるハードウェアモジュールが同時期に存在する場合、通信は、ハードウェアモジュールを接続する信号伝送を通して(例えば、適切な回路およびバスを通じて)、達成され得る。複数のハードウェアモジュールが異なる時に構成またはインスタンス生成される実施形態では、かかるハードウェアモジュール間の通信は、例えば、複数のハードウェアモジュールがアクセスするメモリ構造内の情報の格納および取得を通じて、達成され得る。例えば、1つのハードウェアモジュールが、1つの操作を実行し、その操作の出力を、それが通信的に結合されているメモリ装置内に格納し得る。さらなるハードウェアモジュールが次いで、後に、そのメモリ装置にアクセスして、格納された出力を取得および処理し得る。ハードウェアモジュールは、入力または出力装置との通信も開始し得、リソース(例えば、情報の集合)に関して動作できる。
【0043】
本明細書に記載される方法例の様々な操作が、関連のある操作を実行するために(例えば、ソフトウェアによって)一時的に構成されているか、または永久的に構成されている、1つもしくは複数のプロセッサによって、少なくとも部分的に、実行され得る。一時的に構成されているか、または永久的に構成されているかに関わらず、かかるプロセッサは、1つまたは複数の操作または機能を実行するように動作するプロセッサ実施モジュールを構成し得る。本明細書で参照されるモジュールは、いくつかの実施形態例において、プロセッサ実施モジュールを含み得る。
【0044】
同様に、本明細書に記載の方法またはルーチンは、少なくとも部分的にプロセッサ実施であり得る。例えば、方法の操作の少なくとも一部が、1つもしくは複数のプロセッサまたはプロセッサ実施ハードウェアモジュールによって実行され得る。操作を確実にする実行が、単一のマシン内に常駐するだけでなく、いくつかのマシンに渡って配備された、1つまたは複数のプロセッサ間で分散され得る。いくつかの実施形態例では、プロセッサまたは複数のプロセッサが単一の位置(例えば、自宅環境、オフィス環境内またはサーバーファームとして)に配置され得るが、他の実施形態例では、プロセッサは、いくつかの位置にわたって分散され得る。
【0045】
1つまたは複数のプロセッサは、「クラウドコンピューティング」環境内で、または「サービス型ソフトウェア(SaaS)」として、関連のある操作の実行をサポートするようにも動作し得る。例えば、操作の少なくとも一部が、(プロセッサを含むマシンの例として)コンピュータのグループによって実行され得、これらの操作は、ネットワーク(例えば、インターネット)を経由し、かつ、1つまたは複数の適切なインタフェース(例えば、アプリケーションプログラムインタフェース(API))を通じて、アクセス可能である。
【0046】
操作を確実にする実行が、単一のマシン内に常駐するだけでなく、いくつかのマシンに渡って配備された、1つまたは複数のプロセッサ間で分散され得る。いくつかの実施形態例では、1つもしくは複数のプロセッサまたはプロセッサ実施モジュールが、単一の地理的位置(例えば、自宅環境、オフィス環境、またはサーバーファーム内)に配置され得る。他の実施形態例では、1つもしくは複数のプロセッサまたはプロセッサ実施モジュールが、いくつかの地理的位置にわたって分散され得る。
【0047】
本明細書のいくつかの部分は、マシンのメモリ(例えば、コンピュータメモリ)内にビットまたは2値デジタル信号として格納されたデータについての操作のアルゴリズムまたは記号表現の観点から提示される。これらのアルゴリズムまたは記号表現は、データ処理の技術分野において、当業者により彼らの作業の内容を他の当業者に伝達するために使用される技術の例である。本明細書では、「アルゴリズム」は、所望の結果をもたらす、首尾一貫した一連の操作または類似の処理である。このコンテキストでは、アルゴリズムおよび操作は、物理量の物理的操作を伴う。通常、かかる量は、必ずしもではないが、格納、アクセス、転送、結合、比較、またはマシンによる別な方法での操作が可能な、電気的、磁気的、または光学的信号の形態を取り得る。「データ」、「内容」、「ビット」、「値」、「要素」、「記号」、「文字」、「用語」、「数」、「数字」、または同様のものなどの単語を使用して、かかる信号を参照することは、主に共通使用の理由のために、時々便利である。しかし、これらの単語は、便利なラベルに過ぎず、適切な物理量と関連付けられる。
【0048】
特に明記しない限り、「処理」、「コンピューティング」、「計算」、「判断」、「提示」、「表示」、または同様のものなどの単語を使用した本明細書での説明は、1つもしくは複数のメモリ(例えば、揮発性メモリ、不揮発性メモリ、またはそれらの組合せ)、レジスタ、または、情報を受信、格納、伝送、もしくは表示する他のマシン構成要素内で、物理的(例えば、電子的、磁気的、または光学的)量として表されたデータを操作または変換するマシン(例えば、コンピュータ)の動作またはプロセスを指し得る。
【0049】
本明細書では、「いくつかの実施形態」または「一実施形態」に対する任意の言及は、実施形態に関連して記述される特定の要素、特徴、構造、または特性が少なくとも1つの実施形態に含まれることを意味する。明細書内の様々な場所における「いくつかの実施形態では」という句の出現は、必ずしも、すべてが同じ実施形態を参照するものではない。
【0050】
いくつかの実施形態が、「結合された」および「接続された」という表現をそれらの派生語とともに使用して記述され得る。例えば、いくつかの実施形態は、2つ以上の要素が、直接物理的または電気的に接触していることを示す「結合された」という用語を使用して記述され得る。しかし、「結合された」という用語は、2つ以上の要素が互いに直接接触していないが、互いに協働するか、またはやり取りすることも意味し得る。実施形態は、このコンテキストに限定されない。
【0051】
本明細書では、「含む(comprise)」、「含む(comprising)」、「含む(include)」、「含む(including)」、「有する(has)」、「有する(having)」、またはそれらの任意の他の変形は、包括的な包含を含めることを意図する。例えば、要素のリストを含む、プロセス、方法、項目、または機器は、必ずしもそれらの要素のみに限定されず、明示的にリストされていないか、またはかかるプロセス、方法、項目、もしくは機器に内在する他の要素を含み得る。さらに、反対に明記されていない限り、「または」は、排他的ORではなく、包括的ORを指す。例えば、条件文AまたはBは、以下のいずれか1つによって満足される:Aが真(または存在する)かつBが偽(または存在しない)、Aが偽(または存在しない)かつBが真(または存在する)、ならびにAおよびBの両方が真(または存在する)。
【0052】
加えて、「1つの(a)」または「1つの(an)」の使用は、本明細書で実施形態の要素または構成要素を記述するために採用される。これは、便宜のみのため、記述の一般的な意味を与えるために行われる。この記述は、1つまたは少なくとも1つを含むように読まれるべきであり、単数は、それが別なふうに意味することが明らかでない限り、複数も含む。
【0053】
さらにその上、図は、説明のみを目的として、地図エディタシステムの好ましい実施形態を示す。当業者は、本明細書に示される構造および方法の代替実施形態が、本明細書に記載の本質から逸脱することなく採用され得ることを、以下の説明から容易に認識するであろう。
【0054】
本開示を読むと、当業者は、本明細書で開示された原理を通して、モバイル装置で実行するマッピングアプリケーションによって生成されたデータの分析に基づき、そのモバイル装置上で表示するために、デジタル地図データをプリフェッチするためのシステムおよびプロセスに対するさらに追加の代替構造および機能設計を理解するであろう。従って、特定の実施形態およびアプリケーションが例示され、説明されているが、開示された実施形態は、本明細書で開示された正確な構造および構成要素に限定されないことを理解されたい。当業者には明らかであるような、様々な修正、変更および変形が、添付の請求項で定義される精神および範囲から逸脱することなく、本明細書で開示される方法および装置の配置、操作および詳細において行われ得る。
図1
図2
図3
図4
図5