(57)【特許請求の範囲】
【請求項１】
モバイルコンピューティング装置上で実行するマッピングモジュールでの活動に基づいて、地理的位置のグラフィカル表現を前記モバイルコンピューティング装置に表示する地図タイルデータを前記モバイルコンピューティング装置にプリフェッチするためのコンピュータ実施方法であって、前記方法が、
ユーザーマッピング活動データをユーザーマッピング活動システムで前記モバイルコンピューティング装置から受信することであって、前記ユーザーマッピング活動データが、前記モバイルコンピューティング装置上で実行する前記マッピングモジュールによって生成されて、地理的位置を示し、前記ユーザーマッピング活動データが、前記マッピングモジュールを使用して実行された検索に対応する地理的位置のログ、前記マッピングモジュールによって前記モバイルコンピューティング装置上でレンダリングされた地図内の地理的位置、および前記モバイルコンピューティング装置上でレンダリングされた地図内に表された地理的位置間の道順に対する経路指定情報のうちの１つまたは複数を含む、ユーザーマッピング活動データを前記モバイルコンピューティング装置から受信することと、
前記ユーザーマッピング活動データから地理的位置データを抽出することと、
前記地理的位置データをネットワーク接続を経由してリモートマッピングシステムに送信することと、
地図タイルデータを前記ユーザーマッピング活動データから抽出された前記地理的位置データと照合することであって、前記地図タイルデータが均一のサイズを有する地図画像の部分を含む、地図タイルデータを前記地理的位置データと照合することと、
前記一致した地図タイルデータをベクトル形式で前記リモートマッピングシステムから前記モバイルコンピューティング装置に送信することと、
前記一致した地図タイルデータを、前記モバイルコンピューティング装置のキャッシュ記憶装置に格納することと、
前記モバイルコンピューティング装置で表示するために、前記リモートマッピングシステムからさらなる伝達を受信することなく、その後の前記モバイルコンピューティング装置からの地図タイルデータの要求に応答して、前記キャッシュ記憶装置から前記一致した地図タイルデータを取得することと、を含む、コンピュータ実施方法。
【請求項２】
前記抽出された地理的位置データが関連性があるかどうかを判断するために、前記ユーザーマッピング活動データを分析することをさらに含み、関連性のある地理的位置データが、閾値を上回るいくつかの地理的位置指標を含む、請求項１に記載のコンピュータ実施方法。
【請求項３】
前記地理的位置データを前記リモートマッピングシステムに送信することが、関連性のある地理的位置データを前記リモートマッピングシステムに送信することを含む、請求項２に記載のコンピュータ実施方法。
【請求項４】
リモートマッピングシステムデータを、前記ユーザーマッピング活動データから抽出された前記地理的位置データと照合することが、リモートマッピングシステムデータを前記ユーザーマッピング活動データから抽出された前記関連性のある地理的位置データと照合することを含む、請求項３に記載のコンピュータ実施方法。
【請求項５】
前記地理的位置データが、市の名前、住所、空港名コード、または全地球測位システム座標のうちの１つもしくは複数を含む、請求項１に記載のコンピュータ実施方法。
【請求項６】
地理的位置データを前記ユーザーマッピング活動データから抽出することが、前記ユーザーマッピング活動データを解析することを含む、請求項１に記載のコンピュータ実施方法。
【請求項７】
モバイルコンピューティング装置上で実行するマッピングモジュールでの活動に基づいて、地理的位置のグラフィカル表現を前記モバイルコンピューティング装置に表示する地図タイルデータを前記モバイルコンピューティング装置にプリフェッチするためのコンピュータシステムであって、前記システムが、
モバイルコンピューティング装置で実行可能なユーザーマッピング活動モジュールであって、前記ユーザーマッピング活動モジュールが、ユーザーマッピング活動データを受信し、地理的位置データを前記ユーザーマッピング活動データから抽出するための命令を含み、前記モバイルコンピューティング装置上で実行する前記マッピングモジュールが、前記ユーザーマッピング活動データを生成し、かつ、前記ユーザーマッピング活動データが、前記マッピングモジュールを使用して実行された検索に対応する位置のログ、前記マッピングモジュールによって前記モバイルコンピューティング装置上でレンダリングされた地図内の地理的位置、および前記モバイルコンピューティング装置上でレンダリングされた地図内に表された地理的位置間の道順に対する経路指定情報のうちの１つまたは複数を含む、ユーザーマッピング活動モジュールと、
前記地理的位置データを前記ユーザーマッピング活動モジュールから受信し、リモートマッピングシステムデータを前記ユーザーマッピング活動データから抽出された前記地理的位置データと照合して、前記一致したリモートマッピングシステムデータを、前記モバイルコンピューティング装置でのキャッシュ記憶のために、前記モバイルコンピューティング装置に送信するための命令を含むリモートマッピングシステムであって、前記一致したリモートマッピングシステムデータが、均一のサイズを有する地図画像の部分を含む、リモートマッピングシステムと、を備える、コンピュータシステム。
【請求項８】
モバイルコンピューティング装置上で実行しているマッピングモジュールでの活動に基づいて、地理的位置のグラフィカル表現を前記モバイルコンピューティング装置に表示する地図タイルデータを前記モバイル装置にプリフェッチするためのコンピュータ実施方法であって、前記方法が、
ユーザーマッピング活動データを前記マッピングモジュールにおいて生成することであって、前記ユーザーマッピング活動データが、地理的位置を示し、かつ、前記マッピングモジュールを使用して実行された検索に対応する地理的位置のログ、前記マッピングモジュールによって前記モバイルコンピューティング装置上でレンダリングされた地図内の地理的位置、および前記モバイルコンピューティング装置上でレンダリングされた地図内に表された地理的位置間の道順に対する経路指定情報のうちの１つまたは複数を含む、ユーザーマッピング活動データを生成することと、
前記モバイル装置上の前記ユーザー活動データから地理的位置データを抽出することと、
前記地理的位置データを、ネットワーク接続を経由してリモートマッピングシステムに送信することと、
地図タイルデータを前記ユーザーマッピング活動データから抽出された前記地理的位置データと照合することであって、前記地図タイルデータが均一のサイズを有する地図画像の部分を含む、地図タイルデータを前記地理的位置データと照合することと、
前記一致した地図タイルデータをベクトル形式で前記モバイルコンピューティング装置に送信することと、
前記一致した地図タイルデータを、前記モバイルコンピューティング装置のキャッシュ記憶装置に格納することと、
その後、前記モバイルコンピューティング装置で表示するために、前記リモートマッピングシステムからさらなる伝達を受信することなく、前記キャッシュ記憶装置から前記一致した地図タイルデータを取得することと、を含む、コンピュータ実施方法。
【請求項９】
モバイルコンピューティング装置上で実行しているマッピングモジュールでのユーザー活動に基づいて、地図タイルデータを前記モバイル装置にプリフェッチするための命令を格納する有形的コンピュータ可読媒体であって、前記命令がプロセッサによって実行される場合に、前記プロセッサに、
ユーザーマッピング活動データを前記マッピングモジュールで生成することであって、前記ユーザーマッピング活動データが、地理的位置を示し、かつ、前記マッピングモジュールを使用して実行された検索に対応する地理的位置のログ、前記マッピングモジュールによって前記モバイルコンピューティング装置上でレンダリングされた地図内の地理的位置、および前記モバイルコンピューティング装置上でレンダリングされた地図内に表された地理的位置間の道順に対する経路指定情報のうちの１つまたは複数を含む、ユーザーマッピング活動データを生成することと、
前記モバイル装置上の前記ユーザー活動データから地理的位置データを抽出することと、
前記地理的位置データを、ネットワーク接続を経由してリモートマッピングシステムに送信することと、
地図タイルデータを前記ユーザーマッピング活動データから抽出された前記地理的位置データと照合することであって、前記地図タイルデータが均一のサイズを有する地図画像の部分を含む、地図タイルデータを前記地理的位置データと照合することと、
前記一致した地図タイルデータをベクトル形式で前記モバイルコンピューティング装置に送信することと、
前記一致した地図タイルデータを、前記モバイルコンピューティング装置のキャッシュ記憶装置に格納することと、
その後、前記モバイルコンピューティング装置で表示するために、前記リモートマッピングシステムからさらなる伝達を受信することなく、前記キャッシュ記憶装置から前記一致した地図タイルデータを取得することと、を行わせる、有形的コンピュータ可読媒体。
【請求項１０】
モバイルコンピューティング装置上で実行する、ウェブサービスアカウントに対応するマッピングモジュールでの活動に基づいて、地理的位置のグラフィカル表現を前記モバイルコンピューティング装置に表示するように構成された地図タイルデータを前記モバイルコンピューティング装置にプリフェッチするためのコンピュータ実施方法であって、前記方法が、
ユーザーマッピング活動データをユーザーマッピング活動システムで前記モバイルコンピューティング装置から受信することであって、前記ユーザーマッピング活動データが、前記ウェブサービスアカウントに対応し、地理的位置を示し、前記ユーザーマッピング活動データが、検索に対応する地理的位置のログ、および前記モバイルコンピューティング装置上でレンダリングされた地図内に表された地理的位置間の道順に対する経路指定情報のうちの１つまたは複数を含む、ユーザーマッピング活動データを前記モバイルコンピューティング装置から受信することと、
前記ユーザーマッピング活動データから地理的位置データを抽出することと、
前記地理的位置データをネットワーク接続を経由してリモートマッピングシステムに送信することと、
地図タイルデータを前記ユーザーマッピング活動データから抽出された前記地理的位置データと照合することであって、前記地図タイルデータが均一のサイズを有する地図画像の部分を含む、地図タイルデータを前記地理的位置データと照合することと、
前記一致した地図タイルデータをベクトル形式で前記リモートマッピングシステムから前記モバイルコンピューティング装置に送信することと、
前記一致した地図タイルデータを、前記モバイルコンピューティング装置のキャッシュ記憶装置に格納することと、
前記モバイルコンピューティング装置で表示するために、前記リモートマッピングシステムからさらなる伝達を受信することなく、その後の前記モバイルコンピューティング装置からの地図タイルデータの要求に応答して、前記キャッシュ記憶装置から前記一致した地図タイルデータを取得することと、を含む、コンピュータ実施方法。
【請求項１１】
モバイルコンピューティング装置上で実行する、ウェブサービスアカウントに対応するマッピングモジュールでの活動に基づいて、地理的位置のグラフィカル表現を前記モバイルコンピューティング装置に表示するように構成された地図タイルデータを前記モバイルコンピューティング装置にプリフェッチするためのコンピュータシステムであって、前記システムが、
モバイルコンピューティング装置で実行可能なユーザーマッピング活動モジュールであって、前記ユーザーマッピング活動モジュールが、ユーザーマッピング活動データを受信し、地理的位置データを前記ユーザーマッピング活動データから抽出するための命令を含み、前記ユーザーマッピング活動データが、前記ウェブサービスアカウントに対応し、検索に対応する地理的位置のログ、および地理的位置間の道順に対する経路指定情報のうちの１つまたは複数を含む、ユーザーマッピング活動モジュールと、
前記地理的位置データを前記ユーザーマッピング活動モジュールから受信し、リモートマッピングシステムデータを前記ユーザーマッピング活動データから抽出された前記地理的位置データと照合して、前記一致したリモートマッピングシステムデータを、前記モバイルコンピューティング装置でのキャッシュ記憶のために、前記モバイルコンピューティング装置に送信するための命令を含むリモートマッピングシステムであって、前記一致したリモートマッピングシステムデータが、均一のサイズを有する地図画像の部分を含む、リモートマッピングシステムと、を備える、コンピュータシステム。
【請求項１２】
モバイルコンピューティング装置上で実行する、ウェブサービスアカウントに対応するマッピングモジュールでの活動に基づいて、地理的位置のグラフィカル表現を表示する地図タイルデータを前記モバイルコンピューティング装置にプリフェッチするためのコンピュータ実施方法であって、前記方法が、
ユーザーマッピング活動データを生成することであって、前記ユーザーマッピング活動データが、前記ウェブサービスアカウントに対応し、地理的位置を示し、前記ユーザーマッピング活動データが、マッピングモジュールを使用して実行された検索に対応する地理的位置のログ、および地理的位置間の道順に対する経路指定情報のうちの１つまたは複数を含む、ユーザーマッピング活動データを生成することと、
前記ユーザーマッピング活動データから地理的位置データを抽出することと、
前記地理的位置データを、ネットワーク接続を経由してリモートマッピングシステムに送信することと、
地図タイルデータを前記ユーザーマッピング活動データから抽出された前記地理的位置データと照合することであって、前記地図タイルデータが均一のサイズを有する地図画像の部分を含む、地図タイルデータを前記地理的位置データと照合することと、
前記一致した地図タイルデータをベクトル形式で前記モバイルコンピューティング装置に送信することと、
前記一致した地図タイルデータを、前記モバイルコンピューティング装置のキャッシュ記憶装置に格納することと、
その後、前記モバイルコンピューティング装置で表示するために、前記リモートマッピングシステムからさらなる伝達を受信することなく、前記キャッシュ記憶装置から前記一致した地図タイルデータを取得することと、を含む、コンピュータ実施方法。
【請求項１３】
モバイルコンピューティング装置上で実行している、ウェブサービスアカウントに対応するマッピングモジュールでのユーザー活動に基づいて、地図タイルデータを前記モバイル装置にプリフェッチするための命令を格納する有形的コンピュータ可読媒体であって、前記命令がプロセッサによって実行される場合に、前記プロセッサに、
ユーザーマッピング活動データを生成することであって、前記ユーザーマッピング活動データが、前記ウェブサービスアカウントに対応し、地理的位置を示し、前記ユーザーマッピング活動データが、前記マッピングモジュールを使用して実行された検索に対応する地理的位置のログ、および地理的位置間の道順に対する経路指定情報のうちの１つまたは複数を含む、ユーザーマッピング活動データを生成することと、
前記ユーザーマッピング活動データから地理的位置データを抽出することと、
前記地理的位置データを、ネットワーク接続を経由してリモートマッピングシステムに送信することと、
地図タイルデータを前記ユーザーマッピング活動データから抽出された前記地理的位置データと照合することであって、前記地図タイルデータが均一のサイズを有する地図画像の部分を含む、地図タイルデータを前記地理的位置データと照合することと、
前記一致した地図タイルデータをベクトル形式で前記モバイルコンピューティング装置に送信することと、
前記一致した地図タイルデータを、前記モバイルコンピューティング装置のキャッシュ記憶装置に格納することと、
その後、前記モバイルコンピューティング装置で表示するために、前記リモートマッピングシステムからさらなる伝達を受信することなく、前記キャッシュ記憶装置から前記一致した地図タイルデータを取得することと、を行わせる、有形的コンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、一般に、デジタル地図データのプリフェッチに関し、より詳細には、モバイル装置で実行するマッピングアプリケーションによって生成されたデータの分析に基づき、そのモバイル装置上で表示するために、デジタル地図データをプリフェッチするためのシステムおよび方法に関する。
【背景技術】
【０００２】
本明細書で提供する背景技術の記述は、本開示のコンテキストをおおまかに提示することのみを目的とする。現在指名されている発明者の仕事は、本背景技術の節に記述される範囲で、そうでなければ出願時に従来技術と見なされ得ない記述の態様のみならず、明示的にも暗黙的にも本開示に対する従来技術として認められない。
【０００３】
携帯電話、タブレットコンピュータ、ノートブックなどの、多数のモバイルコンピューティング装置は、全地球測位システム（ＧＰＳ）ハードウェアおよびアプリケーションを組み込む。ＧＰＳハードウェアおよびアプリケーションは、モバイルコンピューティング装置でのナビゲーションに有用であり、しばしばモバイルマッピングモジュールと組み合わされる。装置上でインスタンス生成されると、モバイルマッピングモジュールは、装置上のＧＰＳ送信機または他のＧＰＳハードウェアおよびマッピングシステムのバックエンドアプリケーションサーバーと通信し得る。バックエンドのマッピングシステムからプッシュまたはプルされたマッピングデータを使用して、マッピングモジュールは、次いで、装置の現在の位置の周辺地域のデジタル地図をモバイル装置上でレンダリングし得る。地図データは、しばしば、ＧＰＳハードウェアからマッピングモジュールを介してシステムに提供された装置の位置に基づいて、マッピングシステムから装置にプッシュされる。例えば、街路、建物、および他の地理的特徴のグラフィカル表現に対するデータが、モバイル装置にプッシュされ得、その装置上で実行するマッピングモジュールが、装置の現在の位置に基づくか、または装置を使用したマッピングシステムの検索に基づいて、プッシュされたデータを、装置のディスプレイ画面上の画像にレンダリングし得る。
【０００４】
地図画像をレンダリングするために、装置は、通常、専用サーバーからラスター画像を受信する。例えば、地図サーバーは、インターネット上で動作し、指定された地理的地域に対して、画像をポータブルネットワークグラフィックス（ＰＮＧ）フォーマットで様々なクライアント装置に提供し得る。ラスター画像は、クライアント装置でのレンダリングは比較的容易であるが、ラスター画像データは、通常、総合的な地図に対して、大量の記憶空間を必要とする。また、クライアント装置でラスター画像を効率的に操作することも困難である。例えば、選択された領域を拡大するためには、新しいラスター画像データがサーバーから取得されるか、または利用可能なラスター画像データが、品質における顕著な劣化とともに拡大されるか、のいずれかである。
【発明の概要】
【課題を解決するための手段】
【０００５】
この発明の概要および以下の発明を実施するための形態に記述される特徴および利点は、包括的ではない。多数の追加の特徴および利点が、本明細書の図、仕様、および請求項を考慮すると、当業者には明らかであろう。その上、他の実施形態は、この発明の概要に記述される特徴おより利点の１つまたは複数（または全部）を省略し得る。
【０００６】
ウェブベースマッピングシステムのグラフィック要素をスマートフォンまたは他のモバイルコンピューティング装置に表示するための地図タイルデータ（すなわち、２５６画素×２５６画素などの均一のサイズを有する地図画像の部分）が、そのモバイル装置でのマッピングモジュールの使用履歴の分析に基づいて、装置にプリフェッチされ得る。例えば、ユーザーマッピング活動システムは、ユーザーマッピング活動データをモバイル装置からネットワーク接続を経由して受信し得る。モバイルコンピューティング装置上で実行しているマッピングモジュールは、ユーザーマッピング活動データを生成し得る。ユーザーマッピング活動システムは、次いで、地理的位置データをユーザーマッピング活動データから抽出し、その地理的位置データを、ネットワーク接続を介してマッピングシステムに送信し得る。マッピングシステムは、次いで、地図タイルデータに関連づけられた地理的位置をユーザーマッピング活動データの地理的位置と照合し得、その一致したタイルデータを、モバイルコンピューティング装置でのキャッシュ記憶のためにモバイルコンピューティング装置に送信し得る。ユーザーマッピング活動システムは、抽出された地理的位置データが、そのタイルデータのプリフェッチを正当とするのに十分に関連性があるかどうかを判断するために、ユーザーマッピング活動データの分析も行い得る。関連性のある地理的位置データは、閾値を上回るいくつかの地理的位置指標を含み得る。
【０００７】
いくつかの実施形態では、ユーザーマッピング活動データは、モバイル装置がマッピングモジュールを実行した地理的位置のログに対応する位置履歴ファイル、マッピングモジュールを使用して実施された検索のログに対応する検索履歴ファイル、およびマッピングモジュールによって表された地理的位置間の経路のログに対応する経路指定履歴ファイルのうちの１つまたは複数を含む。地理的位置データは、モバイルコンピューティング装置上で実行するマッピングアプリケーションによって生成または受信されるデータを含み得、ユーザーの現在の位置、ユーザーの所望の将来の位置など、を示す。例えば、地理的位置データは、市の名前、住所、空港名コード、または全地球測位システム座標のうちの１つもしくは複数を含み得る。
【図面の簡単な説明】
【０００８】
【図１】モバイル装置を使用したマッピングモジュールの使用履歴の分析に基づき、モバイルコンピューティング装置上で実行するマッピングモジュール用にデータをプリフェッチするためのシステムのハイレベルブロック図である。
【図２】ユーザーマッピングモジュールデータに従ってプリフェッチされる地図タイルに対する例示的なデータ構造である。
【図３】モバイルコンピューティング装置の例示的なブロック図およびユーザーマッピングモジュールデータに対するデータ構造である。
【図４】本明細書で説明されるように、ウェブおよび移動体通信ネットワークベースのマッピングシステムに対して、地図タイルデータをプリフェッチするための１つの方法の例示的な流れ図である。
【図５】マッピングモジュールを実行するコンピューティング装置上でのキャッシュ記憶および表示用に、データをプリフェッチするためのシステムおよび方法を実施するコンピューティング環境のハイレベルブロック図である。
【０００９】
図は、説明のみを目的として、本発明の好ましい実施形態を示す。当業者は、本明細書で説明する構造および方法の代替実施形態が、本明細書で説明する本発明の本質から逸脱することなく、採用され得ることを、以下の説明から容易に理解するであろう。
【発明を実施するための形態】
【００１０】
一般的に言えば、モバイル装置上で実行するマッピングモジュールは、マッピングモジュールのためのデジタル地図タイルデータをプリフェッチする。個々の地図タイルによって表される地理的地域のサイズは、ユーザーが地図を表示し、地図タイルが関連付けられているズームレベルによって決まり得、そのため、より低いズームレベルでの単一の地図タイルは、より高いズームレベルでの単一の地図タイルよりも大きな地理的地域を示す。マッピングシステムは、ベクターグラフィックス形式に従って、各地図タイルを記述子とともに生成し得る。クライアント装置（例えば、携帯電話、タブレットコンピュータなど）は、各地図タイルに対応するベクトル記述子から各タイルに対するラスター画像をローカルに生成し得る。一実施形態では、マッピングシステム１００（図１）は、要求されたデータをデータベースから取り出す。一旦、リモートマッピングシステムからフェッチされると、地図タイルデータは、次いで、マッピングモジュールを用いて取られたユーザー動作の分析に基づき、ユーザーに対して見込まれる表示のために、モバイル装置内に格納され得る。ユーザーのマッピングモジュール活動分析は、ユーザーが将来、地図データを表示しそうな１つまたは複数の所定の地理的位置を識別し得る。一旦、地図タイルデータがプリフェッチされ、モバイル装置のメモリに格納されると、モバイル装置は、地図データをバックエンドのマッピングシステムから取得する必要なく、１つまたは複数の所定の地理的位置に対するプリフェッチされた地図タイルデータを使用して、デジタル地図を迅速にレンダリングし得る。地図タイルデータのプリフェッチは、地図レンダリングの待ち時間を減らして、より良いユーザーエクスペリエンスをもたらし得る。ユーザーマッピングモジュール活動分析は、ユーザーが将来居る可能性がある地理的位置を判断することにより、地図データをプリフェッチすべき１つまたは複数の地理的位置を判断する。この分析は、モバイル装置のバックエンドで実行され得、ユーザーのマッピングモジュール活動に関連した全てのデータを考慮し得る。いくつかの実施形態では、システムは、ユーザーがほとんどの時間をどこで過ごすかに関連したデータ、ユーザーがマッピングモジュールを介して実行した検索、計画された経路または旅行、モバイル装置で検出された事象など、を使用する。
【００１１】
一般に、ベクトルベースの地図データは、様々な幾何学形状を（例えば、地点の数学的記述およびその地点を接続する経路を使用して）指定して、道路、建物、公園、水域などの、様々な地図要素をレンダリングするために、これらの形状がどのように位置付けられるべきかを示し得る。例えば、線分のラスター画像を構成する各画素を指定するのではなく、線分のベクトルベースの記述は、線分の２つのエンドポイントを指定し、その２つのエンドポイントが直線によって接続されることを示し得る。地図要素のベクトルベースの記述は、本明細書では、ベクトル記述子または単にベクトルと呼ばれ得、１つまたはいくつかのベクトル記述子の組は、ベクトルデータと呼ばれ得る。一般に、地図要素は、あるベクトル記述子を使用して記述され得る。バックエンドまたはリモートのマッピングシステムは、地理的地域の地図がクライアント装置でレンダリングされるズームレベル、地図がそれに従ってクライアント装置でレンダリングされる地図のタイプ（例えば、地形、交通、交通機関など）、以前に提供された地図データなどを考慮して、地理的地域のベクトルベースの記述を生成し得る。また、いくつかの実施形態では、地図サーバーは、地図の内容を、ベクトルデータがどのようにレンダリングされるべきかを示すスタイルデータとは別に記述するベクトルデータ、およびラベル、およびテキスト、画像などによって地図の内容を記述するプレイスページデータを提供し得る。
【００１２】
図１は、ユーザーマッピングモジュール活動の分析に基づいて、コンピューティング装置１０６上で実行するマッピングモジュール１０４用に地図タイルデータ１０２をプリフェッチするためのシステム１００を示すハイレベルブロック図である。システム１００は、マッピングモジュール１０４を実行可能であるコンピューティング装置１０６、ユーザーマッピング活動モジュール１０８、およびマッピングモジュール１０４が、地図タイルデータをフェッチまたは受信して、地図データキャッシュ１１０（すなわち、コンピューティング装置１０６のメモリまたは他のメモリなど）内に格納することを可能にするために、装置１０６がデータをプリフェッチすることを可能にする他のモジュールを含み得る。いくつかの実施形態では、装置１０６は、マッピングモジュール１０４およびユーザーマッピング活動モジュール１０８の命令を実行する。装置１０６は、パーソナルコンピュータ、スマートフォン、タブレットコンピュータ、または本明細書に記載する、様々なモジュール、命令などを実行可能な他のコンピューティング装置を含み得る。マッピングモジュール１０４およびユーザーマッピング活動モジュール１０８は、マッピングシステム１１２およびユーザーマッピング活動システム１１４を含むバックエンド構成要素１１１と、インターネット１１５または他のタイプのネットワーク（例えば、ＬＡＮ、ＭＡＮ、ＷＡＮ、携帯もしくは移動体通信ネットワーク、有線もしくは無線ネットワーク、プライベートネットワーク、または仮想プライベートネットワークなど）を通じて通信し得る。
【００１３】
マッピングシステムサーバー１１６は、マッピングモジュール１０４に対してデータを送信および受信し得る。いくつかの実施形態では、マッピングシステム１１２およびマッピングサーバー１１６は、コンピュータ実行可能命令およびデータを送信して、マッピングモジュール１０４がデジタル地図をコンピューティング装置１０６のディスプレイ構成要素内にレンダリングすることを可能にし得る。例えば、マッピングサーバー１１６は、位置データ、クライアントコンピューティング装置１０６またはユーザーマッピング活動システム１１４による分析の結果、または他のデータを受信し、その結果として、ベクターグラフィックス形式のデジタル地図タイルデータ１１８、デジタル地図タイルデータ１１８内に表された特定の企業または住所に対応するリストデータ１２０、リストデータ１２０の特定の企業または住所のウェブサイトに対応するプレイスページデータ１２２などを送信するためのモジュール１１７を含み得る。
【００１４】
いくつかの実施形態では、マッピングモジュール１０４およびユーザーマッピング活動モジュール１０８は、データを分析して、どの地図タイルをマッピングシステム１１２が装置１０６にキャッシングのために送信するかを判断し得、それらのタイルをシステム１１２から取得する。他の実施形態では、バックエンド構成要素１１１は、コンピューティング装置１０６から送信されたデータを分析して、どのタイルをキャッシュ記憶のために装置１０６に送信するかを判断し得る。例えば、マッピングモジュール１０４は、位置データをコンピューティング装置１０６のＧＰＳ送受信機からマッピングシステム１１２に送信し得、ユーザーマッピング活動モジュール１０８は、ユーザーマッピング活動データをコンピューティング装置１０６からユーザーマッピング活動システム１１４に送信し得る。ユーザーマッピング活動データは、一般に、地理的位置（例えば、ユーザーの現在または将来の位置、計画された位置、好みの位置、など）を示す、モバイルコンピューティング装置上で実行するマッピングアプリケーションによって生成または受信される任意のデータを含み得る。例えば、いくつかの実施形態では、ユーザーマッピング活動データは、地図検索要求のログ、地図上の様々な地点間の経路指定データ、地図上の興味のある地点、ユーザーによって設定されたか、またはマッピングアプリケーションによって判断されたお気に入りの好みの位置などのうちの１つまたは複数を含む。地理的位置データは、市の名前、住所、空港名コード、全地球測位システム座標などのうちの１つまたは複数を含み得る。
【００１５】
マッピングモジュール１０４は、マッピングモジュール１０４が、ユーザーの現在の地理的位置または任意の他の地理的位置のデジタル表現をコンピューティング装置１０６のディスプレイ構成要素にレンダリングすることを可能にするコンピュータ実行可能命令を含み得る。レンダリングプロセスの一部として（例えば、ユーザーがマッピングモジュール１０４を実行する場合、マッピングモジュール１０４を使用して地理的位置の検索を実施する場合、マッピングモジュール１０４を使用して、２つ以上の地理的位置間の経路検索を実施する場合など）、マッピングモジュール１０４は、マッピングシステム１１２からのラスター化されたベクトルデータ（すなわち、タイルデータ１１８、リストデータ１２０、プレイスページデータ１２２）および／またはキャッシュされた地図タイルデータ１０２を含むマッピングインタフェース１０４ａを、コンピューティング装置１０６のディスプレイ内に表示する命令を実行し得る。マッピングインタフェース１０４ａは、ユーザーが、キャッシュ１１０から、マッピングシステム１１２から、または他の地図データソースから、地図データ１０２を使用して、装置１０６に地理的位置の様々なデジタル表現をレンダリングさせることを可能にし得る。
【００１６】
ユーザーマッピング活動モジュール１０８は、ユーザーマッピング活動データ１２４を、コンピューティング装置１０６のユーザーマッピング活動データキャッシュ１２６、マッピングモジュール１０４、または様々な他のモジュールから収集するための、コンピュータ実行可能命令を含み得る。いくつかの実施形態では、ユーザーマッピング活動データキャッシュ１２６は、コンピューティング装置１０６上で実行するか、またはコンピューティング装置１０６と通信する、様々な他のモジュール（例えば、ウェブブラウザ、ユーザーマッピング活動追跡モジュール、旅行計画モジュール、電子メールモジュールなど）から、データ１２４を格納し得る。ユーザーマッピング活動モジュール１０８は、ユーザーマッピング活動データ１２４を分析するか、またはデータ１２４を分析のためにユーザーマッピング活動システム１１４に送信するための命令も含み得る。
【００１７】
いくつかの実施形態では、クライアント装置１０６におけるユーザーマッピング活動モジュール１０８は、マッピングモジュール１０４を使用して、コンピューティング装置１０６で表示される地図タイルデータ１０２をプリフェッチするために、モバイル装置事象データ１２４を受信、送信、および分析し得る。いくつかの実施形態では、モジュール１０８は、コンピューティング装置のＧＰＳハードウェアによって判断された位置の履歴、マッピングモジュール検索履歴データ、マッピングモジュール１０４によって表される２つ以上の地理的位置間で計画された経路からの経路指定データ、またはユーザーがマッピングモジュール１０４を使用して指定している地理的位置を示す他のデータ１３６を含む、ユーザーマッピング活動データ１２４を分析するための命令を含む。クライアントモバイルコンピューティング装置１０６におけるモジュール１０８によるモバイル装置事象データ１２４の分析は、モジュール１０８が、モバイル装置でのキャッシュ記憶のために、地図タイルデータ２００を取得するため、マッピングシステム１１２に送信し得る位置データを判断し得る。
【００１８】
他の実施形態では、ユーザーマッピング活動システム１１４は、マッピングモジュール１０４を使用して、コンピューティング装置１０６で表示される地図タイルデータ１０２をプリフェッチするために、ユーザーマッピング活動データ１２４を受信、送信、および分析するためのモジュール１２９を含む、ユーザーマッピング活動システムサーバー１２８をバックエンド１１１において含み得る。いくつかの実施形態では、サーバー１２８は、ユーザーマッピング活動データ１２４を１つまたは複数のデータリポジトリ内に格納する。例えば、データ１２４は、コンピューティング装置のＧＰＳハードウェアによって判断された位置の履歴、マッピングモジュール検索履歴データ１３２、マッピングモジュール１０４によって表される２つ以上の地理的位置間で計画された経路からの経路指定データ、またはユーザーが訪問することを計画しているか、またはマッピングモジュール１０４によって生成されたデータから判断されるように、訪問する可能性がある地理的位置を示す他のデータ１３６を含む、ユーザーの位置１３０を含み得る。モジュール１２９は、データリポジトリ１３０、１３２、１３４、および１３６内に格納されたデータを分析するためのコンピュータ実行可能命令を含み得る。サーバーバックエンド構成要素１１１でのモジュール１２９によるユーザーマッピング活動データ１２４の分析は、ユーザーマッピング活動システムサーバー１２８がマッピングシステム１１２に送信し得る位置データを判断し得る。
【００１９】
図２は、地図タイルデータ２００に対するハイレベルブロック図の一実施形態を示す。地図タイル２００は、複数の属性２００ａ、例えば、名前、位置データ２０２、グラフィック構成要素２０４、およびリストデータ２０６を含み得る。位置データ２０２は、地理的地域を表す地図タイル２００の特定の地理的位置を記述する特定の座標２０２ａを含み得る。いくつかの実施形態では、位置データ２０２は、地図タイル２００に対する北、南、東、および西の境界などの複数の境界２０２ａを含む。位置データ２０２は、全地球測位システム（ＧＰＳ）または、物理的オブジェクトがどこに位置するかを判断することが可能な他のシステムによって決定されるような、緯度および経度の座標を含み得る。グラフィック構成要素２０４は、位置および分類データ２０４ａを含み得る。いくつかの実施形態では、グラフィック構成要素２０４に対する位置データは、ＧＰＳ座標、地図タイル２００の境界２０２ａ内の位置などを含み得る。グラフィック構成要素２０４に対する分類データは、構造、輸送項目（例えば、道路、鉄道など）、地形特徴、および地図タイル２００の位置データ２０２によって記述される境界内に含まれる物理的オブジェクトを図表で表す他の項目など、グラフィック構成要素２０４が表す物理的オブジェクトのタイプを含み得る。リストデータ２０６は、地図タイル２００内のグラフィック構成要素２０４によって表される物理的オブジェクトの特性を記述する様々なグループの情報２０６ａを含み得る。いくつかの実施形態では、情報２０６ａは、地図タイル２００内に図表で表される、企業、興味のある地点、ショッピングセンター、公園などに対するリスト情報を含む。情報２０６ａは、仕様および、オブジェクトの履歴、物理的仕様などを記述する他の情報も含み得る。例えば、情報２０６ａは、地図タイル２００内のリストデータ２０６によって表される、企業、興味のある地点などに対する、アイコン、位置、およびプレイスページデータ２０６ａ１ａを含む、いくつかのリスト２０６ａ１、２０６ａ２などを含み得る。プレイスページデータ２０６ａ１ａは、地図タイル２００内のグラフィック構成要素２０４、アイコン、または他のグラフィック項目によって表される特定のリストを記述する様々なウェブリソースからの情報を含むウェブページをレンダリングするための、テキスト、写真、および他のデータを含み得る。
【００２０】
図３は、地図データキャッシュ１１０内に格納して、コンピューティング装置１０６上に表示するために、地図タイルデータ２００をプリフェッチするためにシステム１００によって使用され得るユーザーマッピング活動データ３００の表現である。マッピング活動データ３００は、ユーザーマッピング活動モジュール１０８を実行するコンピューティング装置１０６によって収集され得る。モジュール１０８は、コンピューティング装置１０６上で実行するマッピングモジュール１０４と通信し得る。いくつかの実施形態では、マッピングモジュール１０４は、ユーザー入力に応答して、マッピングモジュール１０４に関連したマッピング活動データ３００を生成し得る。例えば、マッピング活動モジュール１０８は、位置履歴データ３０４、地図検索履歴データ３０６、コンピューティング装置１０６によってレンダリングされた地図上の２つ以上の地点間の経路指定データなどを、コンピューティング装置１０６に、マッピングモジュール１０４から取得させるためのコンピュータ実行可能命令を含み得る。言うまでもなく、ユーザーマッピング活動モジュール１０８は、地図データキャッシュ１１０内に格納して、コンピューティング装置１０６上に表示するために、地図タイルデータ２００をプリフェッチするために使用され得る位置関連データに関して、コンピューティング装置１０６上で実行する任意のアプリケーションを監視し得る。ユーザーマッピング活動データの様々な組３０４、３０６、３０８、３１０の各々は、地理的位置を示すデータ３１４（すなわち、地理的位置データ３１４）を含み得る。
【００２１】
図４は、地図データキャッシュ１１０内に格納して、コンピューティング装置１０６上に表示するために、地図タイルデータ２００をプリフェッチするための方法例４００の流れ図である。方法４００は、１つもしくは複数のブロック、モジュール、機能またはルーチンを、有形的コンピュータ可読媒体内に格納され、コンピューティング装置（例えば、本明細書に記載するような、スマートフォン、タブレットコンピュータ、もしくはモバイルコンピューティング装置、または他のパーソナルコンピューティング装置）のプロセッサを使用して実行される、コンピュータ実行可能命令の形式で含み得る。方法４００は、地図タイルデータ２００をプリフェッチするために、例えば、システム１００に対するコンピューティング環境の任意のバックエンド１１１もしくはクライアントモバイルコンピューティング装置１０６モジュールの一部として、またはかかるシステムの外部にあるモジュールの一部として含まれ得る。例えば、方法４００は、地図タイルデータ２００をプリフェッチするために、システム１００のコンピューティング装置上のアプリケーション内で実行する、マッピングモジュール１０４および／またはユーザーマッピング活動モジュール１０８の一部であり得る。図４は、説明を容易にするために図を参照して説明されるが、方法４００は、いうまでもなく、他のオブジェクトおよびユーザーインタフェースとともに利用され得る。
【００２２】
ブロック４０２で、方法４００は、ユーザー許可をオプトアウトユーザーインタフェースから受信後、ユーザーマッピング活動データ３００を、コンピューティング装置１０６上で実行するマッピングモジュール１０４から取得し得る。ブロック４０２は、ウェブページまたは他のインタフェースをユーザーのコンピューティング装置上に提示するための命令を含み得、ユーザーはそこから、コンピューティング装置１０６またはシステム１００の任意の他の部分が地図タイルデータをプリフェッチすることを許可するか、または可能にする任意のデータ収集のオプトアウトを選択し得る。マッピングモジュール１０４から取得されたマッピング活動データ３００は、マッピングモジュール１０４によって保存された位置３０４のログ、マッピングモジュール１０４によりコンピューティング装置１０６上でレンダリングされた地図内の地理的位置に対してマッピングモジュール１０４によって実行された検索３０６、レンダリングされた地図上に表された地理的位置間の道順に対する経路指定情報３０８などに対応する履歴ファイルを含み得る。いくつかの実施形態では、ユーザーマッピング活動データ３００は、ユーザーマッピング活動モジュール１０８、バックエンド構成要素１１１（例えば、ユーザーマッピング活動システム１１４）、またはモバイルコンピューティング装置１０６にローカルもしくはリモートである、他のモジュールおよび構成要素からの要求に応答して、モバイルコンピューティング装置１０６から取得され得る。さらなる実施形態では、モバイルコンピューティング装置１０６は、ユーザーマッピング活動データ３００または以下で説明する分析の結果を定期的にバックエンド構成要素１１１に送信し得る。さらに、ユーザーマッピング活動システムは、ユーザーマッピング活動データ３００を、マッピングシステム１１２に結合された別のコンピューティング装置などの他のソースから、モバイルコンピューティング装置１０６および他の装置の両方のユーザーに共通しているウェブサービスアカウントを介して、取得／受信し得る。
【００２３】
ブロック４０４で、方法４００は、ブロック４０２で送信または取得されたユーザーマッピング活動データ３００を分析し得る。いくつかの実施形態では、クライアントモバイルコンピューティング装置１０６でのユーザーマッピング活動モジュール１０８が、ユーザーマッピング活動データ３００を定期的に分析して、結果を、ローカルもしくはリモートのユーザーマッピング活動システム１１４またはマッピングシステム１１２にネットワーク接続を介して送信し得る。他の実施形態では、ユーザーマッピング活動システム１１４は、データ３００をモバイルコンピューティング装置１０６からネットワーク接続を介して取得または受信し得る。事象モジュール１０８は、データ３００を受信または取得して、それを、地理的位置データ３１４を発見するために解析し得る。モジュール１０８は、ユーザーマッピング活動データ３００から地理的位置データ３１４を識別または判断するために、データ３００を解析するための１つまたは複数のコンピュータ実行可能命令を含み得る。代替または追加として、バックエンド構成要素１１１がデータ３００を分析し、ユーザーマッピング活動システムサーバー１２８がデータ３００を受信または取得して、位置データ３１４を発見するためにそれを解析し得る。モジュール１０８および／またはモジュール１２９は、データ３００を解析し、データ３００から位置データ３１４を識別または判断するための１つまたは複数のコンピュータ実行可能命令を含み得る。ユーザーマッピング活動データ３００から判断された地理的位置データ３１４は、市の名前、住所、空港名コード、ＧＰＳ座標または地図タイルデータを判断するためにマッピングシステム１１２によって利用可能な地理的位置を示す任意の他の情報を含み得る。
【００２４】
ブロック４０６で、地理的位置データ３１４が、地図タイルデータのプリフェッチを正当とするのに十分に関連性がある場合、モジュール１２９またはモジュール１０８がそのデータをブロック４０８でマッピングシステム１１２に送信し得る。いくつかの実施形態では、モジュール１２９または１０８は、任意の発見された地理的位置データ３１４がキャッシュ１１０内への格納のために地図タイルデータのプリフェッチを継続するのに十分に関連性があるかを判断するために、ユーザーマッピング活動データ３００を分析するための１つまたは複数のコンピュータ実行可能命令を含み得る。例えば、モジュール１２９または１０８は、「ボストン」を地理的位置として示すユーザーマッピング活動データ３００から地理的位置データ３１４の１つのインスタンスを判断するだけであり得る。１つのみの指標は、地図タイルデータをキャッシュするため、システム１００によるいかなる更なる動作も正当とし得ない。しかし、より多くのユーザーマッピング活動データ３００からの特定の地理的位置データ３１４のもっと多くの指標は、全体として、地図タイルデータをキャッシュするために、さらなる命令の実行を正当とする閾値量に達し得る。モジュール１２９または１０８は、地理的位置データ３１４を１つまたは複数のデータリポジトリ内に格納するためのコンピュータ実行可能命令を含み得る。例えば、モジュール１２９または１０８は、マッピングモジュール検索履歴３０６を分析し、履歴３０６内の地理的位置データ３１４を判断して、その判断されたデータをリポジトリ内に格納し得る。データリポジトリ１３２内の判断された地理的位置データ３１４が、閾値量を満たすか、または上回る場合、地理的位置データ３１４の量が、地図タイルデータをキャッシュするために、さらなる命令の実行を正当とし得る。
【００２５】
ユーザーマッピング活動データ３００または判断された地理的位置データ３１４は、タイムスタンプ情報も含み得、モジュールは、地理的位置データ３１４の判断が地図タイルデータのキャッシングを正当とし得る閾値期間を判断するためのコンピュータ実行可能命令を含み得る。例えば、モジュール１２９または１０８が、１週間の期間内に「ボストン」に対する３つの地理的位置データ３１４の指標を判断した場合、モジュール（または複数）は、１つまたは複数の閾値が超えられていると判断して、その位置に対する地図タイルデータをキャッシュするためのさらなる命令を実行し得る。対照的に、モジュール１２９または１０８が、１年の期間内に「ボストン」に対する３つの地理的位置データ３１４の指標を判断した場合、モジュール（または複数）は、１つまたは複数の閾値が超えられていないと判断して、ブロック４０２に戻り得る。言うまでもなく、ブロック４０４および４０６は、次のブロックに進むか、またはユーザーマッピング活動データ３００の取得を継続するかを判断するために、ユーザーマッピング活動データ３００の統計的および他の分析を実行し得る。
【００２６】
ブロック４０４および４０６の分析後、方法４００は、地理的位置データ３１４が、地図タイルデータをキャッシュするため、さらなるコンピュータ実行可能命令の実行を正当とするのに十分に関連性があると判断すると、方法４００は、ブロック４０４および４０６の分析結果１４０をブロック４０８でマッピングシステム１１２に送信し得る。ユーザーマッピング活動システム１１４またはクライアントモバイルコンピューティング装置１０６は、分析結果１４０を、モジュール１１７による処理のために、マッピングシステムサーバー１１６に送信し得る。
【００２７】
ブロック４１０で、モジュール１１７は、関連性のある地理的位置データを含む、受信された分析結果１４０を、マッピングシステムデータと照合するための命令を実行し得る。いくつかの実施形態では、ブロック４１０は、受信された地理的位置データを、マッピングシステム１１２に送信されたか、またはそれによって取得された分析結果１４０に対応する、地図タイルデータ１１８、リストデータ１２０、プレイスページデータ１２２などのうちの１つまたは複数と照合する。いくつかの実施形態では、モジュールは、マッピングシステム１１２の１つまたは複数のデータリポジトリからデータを取得する。
【００２８】
ブロック４１２で、モジュール１１７は、取得されたデータをモバイルコンピューティング装置１０６に送信するための命令を実行し得る。いくつかの実施形態では、ブロック４１２は、タイルデータ、リストデータ１２０、プレイスページデータ１２２などのうちの１つまたは複数をコンピューティング装置１０６に送信する。方法４００は、取得されたデータを、ユーザーマッピング活動データ３００をユーザーマッピング活動システム１１４に送信したコンピューティング装置１０６上で実行するマッピングモジュール１０４にも送信し得る。
【００２９】
ブロック４１４で、タイルデータ、リストデータ１２０、プレイスページデータ１２２などを受信した、コンピューティング装置１０６またはマッピングモジュール１０４は、その受信したデータを格納するための命令を実行し得る。いくつかの実施形態では、ブロック４１４は、受信したデータをキャッシュ１１０内に格納し得る。マッピングモジュール１０４は、次いで、キャッシュされたデータを使用して、キャッシュ１１０からコンピューティング装置上に表示するための地図をレンダリングし得る。
【００３０】
図５は、地図データキャッシュ１１０内に格納して、コンピューティング装置１０６上に表示するために、地図タイルデータ２００をプリフェッチするための方法５００を実施するために使用され得るコンピューティング装置５０１を有するモバイルマッピングシステム５００に対するコンピューティング環境例のハイレベルブロック図である。コンピューティング装置５０１は、モバイル装置（例えば、携帯電話、タブレットコンピュータ、Ｗｉ−Ｆｉ対応装置、または、無線もしくは有線通信が可能な他のパーソナルコンピューティング装置）、シンクライアント、または他の既知のタイプのコンピューティング装置を含み得る。当業者によって理解されるであろうように、本明細書の開示および教示を考慮すると、異なるアーキテクチャを有する、他のタイプのコンピューティング装置が使用できる。モバイルマッピングシステム例５００に類似しているか、または同一のプロセッサシステムが、図１のシステム例、図２および図３のデータ構造、図４の方法などを実施および実行するために使用され得る。モバイルマッピングシステム例５００は、複数の周辺機器、インタフェース、チップ、メモリなどを含むとして後述されるが、それらの要素のうちの１つまたは複数は、地図タイルデータをプリフェッチするために、システム例１００を実施および実行するために使用される他のプロセッサシステム例から省略され得る。また、他の構成要素が追加され得る。
【００３１】
図５に示すように、コンピューティング装置５０１は、相互接続バス５０４に結合されているプロセッサ５０２を含む。プロセッサ５０２は、図５に完全にオンチップとして示されている、レジスタセットまたはレジスタ空間５０６を含むが、それは、代替として、完全にもしくは一部オフチップで配置され得るか、または専用電気的接続を介して、および／もしくは相互接続バス５０４を介して、プロセッサ５０２に直接結合され得る。プロセッサ５０２は、任意の適切なプロセッサ、処理装置またはマイクロプロセッサであり得る。図５には示していないが、コンピューティング装置５０１は、マルチプロセッサ装置であり得、従って、プロセッサ５０２と同一であるかまたは類似し、かつ相互接続バス５０４に通信的に結合されている、１つまたは複数の追加のプロセッサを含み得る。
【００３２】
図５のプロセッサ５０２は、チップセット５０８に結合され、それは、メモリコントローラ５１０および周辺入力／出力（Ｉ／Ｏ）コントローラ５１２を含む。周知のように、チップセットは、通常、チップセット５０８に結合された１つもしくは複数のプロセッサによってアクセス可能であるか、または使用される、入出力およびメモリ管理機能ならびに複数の汎用および／または専用レジスタ、タイマーなどを提供する。メモリコントローラ５１０は、プロセッサ５０２（または、複数のプロセッサがある場合には複数のプロセッサ）がシステムメモリ５１４および大容量記憶装置５１６にアクセスできるようにする機能を実行する。
【００３３】
システムメモリ５１４は、例えば、スタティックランダムアクセスメモリ（ＳＲＡＭ）、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）、フラッシュメモリ、読取り専用メモリ（ＲＯＭ）などの、任意の所望のタイプの揮発性および／または不揮発性メモリを含み得る。大容量記憶装置５１６は、任意の所望のタイプの大容量記憶装置を含み得る。例えば、コンピューティング装置５０１が、ＡＰＩ  ５１９を有するマッピングモジュール５１８およびユーザーマッピング活動モジュール５２０（図４の方法４００によって記述されるような命令を含む）を実施するために使用される場合、大容量記憶装置５１６は、ハードディスクドライブ、光学式ドライブ、テープ記憶装置、ソリッドステートメモリ（例えば、フラッシュメモリ、ＲＡＭメモリなど）、磁気メモリ（例えば、ハードドライブ）、または大容量記憶に適した任意の他のメモリを含み得る。本明細書では、モジュール、ブロック、機能、操作、手順、ルーチン、ステップ、および方法という用語は、指定された機能をコンピューティング装置５０１およびモバイルマッピングシステム５００に提供する、具体的なコンピュータプログラム論理または具体的なコンピュータ実行可能命令を指す。従って、モジュール、ブロック、機能、操作、手順、ルーチン、ステップ、および方法は、ハードウェア、ファームウェア、および／またはソフトウェアで実施され得る。一実施形態では、プログラムモジュールおよびルーチン（例えば、マッピングモジュール５１８、ＡＰＩ  ５１９、ユーザーマッピング活動モジュール５２０など）は、大容量記憶装置５１６に格納されて、システムメモリ５１４にロードされ、そして、プロセッサ５０２によって実行されるか、または有形的コンピュータ可読記憶媒体（例えば、ＲＡＭ、ハードディスク、光／磁気媒体など）に格納されているコンピュータプログラム製品から提供され得る。大容量記憶５１６は、データベース５２１も含み得、それは、ＧＰＳデータ、グラフィックス、地図タイルデータ、ならびにマッピングモジュール５１８、ＡＰＩ  ５１９、ユーザーマッピング活動モジュール５２０などが、マッピングデータサーバー１１６、ユーザーマッピング活動システム１１４、または他のシステムから受信したＧＰＳデータ、グラフィックスなどに、それを通してアクセスし得るデータベースインタフェースモジュールのみならず、マッピングモジュール５１８およびユーザーマッピング活動モジュール５２０による使用のための他のデータを格納する。
【００３４】
周辺入出力コントローラ５１０は、プロセッサ５０２が周辺入力／出力（Ｉ／Ｏ）装置５２２および５２４、ネットワークインタフェース５２６、移動体通信ネットワーク送受信機５２７、ローカルネットワーク送受信機５２８、ならびにＧＰＳ送受信機５２９と（ネットワークインタフェース５２６を介して）周辺入出力バス５２８を介して通信できるようにする機能を実行する。入出力装置５２２および５２４は、例えば、キーボード、ディスプレイ（例えば、液晶ディスプレイ（ＬＣＤ）、ブラウン管（ＣＲＴ）ディスプレイなど）、ナビゲーション装置（例えば、マウス、トラックボール、静電容量式タッチパッド、ジョイスティックなど）などの任意の所望のタイプの入出力装置であり得る。入出力装置５２２および５２４は、図に関連して説明されるように、ＧＰＳデータをＧＰＳ送受信機５２９から受信して、ＧＰＳデータをシステム１００のバックエンド構成要素に送信し、地図およびユーザーインタフェースをレンダリングおよび表示するために、マッピングモジュール５１８およびユーザーマッピング活動モジュール５２０とともに使用され得る。移動電話送受信機５２７は、ローカルネットワーク送受信機５２８と共に常駐し得る。ローカルネットワーク送受信機５２８は、Ｗｉ−Ｆｉネットワーク、Ｂｌｕｅｔｏｏｔｈ（商標登録）、赤外線、または他の無線データ転送プロトコルに対するサポートを含み得る。他の実施形態では、１つの要素が、コンピューティング装置５０１によって採用される様々な無線プロトコルの各々を同時にサポートし得る。例えば、ソフトウェア無線が、ダウンロード可能命令を介して、複数のプロトコルをサポートすることを可能にし得る。作動中、コンピューティング装置５０１は、定期的に、可視の無線ネットワーク送信機（移動体通信およびローカルネットワークの両方）を定期的にポーリングすることを可能にし得る。かかるポーリングは、通常の無線トラフィックがコンピューティング装置５０１上でサポートされている間でさえ、可能であり得る。ネットワークインタフェース５２８は、例えば、イーサネット装置（商標登録）、非同期転送モード（ＡＴＭ）装置、８０２．１１無線インタフェース装置、ＤＳＬモデム、ケーブルモデム、移動電話モデムなどであり得、それは、地図タイルデータをプリフェッチするためのシステム１００が、少なくともシステム１００に関連して説明された要素を有する別のコンピュータシステムと通信することを可能にする。
【００３５】
メモリコントローラ５１２および入出力コントローラ５１０が、図５では、チップセット５０８内の別個の機能ブロックとして示されているが、これらのブロックによって実行される機能は、単一の集積回路内に統合され得るか、または２つ以上の別個の集積回路を使用して実施され得る。モバイルマッピングシステム５００は、リモートコンピューティング装置５３０および５３２上でマッピングモジュール５１８およびユーザーマッピング活動モジュール５２０も実施し得る。リモートコンピューティング装置５３０および５３２は、イーサネットリンク５３４を通して、コンピューティング装置５０１と通信し得る。例えば、コンピューティング装置５０１は、リモートコンピューティング装置５３０、５３２上で実行するマッピングモジュールによって作成されたマッピングデータを受信し得る。いくつかの実施形態では、マッピングモジュール５１８および／またはユーザーマッピング活動モジュール５２０は、クラウドコンピューティングサーバー５３６からインターネット５３８を介してコンピューティング装置５０１によって取得され得る。クラウドコンピューティングサーバー５３６を使用する場合、取得されたマッピングモジュール５１８および／またはユーザーマッピング活動モジュール５２０は、コンピューティング装置５０１とプログラムでリンクされる。マッピングモジュール５１８および／またはユーザーマッピング活動モジュール５２０は、コンピューティング装置５０１またはリモートコンピューティング装置５３０、５３２内に常駐するＪａｖａ（登録商標）仮想マシン（ＪＶＭ）環境内で実行するＪａｖａ（登録商標）アプレットであり得る。マッピングモジュール５１８および／またはユーザーマッピング活動モジュール５２０は、コンピューティング装置５０１、５３０、および５３２上に配置されたウェブブラウザ内で実行するように適合された「プラグイン」でもあり得る。いくつかの実施形態では、マッピングモジュール５１８および／またはユーザーマッピング活動モジュール５２０は、マッピングシステム１１２およびユーザーマッピング活動システム１１４がインターネット５３８を介して行い得るように、バックエンド構成要素５４０と通信し得る。
【００３６】
前述のシステムおよび手順を使用して、地図データ１００をプリフェッチするためのシステムおよびマッピングシステム５００は、コンピューティング装置１０６上で実行するマッピングモジュールでのユーザーマッピング活動に対応する地理的位置を示すコンピューティング装置からのデータを取得して分析できる。ユーザーマッピング活動、位置データ、マッピングモジュール検索履歴、経路指定データ、または他のデータが、地図タイルデータをプリフェッチするために適した位置を判断するために解析され得る。言うまでもなく、本明細書に記載のシステムは、ユーザーに、ユーザーのプライバシを保護するため、本明細書に記載するプリフェッチ方法のいずれかをそこからオプトアウトすることができるユーザーインタフェースを提示し得る。
【００３７】
本明細書全体を通して、複数のインスタンスが、単一のインスタンスとして記載されている構成要素、操作、または構造を実施し得る。１つまたは複数の方法の個々の操作が別々の操作として示され、記述されているが、個々の操作の１つまたは複数は、同時に実行され得、また、操作が示された順序で実行されることは要求されない。構成例において別個の構成要素として提示された構造および機能は、組み合わされた構造または構成要素として実施され得る。同様に、単一の構成要素として提示された構造および機能は、別個の構成要素として実施され得る。これらおよび他の変形、修正、追加、および改良は、本明細書の主題の範囲内に含まれる。
【００３８】
例えば、システム５００は、ＬＡＮ、ＭＡＮ、ＷＡＮ、モバイル、有線もしくは無線ネットワーク、プライベートネットワーク、または仮想プライベートネットワークの任意の組合せを含み得るがそれに限定されない。さらに、図５では、説明を単純化して明確にするために、３つのリモートコンピューティング装置５３０および５３２のみが示されているが、任意の数のクライアントコンピュータがサポートされ、システム５００内で通信できることを理解されたい。
【００３９】
加えて、ある実施形態が、本明細書では、論理、またはいくつかの構成要素、モジュール、もしくは機構を含むとして記述される。モジュールは、ソフトウェアモジュール（例えば、マシン可読媒体上または伝送信号内で具体化されたコードであり、そのコードはプロセッサによって実行される）またはハードウェアモジュールのいずれかを構成し得る。ハードウェアモジュールは、ある操作の実行が可能な有形的ユニットであり、ある方法で構成または配置され得る。実施形態例では、１つもしくは複数のコンピュータシステム（例えば、スタンドアロン、クライアント、またはサーバーコンピューティングシステム）またはコンピュータシステム（例えば、プロセッサまたはプロセッサのグループ）の１つもしくは複数のハードウェアモジュールが、ソフトウェア（例えば、アプリケーションまたはアプリケーション部分）によって、本明細書に記載のようにある操作を実行するために動作するハードウェアモジュールとして構成され得る。
【００４０】
様々な実施形態では、ハードウェアモジュールが、機械的または電子的に実施され得る。例えば、ハードウェアモジュールは、ある操作を実行するために永久的に（例えば、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）または特定用途向け集積回路（ＡＳＩＣ）などの、専用プロセッサとして）構成されている専用回路または論理を含み得る。ハードウェアモジュールは、ある操作を実行するためにソフトウェアによって一時的に構成されているプログラム可能論理または回路（例えば、汎用プロセッサまたは他のプログラム可能プロセッサ内に包含されるような）も含み得る。ハードウェアモジュールを、専用および永久的に構成された回路において、または一時的に構成された（例えば、ソフトウェアによって構成された）回路において、機械的に実装する判断は、費用および時間の検討によって決定され得ることが理解されるであろう。
【００４１】
その結果、「ハードウェアモジュール」という用語は、有体物を包含し、ある方法で動作するために、または本明細書に記載のある操作を実行するために、物理的に構築されているか、永久的に構成されている（例えば、ハードワイヤードされている）か、または一時的に構成されている（例えば、プログラムされている）エンティティであると理解されるべきである。本明細書では、「ハードウェア実施モジュール」は、ハードウェアモジュールを指す。ハードウェアモジュールが一時的に構成されている（例えば、プログラムされている）実施形態を考慮すると、ハードウェアモジュールの各々は、時間内のいずれか１つの事例において、構成またはインスタンス生成される必要はない。例えば、ハードウェアモジュールが、ソフトウェアを使用して構成された汎用プロセッサを含む場合、汎用プロセッサは、異なる時にそれぞれ異なるハードウェアモジュールとして構成され得る。例えば、特定のハードウェアモジュールをある場合に構成し、異なるハードウェアモジュールを異なる場合に構成するために、ソフトウェアが、それに応じてプロセッサを構成し得る。
【００４２】
ハードウェアモジュールは、他のハードウェアモジュールに情報を提供し、また、他のハードウェアモジュールから情報を取得し得る。その結果、記述されたハードウェアモジュールは、通信的に結合されていると見なされ得る。複数のかかるハードウェアモジュールが同時期に存在する場合、通信は、ハードウェアモジュールを接続する信号伝送を通して（例えば、適切な回路およびバスを通じて）、達成され得る。複数のハードウェアモジュールが異なる時に構成またはインスタンス生成される実施形態では、かかるハードウェアモジュール間の通信は、例えば、複数のハードウェアモジュールがアクセスするメモリ構造内の情報の格納および取得を通じて、達成され得る。例えば、１つのハードウェアモジュールが、１つの操作を実行し、その操作の出力を、それが通信的に結合されているメモリ装置内に格納し得る。さらなるハードウェアモジュールが次いで、後に、そのメモリ装置にアクセスして、格納された出力を取得および処理し得る。ハードウェアモジュールは、入力または出力装置との通信も開始し得、リソース（例えば、情報の集合）に関して動作できる。
【００４３】
本明細書に記載される方法例の様々な操作が、関連のある操作を実行するために（例えば、ソフトウェアによって）一時的に構成されているか、または永久的に構成されている、１つもしくは複数のプロセッサによって、少なくとも部分的に、実行され得る。一時的に構成されているか、または永久的に構成されているかに関わらず、かかるプロセッサは、１つまたは複数の操作または機能を実行するように動作するプロセッサ実施モジュールを構成し得る。本明細書で参照されるモジュールは、いくつかの実施形態例において、プロセッサ実施モジュールを含み得る。
【００４４】
同様に、本明細書に記載の方法またはルーチンは、少なくとも部分的にプロセッサ実施であり得る。例えば、方法の操作の少なくとも一部が、１つもしくは複数のプロセッサまたはプロセッサ実施ハードウェアモジュールによって実行され得る。操作を確実にする実行が、単一のマシン内に常駐するだけでなく、いくつかのマシンに渡って配備された、１つまたは複数のプロセッサ間で分散され得る。いくつかの実施形態例では、プロセッサまたは複数のプロセッサが単一の位置（例えば、自宅環境、オフィス環境内またはサーバーファームとして）に配置され得るが、他の実施形態例では、プロセッサは、いくつかの位置にわたって分散され得る。
【００４５】
１つまたは複数のプロセッサは、「クラウドコンピューティング」環境内で、または「サービス型ソフトウェア（ＳａａＳ）」として、関連のある操作の実行をサポートするようにも動作し得る。例えば、操作の少なくとも一部が、（プロセッサを含むマシンの例として）コンピュータのグループによって実行され得、これらの操作は、ネットワーク（例えば、インターネット）を経由し、かつ、１つまたは複数の適切なインタフェース（例えば、アプリケーションプログラムインタフェース（ＡＰＩ））を通じて、アクセス可能である。
【００４６】
操作を確実にする実行が、単一のマシン内に常駐するだけでなく、いくつかのマシンに渡って配備された、１つまたは複数のプロセッサ間で分散され得る。いくつかの実施形態例では、１つもしくは複数のプロセッサまたはプロセッサ実施モジュールが、単一の地理的位置（例えば、自宅環境、オフィス環境、またはサーバーファーム内）に配置され得る。他の実施形態例では、１つもしくは複数のプロセッサまたはプロセッサ実施モジュールが、いくつかの地理的位置にわたって分散され得る。
【００４７】
本明細書のいくつかの部分は、マシンのメモリ（例えば、コンピュータメモリ）内にビットまたは２値デジタル信号として格納されたデータについての操作のアルゴリズムまたは記号表現の観点から提示される。これらのアルゴリズムまたは記号表現は、データ処理の技術分野において、当業者により彼らの作業の内容を他の当業者に伝達するために使用される技術の例である。本明細書では、「アルゴリズム」は、所望の結果をもたらす、首尾一貫した一連の操作または類似の処理である。このコンテキストでは、アルゴリズムおよび操作は、物理量の物理的操作を伴う。通常、かかる量は、必ずしもではないが、格納、アクセス、転送、結合、比較、またはマシンによる別な方法での操作が可能な、電気的、磁気的、または光学的信号の形態を取り得る。「データ」、「内容」、「ビット」、「値」、「要素」、「記号」、「文字」、「用語」、「数」、「数字」、または同様のものなどの単語を使用して、かかる信号を参照することは、主に共通使用の理由のために、時々便利である。しかし、これらの単語は、便利なラベルに過ぎず、適切な物理量と関連付けられる。
【００４８】
特に明記しない限り、「処理」、「コンピューティング」、「計算」、「判断」、「提示」、「表示」、または同様のものなどの単語を使用した本明細書での説明は、１つもしくは複数のメモリ（例えば、揮発性メモリ、不揮発性メモリ、またはそれらの組合せ）、レジスタ、または、情報を受信、格納、伝送、もしくは表示する他のマシン構成要素内で、物理的（例えば、電子的、磁気的、または光学的）量として表されたデータを操作または変換するマシン（例えば、コンピュータ）の動作またはプロセスを指し得る。
【００４９】
本明細書では、「いくつかの実施形態」または「一実施形態」に対する任意の言及は、実施形態に関連して記述される特定の要素、特徴、構造、または特性が少なくとも１つの実施形態に含まれることを意味する。明細書内の様々な場所における「いくつかの実施形態では」という句の出現は、必ずしも、すべてが同じ実施形態を参照するものではない。
【００５０】
いくつかの実施形態が、「結合された」および「接続された」という表現をそれらの派生語とともに使用して記述され得る。例えば、いくつかの実施形態は、２つ以上の要素が、直接物理的または電気的に接触していることを示す「結合された」という用語を使用して記述され得る。しかし、「結合された」という用語は、２つ以上の要素が互いに直接接触していないが、互いに協働するか、またはやり取りすることも意味し得る。実施形態は、このコンテキストに限定されない。
【００５１】
本明細書では、「含む（ｃｏｍｐｒｉｓｅ）」、「含む（ｃｏｍｐｒｉｓｉｎｇ）」、「含む（ｉｎｃｌｕｄｅ）」、「含む（ｉｎｃｌｕｄｉｎｇ）」、「有する（ｈａｓ）」、「有する（ｈａｖｉｎｇ）」、またはそれらの任意の他の変形は、包括的な包含を含めることを意図する。例えば、要素のリストを含む、プロセス、方法、項目、または機器は、必ずしもそれらの要素のみに限定されず、明示的にリストされていないか、またはかかるプロセス、方法、項目、もしくは機器に内在する他の要素を含み得る。さらに、反対に明記されていない限り、「または」は、排他的ＯＲではなく、包括的ＯＲを指す。例えば、条件文ＡまたはＢは、以下のいずれか１つによって満足される：Ａが真（または存在する）かつＢが偽（または存在しない）、Ａが偽（または存在しない）かつＢが真（または存在する）、ならびにＡおよびＢの両方が真（または存在する）。
【００５２】
加えて、「１つの（ａ）」または「１つの（ａｎ）」の使用は、本明細書で実施形態の要素または構成要素を記述するために採用される。これは、便宜のみのため、記述の一般的な意味を与えるために行われる。この記述は、１つまたは少なくとも１つを含むように読まれるべきであり、単数は、それが別なふうに意味することが明らかでない限り、複数も含む。
【００５３】
さらにその上、図は、説明のみを目的として、地図エディタシステムの好ましい実施形態を示す。当業者は、本明細書に示される構造および方法の代替実施形態が、本明細書に記載の本質から逸脱することなく採用され得ることを、以下の説明から容易に認識するであろう。
【００５４】
本開示を読むと、当業者は、本明細書で開示された原理を通して、モバイル装置で実行するマッピングアプリケーションによって生成されたデータの分析に基づき、そのモバイル装置上で表示するために、デジタル地図データをプリフェッチするためのシステムおよびプロセスに対するさらに追加の代替構造および機能設計を理解するであろう。従って、特定の実施形態およびアプリケーションが例示され、説明されているが、開示された実施形態は、本明細書で開示された正確な構造および構成要素に限定されないことを理解されたい。当業者には明らかであるような、様々な修正、変更および変形が、添付の請求項で定義される精神および範囲から逸脱することなく、本明細書で開示される方法および装置の配置、操作および詳細において行われ得る。
【図１】
0006017566.tif 000002
【図２】
0006017566.tif 000003
【図３】
0006017566.tif 000004
【図４】
0006017566.tif 000005
【図５】
0006017566.tif 000006