(58)【調査した分野】(Int.Cl.,DB名)
クライアントコンピューティングデバイス上の後続表示用に遠隔マッピングシステムから前記クライアントコンピューティングデバイス上で実行するマッピングアプリケーションにプレイスページデータをプリフェッチするためのコンピュータに実装される方法であって、
ユーザの好みのデータを判断するためにユーザに好まれた地理的位置データおよびユーザの個人的関心データを解析することであって、前記ユーザに好まれた地理的位置データは、前記クライアントコンピューティングデバイスのユーザによって好まれた特定のマップ位置を示すデータを含み、ユーザの個人的関心データは、前記ユーザの個人的関心を示すデータを含む、当該解析することと、
前記ユーザの好みのデータを解析して、i)特定のズームレベルにおける前記特定のマップ位置のインタラクティブなデジタルマップのレンダリングのためのベクトル形式のマップデータと、ii)特定のマップ位置と前記ユーザの前記個人的関心との両方に対応するマップ特徴を記述するテキスト、グラフィックス、およびデータ供給データの1つ以上を含む、1つ以上の適合されたプレイスページデータと、を決定することと、
前記適合されたプレイスページデータを前記遠隔マッピングシステムから前記クライアントコンピューティングデバイスに送信することと、
前記適合されたプレイスページデータを前記クライアントコンピューティングデバイスのキャッシュメモリ内に記憶することと、
前記遠隔マッピングシステムと前記クライアントコンピューティングデバイスとの間の更なる通信無しで、前記適合されたプレイスページデータを前記クライアントコンピューティングデバイスの前記キャッシュメモリから後で取り出すことと、を含む、方法。
前記クライアントコンピューティングデバイスのソーシャルネットワーキングアプリケーション、電子メールアプリケーション、およびウェブブラウザの1つ以上から前記ユーザの個人的関心データを取り出すことを更に含み、
前記ユーザの個人的関心データは、ユーザプロフィールデータ、ソーシャルネットワーキングデータ、ウェブブラウザ履歴データ、電子メールテキスト、およびスケジュール予約データの1つ以上を含む、請求項1に記載の方法。
遠隔マッピングシステムとクライアントコンピューティングデバイスとの間の接続性の無い状態の間にマッピングアプリケーションを実行する前記クライアントコンピューティングデバイス上の後続表示用に前記マッピングアプリケーションに前記遠隔マッピングシステムからプレイスページデータをプリフェッチするためのコンピュータに実装される方法であって、
ユーザに好まれた地理的位置データおよびユーザの個人的関心データを前記クライアントコンピューティングデバイスからバックエンドユーザの好みのシステムに定期的に送信することであって、前記ユーザに好まれた地理的位置データは、前記クライアントコンピューティングデバイスのユーザによって好まれた特定のマップ位置を示すデータを含み、ユーザの個人的関心データは、前記ユーザの個人的関心を示すデータを含む、当該送信することと、
前記送信されたユーザに好まれた地理的位置データおよびユーザの個人的関心データに応答して、i)特定のズームレベルにおける前記特定のマップ位置のインタラクティブなデジタルマップのレンダリングのためのベクトル形式のマップデータと、ii)特定のマップ位置と前記ユーザの前記個人的関心との両方に対応するマップ特徴を記述するテキスト、グラフィックス、ならびにデータ供給データの1つ以上を含むプレイスページデータを前記遠隔マッピングシステムから受信することと、
前記受信されたプレイスページデータを前記クライアントコンピューティングデバイスのキャッシュメモリ内に記憶することと、
前記遠隔マッピングシステムと前記クライアントコンピューティングデバイスとの間の更なる通信無しで、前記適合されたプレイスページデータを前記クライアントコンピューティングデバイスの前記キャッシュメモリから後で取り出すことと、を含む、方法。
【発明を実施するための形態】
【0013】
マップデータに論理的にリンクされるプレイスページデータをプレイスページデータサーバからクライアントデバイスに効率的に転送するためのシステムおよび方法の実施形態が以下に記述される。ウェブブラウザ、マッピングアプリケーション、または別のアプリケーションにおけるマップ画像をレンダリングするために、クライアントデバイスは、通信ネットワーク経由でマップサーバからマップデータを要求し得、それに応答してマップサーバは、マップグラフィックコンテンツを記述するベクトルデータならびにレンダリングされたベクトルデータの特徴を記述するプレイスページデータを提供し得る。より詳細には、ベクトルデータは、マップ特徴について(例えば、数学的記述を使用して)種々の幾何学的形状を指定し得、これらの形状が、クライアントコンピューティングデバイス上で例えば道路、建物、公園、水域等の種々のマップ特徴をレンダリングするためにどのように位置付けられるべきであるかを示し得る。プレイスページデータは、テキスト、グラフィックス、ウェブページ等を使用して各マップ特徴を記述し得る。マップサーバはまた、クライアントデバイスが、マップ特徴の種々のベクトルをベースとした記述にどの視覚スタイルを適用するべきであるかを指定し得る。
【0014】
モバイルコンピューティングデバイス上でマップ画像をレンダリングするためのグラフィカルデータは、比較的データ(およびそれ故、メモリ)集約的である。プレイスページデータは、このプレイスページデータが、付随のマップタイルデータのメモリ負荷の全てまたはいくつかと独立して利用可能であるように、それがユーザによって要求される前にネットワーク接続経由で別個にプリフェッチされ得るか予めダウンロードされ得る。例えば、デジタルマップデータと論理的に関連付けられたデータは、マップの種々の建物、道路、および他のグラフィック要素についてのラベルデータを含み得る。他のデータは、マップの種々の建物、事業所、関心のある地点、あるいは他のグラフィック要素または「特徴」についての詳細情報を提供するプレイスページデータを含み得る。プレイスページデータは、モバイルコンピューティングデバイスとサーバとの間のネットワーク接続経由でプレイスページデータサーバからマップのグラフィック要素とは別個に要求され得る。このプレイスページデータは、次いで、モバイルコンピューティングデバイスのキャッシュメモリ内に記憶され得る。プレイスページデータは、次いで、モバイルデバイスとサーバとの間の接続性が低い時に、あるいは、グラフィックマップデータがナビゲーションに不必要であり得る状況において、利用可能であり得る。例えば、プレイスページデータは、ユーザが彼のまたは彼女の位置に気付いているものの、種々の事業所あるいは彼のまたは彼女の位置についての他の情報に気付いていない、密集した、都市圏において、グラフィックマップデータを伴わずに有用であり得る。
【0015】
以下に記載されるように、ユーザの好み、明示された関心、ソーシャルネットワーキング情報等は、ユーザにとって関心のあるものであり得るプレイスページデータについての位置を判断するために解析され得る。プレイスページデータは、モバイルデバイスにおけるプレイスページモジュールの要求において、モバイルデバイスにプリフェッチされ得、あるいは、バックエンドサーバによってモバイルデバイスにプッシュ(push)され得る。
【0016】
ユーザの関心の解析は、ユーザの現在の位置もしくは好まれた地理的位置における関心の1つ以上の事業所または他の場所を判断し得る。この解析は、バックエンドまたはモバイルデバイスで実行され得、ユーザのオンラインで明示された個人的関心(例えば、ソーシャルネットワーキングプロフィール、職業上のプロフィール、個人的またはビジネスリスト情報等)、地理的関心に関連するデータ、あるいはデータの組み合わせの全てあるいは一部を考慮し得る。更なる実施形態では、システムは、ユーザが彼のまたは彼女の時間のほとんどを費やすところに関連するデータ、ユーザが検索モジュール経由で実行した検索、ユーザが計画した旅行、ユーザによって送信されたか受信された電子メールにおける情報、および同様のものを使用し得る。
【0017】
図1Aは、キャッシュメモリ内への記憶のために、プレイスページデータを含むマッピングシステムデータをプリフェッチするためのシステム100を例示する高レベルブロック図である。一般に、クライアントコンピューティングデバイス102は、プロセッサ108によって実行されるマッピングモジュール106を記憶するメモリ104を含み得る。マッピングモジュール106は、ユーザの地理的好み、個人的関心、および他のデータの解析に基づいて、バックエンドサーバからプレイスページデータをプリフェッチするための命令を含み得る。クライアントコンピューティングデバイス102は、GPSトランシーバを含み、本明細書に記載された種々のモジュール、命令等を実行することが可能なパーソナルコンピュータ、スマートフォン、タブレット型コンピュータ、または他のコンピューティングデバイスを含み得る。マッピングモジュール106は、インターネット115または他の種類のネットワーク(例えば、LAN、MAN、WAN、モバイル、有線もしくは無線ネットワーク、私設ネットワーク、または仮想私設ネットワーク等)のようなネットワーク接続経由で、マッピングシステム112およびユーザの好みのシステム114を含むバックエンド構成要素110と通信し得る。システム100は、バックエンド構成要素としてユーザの好みのシステム114を含むように
図1Aに例示されるが、本明細書に記載されたユーザの好みのシステム114の構成要素および機能はまた、クライアントコンピューティングデバイス102上に組み込まれてもよい。例えば、ユーザの好みのシステム114は、マッピングモジュール106のコンピュータで実行可能な命令としてまたは別個のユーザの好みのモジュール140として実装され得る。
【0018】
1つ以上のサーバの形態であり得るマッピングシステムサーバ116は、マップタイルデータ117をマップタイルデータリポジトリ118から、また、マップタイルデータ117の地理的特徴に対応するプレイスページデータ119をプレイスページデータリポジトリ120から送受信し得る。いくつかの実施形態では、マッピングシステム112とシステムサーバ116は、マッピングモジュール106が、クライアントデバイス102の表示構成要素122においてデジタルマップをレンダリングすることを可能にするためにコンピュータで実行可能な命令およびデータを送信し得る。マッピングモジュール106を使用する間に、ユーザは、1つ以上の好まれた地理的位置106Aを示し得る。例えば、(以下に記載されるように)マップ検索結果がデバイス102に戻された後、ユーザは、マッピングモジュール106に、「お気に入り」として戻された検索結果内に特定の位置(例えば、住所、マップ特徴、GPS地点等)のフラグを立てるための命令、あるいはそうではない場合、特定のマップ位置がユーザによって好まれることを示すための命令を実行させ得る。地理的位置であって、それについてユーザが好み(例えば、マッピングモジュール検索結果のお気に入り、ホームタウン、お気に入りの都市、計画された旅行等)を示した当該地理的位置は、デバイス102で収集され得、ユーザの好みのモジュール140の命令は、追加的な好まれた地理的位置106Aを判断するために実行され得、その位置106Aで、ユーザは、マッピングサーバ116からプレイスページデータを要求する可能性がある。
【0019】
いくつかの実施形態では、ユーザの個人的関心データ125は、クライアントデバイス102で判断され得るか、あるいは種々のソースから取り出され得る。ユーザの個人的好みのデータは、ユーザの個人的関心(例えば、食べ物、趣味、スポーツチーム等)を示し得る。例えば、ユーザの好みのモジュール126は、種々のローカルおよび遠隔ソースからユーザの個人的関心データ125(例えば、クライアントコンピューティングデバイス102に保存された個人的プロフィール、ソーシャルネットワーキングや他のサイトからのオンラインの個人的プロフィールおよび関心データ、デバイス102上で実行する他のアプリケーションからのプロフィールデータ等)を判断するか収集するための命令を実行し得る。ユーザの個人的関心データ125はまた、クライアントデバイス102上で実行するまたはデバイス102(例えば、マッピングアプリケーション、ウェブブラウザ、ユーザ活動追跡モジュール、旅行計画モジュール、電子メールモジュール、ソーシャルネットワーキングシステム等)と通信して種々のアプリケーションおよびモジュールから、収集され得、ユーザの好みのデータリポジトリ126内に記憶され得る。データ125は、デバイス102上に記憶されたユーザプロフィール、デバイス102上で実行するアプリケーションからのユーザの好み(例えば、マッピングモジュール106の実行の間に保存されたようなお気に入りの位置、ユーザプロフィール、関心、および他のデータを含むソーシャルネットワーキングアプリケーション等)、ウェブ閲覧履歴、電子メールテキスト、旅行についてのスケジュール予約等を含み得る。データ125は、ユーザの地理的および個人的関心を判断するためにクライアントデバイス102で解析され得る。
【0020】
ユーザに好まれた地理的位置データ106Aとユーザの個人的関心データ125の組み合わせは、事業所または他のマップ特徴を示し、それについて、ユーザが将来、プレイスページデータ119を要求し得る、当該事業所または他のマップ特徴を示す。プレイスページデータ119は、次いで、それらの地理的および個人的関心についてプリフェッチされ得、マッピングシステム112に対する接続性の低い期間または任意の他の時間におけるユーザへの可能な表示用にクライアントデバイスメモリ104のキャッシュメモリ124内に記憶され得る。
【0021】
バックエンド110でユーザの地理的および個人的好みのデータを判断する別の実施形態では、ユーザの地理的/個人的好みのデータ130Aは、ユーザと関連付けられたオンラインリソース130から収集され得、地理的および個人的関心位置であって、その位置でユーザが、マッピングサーバ116からプレイスページデータを要求する可能性がある、当該地理的および個人的関心位置、あるいは、事業所もしくは他のマップ特徴であって、それらについてユーザが将来、プレイスページデータを要求し得る、当該事業所もしくは他のマップ特徴を示し得るユーザの好みや関心を判断するために解析され得る。ユーザの地理的/個人的好みのデータ130Aは、共通のユーザアカウントによってリンクされた種々のオンラインリソース130から収集され得る。例えば、バックエンドサーバ128は、実行すると、ユーザによって行われたウェブ検索に関連した情報、ソーシャルネットワーキングプロフィール情報、ユーザの関心に関連したニュース供給に対するユーザの予約購読、マッピングモジュール106に関連した検索等を収集する命令を有するモジュール129を含み得る。データ130Aは、ユーザの地理的好み106Aおよび個人的関心125を判断するためにクライアントデバイス102で解析され得る。プレイスページデータ119は、次いで、ユーザの好みの地理的位置におけるそれらの関心についてプレイスページデータリポジトリ120からプリフェッチされ得、マッピングシステム112に対する接続性の低い期間または任意の他の時間におけるユーザへの可能な表示についてクライアントデバイスメモリ104のキャッシュメモリ124内に記憶され得る。他の実施形態は、フロントエンド102とバックエンド110の構成要素の組み合わせを使用してユーザの地理的位置の好みおよび個人的関心データを判断し得る。
【0022】
クライアントコンピューティングデバイス102からの要求に応答して、マッピングシステム112は、クライアントコンピューティングデバイス102上に表示されるマップ画像についてのグラフィックス、テキスト、および他のデータを処理し送信し得る。クライアントデバイス102の要求はまた、マッピングシステム112に、グラフィックマップタイルデータ117を用いて表示され得るか、表示されたマップタイルデータ117にリンクされ得るプレイスページデータ119を送信させ得る。プレイスページデータ119は、プレイスページデータ119によって記述される特徴を含むマップタイルデータ117も表示してまたは表示しないで、デバイス102のディスプレイ122に表示され得る。グラフィック構成要素(すなわち、マップタイルデータ117)およびテキストまたは他のデータ(すなわち、プレイスページデータ)は、処理され得、共にあるいは別個にデバイス102に送信され得る。クライアントコンピューティングデバイス102が、マッピングシステム112からデータ117、119を要求する時、システム112は、ベクトルグラフィックス形式に従うプレイスページデータ119を用いてまたは用いないで各マップタイル117を生成し得る。クライアントデバイス102(例えば、移動電話、タブレット型コンピュータ等)は、デバイス102における表示用に各マップタイルに対応するベクトルデータを局所的にラスタライズし得る。
【0023】
ある実施形態では、システム100は、種々のサーバから要求されたデータを取り出す。例えば、マッピングシステムサーバ116は、プロセッサ116aと、例えば、直接的に(例えば、コンパイルされたコードとして)または間接的に(例えば、プロセッサ116a上で実行する別のアプリケーションによって解釈されるスクリプトとして)プロセッサ116a上で実行可能であり得るコンピュータ命令の形式で、マップコントローラ116cを記憶するコンピュータで読み取り可能なメモリ116bと、を含み得る。コンピュータで読み取り可能なメモリ116bは、コンピュータ命令と、データであって、そのデータについてコンピュータ命令が実行時に動作する、当該データと、を記憶する揮発性メモリ(例えば、ランダムアクセスメモリまたはRAM)、また、ある実施形態では、例えば、ハードディスクなどの永続的なメモリを含み得る。ある実施形態では、マップコントローラ116cは、マップコンテンツとしてクライアントデバイス102に提供される種々のマップ要素についてのベクトルデータを生成する動的特徴コントローラ154(
図1B)を含む。本明細書に使用される際、マップ特徴(または単に、特徴)は、建物などの個別のマップ要素、あるいは、いくつかの建物、公園、および大学の構内のいくつかの歩道などのいくつかのマップ要素の集合に対応し得る。一般に、マップ特徴は、ベクトルデータを使用して記述され得る。プレイスページデータ119は、マップ特徴(すなわち、事業所、歴史的建造物等)についてのテキストの情報、画像、データ供給、ウェブコンテンツ等を含むマップタイル特徴の事業および/または管理面を記述するデータを含み得る。
【0024】
いくつかの実施形態では、マッピングモジュール106は、マップ特徴のグラフィカル特性ならびにこれらの特徴を記述するプレイスページデータ119の両方を指定するベクトルデータを受信する。ベクトルデータは、複数地点と、その複数地点を接続する経路の数学的記述を使用して幾何学的形状としてマップ特徴を指定する。例えば、ラインセグメントのラスタ画像を構成する各画素を指定するのではなくて、ベクトルデータは、ラインセグメントの2つの終点を指定し、2つの終点が直線によって接続されることを示し得る。マッピングモジュール106は、次いで、必要に応じて、ラインセグメントが特定のタイトル、記述等を用いて表示されるように、プレイスページデータ119を指定されたラインセグメントに適用し得る。別の例として、ベクトルデータは、建物の輪郭を指定し得、対応するプレイスページデータ119は、その建物の名前、記述、ウェブページ、連絡先情報、住所等を指定し得る。換言すれば、マップサーバ116からラスタ画像を受信するのではなくて、マッピングモジュール106は、クライアントコンピューティングデバイス102の出力デバイス122上にマップ画像を描くための命令を受信し得、ラスタマップ画像を生成するための命令を実行し得る。しかしながら、いくつかの場合では、ベクトルデータはまた、ベクトル形式で容易に表現され得ない一定の構成要素としてラスタ画像を含み得る。
【0025】
他の実施形態では、マッピングモジュール106は、本明細書に記載されるように、要求された、好みの、または予測された地理的位置に対応するプレイスページデータ119だけを受信する。マップタイルデータ117を受信するために上記したベクトル形式ではなくて、システム100は、普通のテキスト(例えば、SMS、ANSI、ASCII)で、または、画像およびテキスト表示ならびにデバイス102上のフォーマッティングの両方についてのプロプライエタリ形式で、プレイスページデータを送信することによってデバイス102からの要求に応答し得る。例えば、クライアントデバイス102上のユーザ活動モジュール140、遠隔のユーザの好みのシステム114、またはモジュールとシステムの組み合わせは、(地理的好み106Aおよび個人的関心125を含む)ユーザの地理的/個人的好みのデータ130Aを処理するための命令を含み得る。このデータ130Aを処理することは、地理的および個人的関心位置であって、その位置でユーザがマッピングサーバ116からプレイスページデータ119を要求する可能性がある、当該地理的および個人的関心位置、あるいは、事業所または他のマップ特徴についてユーザがプレイスページデータ119を要求し得る当該事業所または他のマップ特徴を示し得るユーザの好みおよび関心を判断し得る。
【0026】
簡単さのために、クライアントデバイス102は、本明細書に記載されるように、デバイスメモリ104内に記憶された種々のモジュールを実行するために単一プロセッサ108を用いて例示される。他の実施形態におけるクライアントデバイス102は、例えば、出力デバイス122上の画像レンダリングを容易にするように構成されたグラフィックス処理装置(GPU)などの追加的な処理装置(図示しない)を含んでもよい。更に、マッピングモジュール106は、マップ画像のみならずプレイスページデータ119、またはプレイスページデータ119単体を効率的に生成するためのグラフィックス機能のライブラリを利用し得る。例えば、メモリ104は、マッピングモジュール106を含むクライアント102上で実行する種々のアプリケーションがアプリケーションプログラミングインターフェース(API)経由でアクセスし得る、グラフィックスをレンダリングするための機能を有するOpenGL(登録商標)またはDirect3D(登録商標)ライブラリなどのプラグインを記憶し得る。別の実施形態では、メモリ104は、例えば、WebGL(登録商標)などのブラウザアプリケーションに特に適したプラグインを記憶する。また、いくつかの実施形態では、メモリ104は、出力デバイス122経由で画像およびプレイスページデータ119の効率的なレンダリングを容易にする追加的なソフトウェア構成要素を記憶する。例えば、メモリ104は、Adobe(登録商標)Flash(登録商標)プラグインまたはO3Dプラグインを記憶し得る。
【0027】
ここで、
図1Bを参照すると、マップコントローラ150は、種々の機能を含み得、クライアントコンピューティングデバイス102のメモリ内でまたは例えば
図1Aのサーバ116内でモジュールとして動作し得、あるいは、種々の機能は、上記のように、クライアントコンピューティングデバイス102とサーバ116の間で分配され得る。ある実施形態によれば、マップデータコントローラ150は、コンピュータで読み取り可能な媒体上に記憶され、1つ以上のプロセッサ上で実行される1組の命令として実装される。例えば、
図1Aを再び参照すると、マップデータコントローラ150およびそれの種々の機能は、メモリ116b、104およびプロセッサ116a、108の間で分配され得る。
【0028】
ある実施形態によれば、マップコントローラ150は、動的特徴コントローラ154、マップタイル生成器156、プレイスページデータ生成器157、およびマップ要求プロセッサ158を含む。マップ要求プロセッサ158は、指定されたもしくはユーザに好まれた地理的範囲に対応するマップデータ117および/またはプレイスページデータ119について、クライアントデバイス102などのクライアントデバイスからの要求を処理するように構成され得る。各要求は、シナリオおよび/または実施形態に応じて、単一の電子メッセージもしくは一連の電子メッセージに対応し得る。例えば、マップ要求プロセッサ158は、緯度41°52’43’’および経度−87°38’11’’に中心を置かれた2マイル幅の範囲に対応するマップデータについての要求を受信し得る。マップ要求プロセッサ158はまた、その範囲内の個人的関心125、103Aに対応するプレイスページデータ119についての要求を受信し得る。要求はまた、ズームレベルを示し得、そのズームレベルについてマップデータは要求され、それは、マッピングシステム112によって戻されることになるマップタイルデータ117およびプレイスページデータ119の量を判断する。シナリオ(すなわち、マップタイルとプレイスページデータを共にまたは別個に要求すること)に応じて、マップ要求プロセッサ158は、単一の電子メッセージ、例えば、単一のHTTPメッセージにおいて、あるいは、それぞれの電子メッセージにおいて別個に、マップデータについての要求およびプレイスページデータ119についての要求を受信し得る。
【0029】
マップ要求プロセッサ158が、クライアントデバイスからマップデータ117および/またはプレイスページデータ119についての要求を受信した後、マップコントローラ150は、適切なデータを1つ以上の電子メッセージ経由でクライアントデバイスに提供する。いくつかの実施形態では、マップ要求プロセッサ158は、どの種類のデータが要求されるかを判断し、適切なデータリポジトリ118、120から要求されたデータを取り出すためにマップタイル生成器156またはプレイスページデータ生成器157の1つ以上に関数呼び出しを実行するための命令を含み得る。マップタイル生成器156は、各マップタイル記述子がマップタイル、すなわち、一定のサイズ(例えば、256×256ピクセル)のマップ画像の一部を記述するように、1組のマップタイル記述子としてマップデータを生成するための命令を含み得る。個別のマップタイルによって表現された地理的範囲のサイズは、マップタイルが関連されているズームレベルに依存し、それで、低いズームレベルにおける単一のマップタイルがより高いズームレベルにおける単一のマップタイルよりも大きな地理的領域を示す。。マップタイル生成器156は、ベクトルグラフィックス形式に従って各マップタイル記述子を生成し得、
図1Aのクライアントデバイス102などのクライアントデバイスは、各タイルについてラスタ画像を局所的に生成し得る。マップタイル生成器156は、マップタイルデータベース118などのマップデータベースから要求されたデータを取り出し得る。プレイスページデータ生成器157は、マップデータについての要求に対する応答と関連して、あるいは、プレイスページデータ119単体についての要求に応答して、プレイスページデータ119を生成し得る。いくつかの実施形態では、プレイスページデータ生成器157は、要求された地理的範囲または好まれた地理的範囲106Aに対応するデータリポジトリ120の複数エントリからプレイスページデータ119を生成するための命令を含む。プレイスページデータ生成器157はまた、要求された/好まれた地理的範囲106Aおよびユーザの個人的関心データ125の一方または両方に対応するデータリポジトリ120の複数エントリからプレイスページデータ119を生成するための命令を含み得る。例えば、ユーザが「Boston」についてのマップタイルデータを要求し、ユーザプロフィールまたは他のデータが、ユーザの趣味が「自家醸造」であることを示す場合、マップ要求プロセッサ158は、Bostonの領域における自家醸造店もしくはクラフトビールに関連した事業所に対応するマップタイルデータ117および/またはプレイスページデータ119を戻すためにマップタイル生成器156あるいはプレイスページデータ生成器157の1つ以上を使用し得る。同様に、マップ要求プロセッサ158は、プレイスページデータ119が、ユーザの地理的好みの領域106A内にもある事業所および他のマップ特徴と関連付けられる、ユーザの個人的関心125に対応するそのプレイスページデータ119を取り出し得る。例えば、ユーザの好みの位置106Aが「Chicago」を含み、ユーザの個人的関心が「自家醸造」を含むときには、自家醸造店およびクラフトビールに関連した事業所についてのプレイスページデータ119が、マップコントローラ150から要求され得、デバイス102のキャッシュメモリ124内に記憶され得、ユーザは、データ119についての特定の要求を開始する。
【0030】
グラフィックマップデータをクライアントデバイスに提供する時、マップコントローラ150は、マップタイルデータ117をプレイスページデータ119から分離し得る。いくつかの場合において、マップコントローラ150は、(例えば、クライアントデバイスが既に必要なプレイスページデータを有する場合)対応するプレイスページデータ119をクライアントデバイスに同時に提供すること無く、マップコンテンツを記述するベクトルデータを提供し得、あるいは、逆に、(例えば、より詳細なズームレベルで地理的範囲をレンダリングするために、また、異なるズームレベルで地理的範囲についての前の要求を用いて送信されたプレイスページデータ119を使用するために)プレイスページデータ119に適用するグラフィカルマップコンテンツについてのベクトルデータを提供すること無く、プレイスページデータ119を提供し得る。更に、いくつかのシナリオでは、マップコントローラ150は、(例えば、同じ電子メッセージまたは一連の電子メッセージにおいて)ベクトルデータおよびプレイスページデータ119を同時に提供する。例えば、マップ要求プロセッサ158が、マップデータについての要求を受信し、マップタイルデータ117についてのマップデータリポジトリ118を照会する時、ラベルおよびプレイスページコントローラ152は、要求されたマップタイルデータ117の地理的領域に対応するプレイスページデータ119についてのプレイスページデータリポジトリ120を照会する。マップタイルデータ117と同様に、要求されたマップデータ117に対応するプレイスページデータの量は、マップタイルがズームレベルと関連付けられた当該ズームレベルに依存し得る。例えば、低いズームレベルにおける単一のマップタイルは、大きな地理的領域を示し、それ故、高いズームレベルにおける単一のマップタイルよりも多くのラベルおよびプレイスページデータ119に対応する。いくつかの実施形態では、プレイスページデータ生成器157は、要求されたマップデータ117のズームレベルで可視であるデータ119だけについてプレイスページデータリポジトリ120を照会し得る。他の実施形態では、プレイスページデータ生成器157は、要求されたマップデータ117のズームレベルで可視になる他のズームレベルに対応するより多くのデータ119についてリポジトリ120を照会し得る。その上、プレイスページデータ生成器157は、データ119がユーザによって明示的に要求される前に、明示されたまたは予測されたユーザの関心に対応するデータ119についてリポジトリ120を照会し得る。プレイスページデータ生成器157は、次いで、要求されたマップタイルデータ117を含有するベクトルにおいて取り出されたプレイスページデータ119を挿入し得るか、あるいは、マップタイルデータ117とは別個にデータ119を送信し得る。クライアントデバイス102は、データ117を含む各タイルについてベクトルデータを局所的にラスタライズし得、作り出されたマップ画像においてデータ119にリンクを提供し得、あるいは、取り出されたプレイスページデータ119をデバイス102のキャッシュメモリ124内に記憶し得る。
【0031】
動的特徴コントローラ154は、マップタイル生成器156およびプレイスページデータ生成器157に通信可能に結合され得、どのマップ要素が要求されたマップデータと関連付けられるかを判断し、これらのマップ要素のベクトルをベースとしたまたは他の記述を生成するように構成され得る。例えば、動的特徴コントローラ154は、一定の地理的範囲についてのズームレベルZiに対応するマップデータについての要求に応答して、州間道路、大きな水域等に対応するベクトル記述子が生成される必要があることを判断し得るのに対して、同じ地理的範囲についてのズームレベルZjに対応するマップデータについての別の要求に応答して、地方の道路および建物に対応する追加的なベクトルデータが生成される必要があることを判断し得る。更に、いくつかの場合において、動的特徴コントローラ154は、異なるマップ種類についての異なる組のベクトルデータを生成する。例えば、地形マップは、同じ地理的範囲およびズームレベルについて基本マップに含まれないマップ要素を含み得る。
【0032】
いくつかの実施形態では、ユーザの好みのシステム114(
図1A)は、デバイス102からプッシュされる好まれた地理的範囲106Aおよびユーザの個人的関心データ125(地理的/個人的好みのデータ130A)を受信するためのあるいはデバイス102から好まれた地理的範囲106Aおよびユーザの個人的関心データ125をプル(pull)するための命令を有するモジュール129を含むユーザの好みのシステムサーバ128を含み得る。例えば、ユーザの好みのデータリポジトリ126は、クライアントデバイス102上で実行するまたはデバイス102(例えば、ウェブブラウザ、ユーザの好みの追跡モジュール、旅行計画モジュール、電子メールモジュール、ソーシャルネットワーキングモジュール等)と通信して種々の他のモジュールおよびアプリケーションから、データを受信し、記憶し得る。クライアントデバイス102は、次いで、データ125を解析のためにユーザの好みのシステム114に転送し得る。同様に、マッピングモジュール106は、地理的好みのデータ106Aを収集し得、次いで、そのデータを解析のためにユーザの好みのシステム114に転送し得る。いくつかの実施形態では、クライアントデバイス102は、ウェブブラウザ履歴、地理的位置または個人的関心を含む電子メールテキスト、旅行ドキュメント、地理的または個人的好みのデータを含むオンラインプロフィール、あるいはユーザの好みのシステム114にクライアントデバイス102上で実行するアプリケーションによって生成されたか受信された他のデータを定期的に転送し得る。好まれた地理的範囲106Aおよびユーザの個人的関心データ125がユーザの好みのシステム114によって受信される場合、モジュール129は、ユーザが将来、マッピングシステムにデータを要求する可能性があるであろう事業所または他のマップ特徴の地理的位置と種類の両方を判断するためにデータ130Aを解析し得る。ユーザの好みのシステムモジュール129はまた、ユーザの地理的/個人的関心データ130Aの位置に対応するプレイスページデータ119についての要求を生成するための命令を含み得る。モジュール129における更なる命令は、次いで、生成された要求をマッピングシステム112のマップ要求プロセッサ158に転送し得る。マップ要求プロセッサ158は、次いで、ユーザの地理的/個人的好みのデータ130Aから判断された地理的位置に対応するプレイスページデータ119を取り出すためにプレイスページデータ生成器157にその要求を転送し得る。取り出されたデータ119は、それらの好みに適合するデータ119だけを戻すためにユーザの地理的/個人的好みによってフィルターをかけられ得る。例えば、システム100が、ユーザが、Bostonについてのデータを要求する可能性があることになること、また、好みのデータが、「美術館」に対するユーザの関心を含むことを判断する場合、生成器157は、Bostonにおける美術館に対応するプレイスページデータ119だけを戻すためにユーザの地理的/個人的関心データ130Aを使用し得る。ユーザの地理的/個人的関心データ130Aが、ユーザについての可能性のある将来の地理的位置および個人的関心を判断するためにモジュール129によってバックエンドで解析されるとき、ラベルおよびプレイスページ生成器157は、プレイスページデータリポジトリ120からクライアントデバイス102のキャッシュメモリ124にプレイスページデータ119をプッシュするための命令を実行し得る。データ106A、125がフロントエンドで解析されるとき、クライアントデバイス上のモジュール(例えば、マッピングモジュール等)は、ラベルおよびプレイスページ生成器157の機能を実装し得、また、プレイスページデータ119をプレイスページデータリポジトリ120からクライアントデバイス102のキャッシュメモリ124にプルし得る。
【0033】
いくつかの実施形態では、ユーザの好みのシステムサーバ128は、1つ以上のデータリポジトリ130内にユーザの地理的/個人的好みのデータ130Aを記憶し得る。例えば、ユーザの地理的/個人的関心データ130Aは、ユーザのプロフィール情報、ソーシャルネットワーキング情報、ブラウザ検索履歴データ、電子メールおよび他のメッセージデータ、旅行計画データ、マッピングシステムのお気に入り、または明示されたもしくは可能性のあるユーザの地理的および個人的関心を示す他のデータを含み得る。モジュール129は、本明細書に記載されるように、データリポジトリ130内に記憶されたデータを解析するためのコンピュータで実行可能な命令を含み得る。モジュール129によるユーザの地理的/個人的関心データ130Aの解析は、ユーザの好みのシステムサーバ128がマッピングシステム112とラベルおよびプレイスページ生成器157とに送信し得るデータ要求の対象または種類を判断し得る。
【0034】
図2は、マップタイルデータに対応するプレイスページデータについての高レベルブロック図の一実施形態を例示する。マップタイル200は、複数の属性200a、例えば、上記のように、位置データ202、およびいくつかの特徴204を含み得る。クライアントコンピューティングデバイス上でマップのラスタ画像を構成するデータ構成要素は、種々のデータソースの間で論理的にリンクされ得る。例えば、マップタイルデータリポジトリ118内に記憶されたマップタイルデータ117は、プレイスページデータリポジトリ120のプレイスページデータ119に論理的にリンクされ得る。位置データ202は、地理的領域を表現するマップタイル200の特定の地理的位置を記述する特定の座標202aを含み得る。いくつかの実施形態では、位置データ202は、マップタイル200についての北、南、東、および西の境界のような複数の境界202aを含む。位置データ202は、地理的位置もしくは物理的対象が位置している場所を判断することができる全地球測位システム(GPS)または他のシステムによって判断されるような緯度および経度座標を含み得る。マップタイル200の各特徴204は、グラフィック構成要素204aとプレイスページデータ204bへの論理リンクとを含み得る。各特徴204についてのグラフィック構成要素204aは、マッピングモジュール106によってレンダリングされる際にマップタイル内に特徴204を示すためにマップタイルデータリポジトリ118から取り出されたベクトルデータ204a1を含み得る。各特徴204についてのラベルデータ204bは、プレイスページデータリポジトリ120もしくは他のソースから取り出される際に、特徴204に対応する名前、タイトル、または他の呼称204b1などのテキストデータを含み得る。各特徴204についてのプレイスページデータ204cは、プレイスページデータリポジトリ120、データ供給、またはデータの他のソースから取り出されるような特徴(すなわち、事業所、歴史的建造物等の場所)に対応するテキスト、画像、ウェブおよびデータ供給、ならびに他の情報を含み得る。各特徴204はまた、位置データ202を含み得る。特徴204についての位置データは、GPS座標、マップタイル200の境界202a内の位置等を含み得る。
【0035】
プレイスページデータ204b、204cは、マップタイル200内の特徴204の特性を記述する種々のグループの情報を含み得る。いくつかの実施形態では、情報204b、204cは、マップタイル200内にグラフィカルに表現される事業所、関心のある地点、ショッピングセンター、公園等についてのリスト情報を含む。情報204b、204cはまた、対象の履歴、物理的仕様等を記述する仕様および他の情報を含み得る。例えば、情報204b、204cは、マップタイル200内に、事業所、関心のある地点等についてのアイコン、位置、およびデータ204b、204cを含むいくつかの特徴を含み得る。プレイスページデータ204b、204cは、マップタイル200内に、アイコンまたは他のグラフィック項目などの特徴204によって表現された特定のリストを記述する種々のウェブリソースからの情報を含むウェブページをレンダリングするためのテキスト、写真、および他のデータを含み得る。
【0036】
図3は、プレイスページデータ119が、キャッシュメモリ124内への記憶のために、プレイスページデータリポジトリ120からプルされるかプッシュされること、およびクライアントデバイス102上に後で表示されることを判断するために、システム100によって使用され得るユーザの地理的/個人的好みのデータ130Aを表現するものである。いくつかの実施形態では、種々のソース302からのユーザに好まれた地理的位置データ106Aおよびユーザの個人的関心データ125は、地理的/個人的好みのデータ130Aを形成するために解析され組み合わされ得る。地理的/個人的好みのデータ130Aは、ユーザの好みの地理的位置106Aと個人的関心125との両方の特性を有するマップ特徴(例えば、事業所、公園、歴史的建造物等の場所)を示し得る。例えば、ユーザが、「Boston」についての地理的好み(すなわち、現在の位置、計画された位置、ホームタウン、お気に入りの位置、マッピングアプリケーション検索結果等)および「自家醸造」についての個人的関心を示す場合、地理的/個人的好みのデータ130Aは、プレイスページデータリポジトリ120への要求が、Bostonの近くの全ての自家醸造またはクラフトビールに関連した特徴についてプレイスページデータ119を戻すことになるように、それらの好みの組み合わせを含み得る。
【0037】
地理的/個人的好みのデータ130Aは、ユーザの好みのモジュール140、マッピングモジュール106、または他のモジュールによって種々のデータソース302から収集され得る。データ103Aは、次いで、解析のために、クライアントコンピューティングデバイス102上のユーザの好みのデータリポジトリ126に、またはユーザの好みのシステム114のバックエンドデータリポジトリ130に送信され得る。モジュール140は、データ130Aをバックエンドユーザの好みのシステム114にプッシュし得、あるいは、ユーザの好みのシステム114は、ユーザ活動システムモジュール129による解析のためにデータ130Aを1つ以上のバックエンドリポジトリ130にプルし得る。モジュール140およびリポジトリ126は、クライアントデバイス102上で実行するかクライアントデバイス102と通信する地理的/個人的好みのデータ製作アプリケーション、ウェブサイト、データ供給、または他のソース302を含む1つ以上のソース302と通信し得る。他の実施形態では、ソース302は、データ130Aをモジュール140またはリポジトリ126に送信すること無く、データ130A(例えば、ユーザに好まれた地理的位置データ106Aとユーザの個人的関心データ125との組み合わせ)をユーザ活動システム114などのバックエンド構成要素に直接、定期的に送信し得る。例えば、ユーザの好みのシステムサーバ128上で実行するバックエンドユーザの好みのシステムモジュール129は、クライアントデバイス102に、マッピングアプリケーション106からユーザに好まれた地理的位置データ106Aを、また、リポジトリ126からまたはソース302から直接的にユーザの個人的関心データ125をプルさせるか取り出させ、そのデータをシステム114に転送させる、コンピュータで実行可能な命令を含み得る。他の実施形態では、ソース302は、データ130Aをクライアントサイドのリポジトリ126またはマッピングシステム106にまず送信すること無くあるいはクライアントサイドのユーザの好みのモジュール140の命令を実行すること無く、モジュール129による解析のためにデータ130Aをユーザの好みのシステム114に定期的に送信する。
【0038】
データ130Aは、クライアントデバイス102上でまたはクライアントデバイス102と通信して実行するユーザの地理的/個人的データソース302によって製作された任意の種類のプロフィール、ユーザ履歴、ログ、あるいは他のデータを含み得る。いくつかの実施形態では、データ130Aは、ウェブブラウザアプリケーションからのウェブ検索履歴データ304、旅行計画アプリケーションからの旅行計画データ306、電子メールアプリケーションからの位置に関連した電子メールデータ308、地理的位置(例えば、ホームタウンの位置、お気に入りの場所のデータエントリ等)を示すソーシャルネットワーキングデータ310、地理的好み311または他のデータ312等を含む。もちろん、バックエンドユーザの好みのシステムモジュール129およびフロントエンドユーザの好みのモジュール140の1つ以上は、好まれた地理的位置またはユーザの個人的好みを示すデータであって、クライアントデバイス102上のキャッシュ記憶および後続表示用にリポジトリ120からプレイスページデータ119をプリフェッチするために使用され得るデータについて任意のソース302を監視し得る。ユーザの好みのデータ304、306、308、310、311、312の種々の組のそれぞれは、ユーザについての地理的/個人的好み130Aを示すデータ314(例えば、好まれた地理的位置データ106Aおよびユーザの個人的関心データ125)を含み得る。
【0039】
図4は、クライアントデバイス102上のキャッシュメモリ124内への記憶および後続表示用にプレイスページデータ119をプリフェッチするための方法例400のフロー図である。方法400は、有形のコンピュータで読み取り可能な媒体内に記憶された命令であって、クライアントデバイス102(例えば、本明細書に記載されるような、スマートフォン、タブレット型コンピュータ、もしくはモバイルコンピューティングデバイス、または他のパーソナルコンピューティングデバイス)のプロセッサ108、または1つ以上のサーバ116、128を使用して実行されるコンピュータで実行可能な命令の形態で1つ以上のブロック、モジュール、機能あるいはルーチンを含み得る。方法400は、例えば、ラベルプレイスページデータ119をプリフェッチするためのシステム100用のコンピューティング環境の任意のモジュールの一部として、あるいは、そのようなシステムの外部にあるモジュールの一部として、含まれ得る。例えば、方法400は、バックエンドマップコントローラ116c、ユーザの好みのシステムモジュール129、フロントエンドのユーザの好みのデータモジュール140、またはマッピングモジュール106の一部であり得る。方法400は、フロントエンド102またはバックエンド110で実行し得る。更に、ユーザは、システム100が、クライアントデバイス102でまたはクライアントデバイス102と通信して実行する任意のソース302からユーザに好まれた地理的位置データ106Aおよびユーザの個人的関心データ125を収集するか送信することを可能にするか禁止するための1つ以上のオプションを作動させるか無効にし得る。例えば、マッピングモジュール106のユーザインターフェースは、ユーザが、本明細書に記載されるような(ユーザに好まれた地理的位置データ106Aとユーザの個人的関心データ125の組み合わせを含む)任意のユーザの地理的/個人的好みのデータ130Aの収集にオプトインするかオプトアウトすることを可能にし得る。
図4は、説明の簡単さのために
図1A、
図1B、
図2、および
図3を参照にして記載されることになるが、方法400は、もちろん、他の対象やユーザインターフェースと共に利用されてもよい。
【0040】
ブロック402では、方法400は、ユーザに好まれた地理的位置データ106Aおよびユーザの個人的関心データ125を1つ以上の個人的好みのデータソース302から取り出し得るか受信し得る。ソース302から取り出されたユーザに好まれた地理的位置データ106Aおよびユーザの個人的関心データ125は、クライアントデバイス102上でもしくはクライアントデバイス102と通信して実行するユーザの地理的/個人的データソース302によって製作されたプロフィール、ユーザ履歴、ログ、または他のデータを含み得る。いくつかの実施形態では、ユーザの地理的/個人的好みのデータ130Aは、ユーザの好みのシステム114からの要求に応答してクライアントデバイス102から取り出され得る。更なる実施形態では、クライアントデバイス102は、ユーザの地理的/個人的好みのデータ130Aをバックエンド構成要素110に定期的に送信し得る。ユーザの好みのシステム114はまた、クライアントコンピューティングデバイス102と他のデバイスの両方のユーザに共通であるウェブサービスアカウント経由でデバイス102またはユーザの好みのシステム114にリンクされた別のコンピューティングデバイスなどの他のソースからユーザの地理的/個人的好みのデータ130Aを取り出し/受信し得る。
【0041】
ブロック404では、方法400は、ユーザの地理的/個人的好みのデータ130Aを判断するためにユーザに好まれた地理的位置データ106Aおよびユーザの個人的関心データ125を解析し得る。いくつかの実施形態では、方法400は、ユーザに好まれた地理的位置データ106Aおよびユーザの個人的関心データ125を解析のためにネットワーク接続経由でローカルモジュール(例えば、ユーザの好みのモジュール140、マッピングモジュール106等)または遠隔のユーザ活動システム114に送信し得る。例えば、ユーザの好みのサーバ128は、データ106A、125を受信し得るか取り出し得、モジュール129または106は、ユーザの地理的/個人的好みのデータ130Aを作り出すためにデータ106Aと125とを組み合わせ得る。モジュール129は、地理的好みと個人的関心の好みの両方を示すデータ106A、125からタプルを作り出すための1つ以上のコンピュータで実行可能な命令を含み得る。ユーザに好まれた地理的位置データ106Aおよびユーザの個人的関心データ125から判断された結果として生じるユーザの地理的/個人的好みのデータ130Aは、都市名、住所、空港コード、GPS座標、またはユーザの地理的関心を示す任意の他の情報、ならびにユーザプロフィール、個人的関心、ソーシャルネットワーキング、およびユーザの個人的関心を示す他のデータを含み得る。モジュール129または140は、次いで、ユーザの地理的/個人的好みのデータ130Aを含むプレイスページデータ119についての要求を生成し得る。
【0042】
ブロック408では、モジュール129またはモジュール140は、ユーザの好みのデータ314をマッピングシステム112に送信し得る。いくつかの実施形態では、データ130Aから判断されたユーザの好みのデータ314は、ユーザの好みのデータ314に対応するプレイスページデータ119についての要求としてマッピングシステム112に送信され得る。モジュール129またはモジュール140はまた、1つ以上のデータリポジトリ内にユーザの好みのデータ314を記憶するためのコンピュータで実行可能な命令を含み得る。例えば、モジュール129またはモジュール140は、ユーザプロフィール、ウェブ検索履歴、または他のデータソース302を解析し得、ユーザの好みのデータ314を判断し得る。いくつかの実施形態では、データ314は、リポジトリ126内に記憶され得る。データ314は、次いで、リポジトリ126からプッシュまたはプルされ得、バックエンド構成要素(例えば、マッピングシステム112、ユーザの好みのシステム114等)に送信され得る。
【0043】
ユーザの地理的/個人的好みのデータ130Aまたは判断されたユーザの好みのデータ314はまた、タイムスタンプ情報を含み得、モジュールは、ユーザ活動位置データ314の判断が、閾値期間についてデータをキャッシングすることを保証することになる当該閾値期間を判断するためのコンピュータで実行可能な命令を含み得る。例えば、モジュール129またはモジュール140が、1週間の期間内に「Boston」についての3つのユーザの好みのデータ314指示を判断した場合、モジュールは、1つ以上の閾値が超えられていることを判断し得、また、Boston市の近くのユーザの好み/関心に対応するプレイスページデータを取り出すおよびキャッシュするための更なる命令を実行し得る。対照的に、モジュール129が、1年の期間内に「Boston」についての3つのユーザの好みのデータ314指示を判断した場合、モジュール129またはモジュール140は、1つ以上の閾値が超えられていないことを判断し得、Bostonについてのユーザの関心に対応するプレイスページデータについてのマッピングシステム要求を実行し得ない。もちろん、ブロック404および408は、次に進むかどうかを判断するためにユーザの地理的/個人的好みのデータ130Aの統計的および他の解析を実行し得る。
【0044】
ブロック410では、モジュール117は、受信されたデータ314をプレイスページデータ119に適合させるための命令を実行し得る。いくつかの実施形態では、ブロック410は、クライアントデバイス102上で実行するユーザ活動モジュール140によってマッピングシステム112に送信された解析結果140に対応するプレイスページデータ119に受信されたユーザの好みのデータ314を適合させるための命令を含む。更なる実施形態では、ブロック410は、バックエンド構成要素110として実行するユーザ活動システム114によってマッピングシステム112に送信された解析結果140に対応するプレイスページデータ119に受信されたユーザの好みのデータ314を適合させるための命令を含む。
【0045】
ブロック412では、モジュール117は、ブロック410で取り出されたプレイスページデータをクライアントコンピューティングデバイス102に送信するための命令を実行し得る。いくつかの実施形態では、ブロック412は、マッピングシステム112に、プレイスページデータ119をクライアントデバイス102のキャッシュメモリ124に送信させるための命令を含む。上記のように、プレイスページデータ119は、マップタイルデータと比べて比較的軽量であるので、ブロック412は、プレイスページデータ119をコンピューティングデバイス106に最初に送信し得る。その上、ユーザが彼のまたは彼女の周囲に精通してる領域であって、ナビゲーション用のマップを要求しない領域において、プレイスページデータ119単体は、ユーザにとって個人的関心のある事業所または他のマップ特徴を見付けるのに十分であり得る。後で、マップタイルデータ117は取り出され得、プレイスページデータは、マップタイルデータ117上に層状にされ得、共にグラフィカルに表示され得る。方法400はまた、取り出されたプレイスページデータ119をクライアントコンピューティングデバイス102上で実行するマッピングモジュール106に送信し得る。
【0046】
ブロック414では、プレイスページデータ119を受信したクライアントコンピューティングデバイス102、マッピングモジュール106、またはユーザ活動モジュール140が、受信されたデータをキャッシュメモリ124内に記憶するための命令を実行し得る。マッピングモジュール106は、次いで、クライアントコンピューティングデバイス102とバックエンド構成要素110との間の接続性の低いまたは接続性の無い期間に、あるいはグラフィックマップデータが、利用不可能であるか、またはユーザによって必要とされない他の時間の間に、キャッシュ110からクライアントコンピューティングデバイス102上の表示用にキャッシュされたプレイスページデータを使用し得る。
【0047】
図5は、本明細書に記載された方法およびシステムを実装するために使用され得るコンピューティングデバイス501を有するモバイルマッピングシステム500のためのコンピューティング環境例の高レベルブロック図である。コンピューティングデバイス501は、モバイルコンピューティングデバイス102(例えば、携帯電話、タブレット型コンピュータ、Wi‐Fi使用可能なデバイスまたは無線もしくは有線通信が可能な他のパーソナルコンピューティングデバイス)、シンクライアント、あるいは他の既知の種類のコンピューティングデバイスを含み得る。当業者によって認識されることになるように、本明細書における開示および教示を考慮すると、異なるアーキテクチャを有する他の種類のコンピューティングデバイスが使用され得る。モバイルマッピングシステム例500に類似のまたは同一のプロセッサシステムが、
図1のシステム例、
図2や
図3のデータ構造、
図4の方法、および同様のものを実装し実行するために使用され得る。モバイルマッピングシステム例500が、複数の周辺装置、インターフェース、チップ、メモリ等を含むように以下に記載されるが、それらの要素の1つ以上は、プレイスページデータをプリフェッチするためにシステム例100を実装し実行するために使用される他のプロセッサシステム例から省略されてもよい。また、他の構成要素が追加されてもよい。
【0048】
図5に示されるように、コンピューティングデバイス501は、相互接続バス504に結合されるプロセッサ502を含む。プロセッサ502は、完全にオンチップであるように
図5に描写されたレジスタセットまたはレジスタ空間506を含むが、それは、相互に完全にもしくは部分的にオフチップに位置され得、また、専用の電気的接続経由でおよび/または相互接続バス504経由でプロセッサ502に直接的に結合され得る。プロセッサ502は、任意の適切なプロセッサ、処理装置またはマイクロプロセッサであり得る。
図5には示されないが、コンピューティングデバイス501は、マルチプロセッサデバイスであり得、それ故、プロセッサ502に同一のまたは類似のおよび相互接続バス504に通信可能に結合される1つ以上の追加的なプロセッサを含み得る。
【0049】
図5のプロセッサ502は、メモリコントローラ510および周辺入出力(I/O)コントローラ512を含むチップセット508に結合される。周知のように、チップセットは、典型的には、チップセット508に結合される1つ以上のプロセッサによってアクセス可能であるか使用されるI/Oおよびメモリ管理機能のみならず複数の汎用および/または特殊目的のレジスタ、タイマー等を提供する。メモリコントローラ510は、プロセッサ502(または、複数プロセッサがある場合には複数プロセッサ)が、システムメモリ514および大容量記憶メモリ516にアクセスすることを可能にする機能を果たす。
【0050】
システムメモリ514は、例えば、静的ランダムアクセスメモリ(SRAM)、動的ランダムアクセスメモリ(DRAM)、フラッシュメモリ、読み取り専用メモリ(ROM)等などの、任意の所望の種類の揮発性および/または不揮発性メモリを含み得る。大容量記憶メモリ516は、任意の所望の種類の大容量記憶デバイスを含み得る。例えば、コンピューティングデバイス501が、API519を有するマッピングアプリケーション518および(
図4の方法400によって記載されたような命令を含む)ユーザの好みのモジュール520を実装するために使用される場合、大容量記憶メモリ516は、ハードディスクドライブ、光学ドライブ、テープ記憶デバイス、固体メモリ(例えば、フラッシュメモリ、RAMメモリ等)、磁気メモリ(例えば、ハードドライブ)、または大容量記憶に適した任意の他のメモリを含み得る。本明細書に使用される際、モジュール、ブロック、機能、動作、手順、ルーチン、ステップ、および方法といった用語は、コンピューティングデバイス501とモバイルマッピングシステム500に特定の機能性を与える有形のコンピュータプログラム論理または有形のコンピュータで実行可能な命令のことを言う。それ故、モジュール、ブロック、機能、動作、手順、ルーチン、ステップ、ならびに方法は、ハードウェア、ファームウェア、および/またはソフトウェア内に実装され得る。一実施形態では、プログラムモジュールおよびルーチン(例えば、マッピングアプリケーション518、API519、ユーザ活動モジュール520等)は、大容量記憶メモリ516内に記憶され、システムメモリ514の中にロードされ、プロセッサ502によって実行され、または有形のコンピュータで読み取り可能な記憶媒体(例えば、RAM、ハードディスク、光学/磁気媒体等)内に記憶されるコンピュータプログラム製品から提供され得る。大容量記憶装置516はまた、マッピングアプリケーション518およびユーザの好み520による使用のためにプリフェッチされたプレイスページデータ、グラフィックス、および他のデータを記憶するキャッシュメモリ521を含み得る。
【0051】
周辺I/Oコントローラ510は、プロセッサ502が、周辺I/Oバス528経由で周辺入出力(I/O)デバイス522および524、ネットワークインターフェース526、セルラーネットワークトランシーバ527、ローカルネットワークトランシーバ528、および(ネットワークインターフェース526経由で)GPSトランシーバ529と通信することを可能にする機能を果たす。I/Oデバイス522および524は、任意の所望の種類のI/Oデバイス、例えば、キーボード、ディスプレイ(例えば、液晶ディスプレイ(LCD)、ブラウン管(CRT)ディスプレイ等)、ナビゲーションデバイス(例えば、マウス、トラックボール、静電容量式タッチパッド、ジョイスティック等)のようなものであり得る。I/Oデバイス522および524は、図面に関連して記載されるように、GPSトランシーバ529からGPSデータを受信し、GPSデータをシステム100のバックエンド構成要素に送信し、レンダリングし、マップおよびユーザインターフェースを表示するために、マッピングアプリケーション518およびユーザ活動モジュール520と共に使用され得る。携帯電話トランシーバ527は、ローカルネットワークトランシーバ528と共に常駐し得る。ローカルネットワークトランシーバ528は、Wi‐Fiネットワーク、ブルートゥース、赤外線、または他の無線データ伝送プロトコルのためのサポートを含み得る。他の実施形態では、1つの要素が、コンピューティングデバイス501によって利用される種々の無線プロトコルのそれぞれを同時にサポートし得る。例えば、ソフトウェア無線は、ダウンロード可能な命令によって複数プロトコルをサポートすることが可能であり得る。動作中、コンピューティングデバイス501は、定期的な方式で可視無線ネットワークトランスミッタ(セルラーとローカルネットワークの両方)について定期的にポーリングすることが可能であり得る。そのようなポーリングは、通常の無線トラフィックがコンピューティングデバイス501上でサポートされる間でさえも可能であり得る。ネットワークインターフェース528は、プレイスページデータをプリフェッチするためのシステム100が、少なくともシステム100に関連して記載された要素を有する別のコンピュータシステムと通信することを可能にする、例えば、イーサネットデバイス、非同期転送モード(ATM)デバイス、802.11無線インターフェースデバイス、DSLモデム、ケーブルモデム、セルラー式のモデム等であり得る。
【0052】
メモリコントローラ512およびI/Oコントローラ510は、チップセット508内の別個の機能的ブロックとして
図5に描写されるが、これらのブロックによって実行される機能は、単一の集積回路内に集積され得るか、あるいは、2つ以上の別個の集積回路を使用して実装され得る。モバイルマッピングシステム500はまた、遠隔コンピューティングデバイス530および532上にマッピングアプリケーション518とユーザの好みのモジュール520を実装し得る。遠隔コンピューティングデバイス530および532は、イーサネットリンク534上でコンピューティングデバイス501と通信し得る。例えば、コンピューティングデバイス501は、遠隔コンピューティングデバイス530、532上で実行するマッピングアプリケーションによって作り出されたマッピングデータを受信し得る。いくつかの実施形態では、マッピングアプリケーション518および/またはユーザの好みのモジュール520は、インターネット538経由でクラウドコンピューティングサーバ536からコンピューティングデバイス501によって取り出され得る。クラウドコンピューティングサーバ536を使用するとき、取り出されたマッピングアプリケーション518および/またはユーザの好みのモジュール520は、コンピューティングデバイス501とプログラムでリンクされ得る。マッピングアプリケーション518および/またはユーザの好みのモジュール520は、コンピューティングデバイス501または遠隔コンピューティングデバイス530、532内にあるJava(登録商標)仮想機械(JVM)環境内で実行するJava(登録商標)アプレットであり得る。マッピングアプリケーション518および/またはユーザの好みのモジュール520はまた、コンピューティングデバイス501、530、および532上に位置するウェブブラウザ内で実行するように適合された「プラグイン」であり得る。いくつかの実施形態では、マッピングアプリケーション518および/またはユーザの好みのモジュール520は、インターネット538経由でデータシステム112およびユーザの好みのシステム114などのバックエンド構成要素540と通信し得る。
【0053】
上記したシステムや手順を使用すると、プレイスページデータ100をプリフェッチするためのシステムおよびマッピングシステム500は、ユーザの好みに対応する地理的位置を示すコンピューティングデバイスからデータを取り出し解析することができる。ユーザプロフィール、明示された関心、または他のデータは、プレイスページデータをプリフェッチするための可能性のある位置を判断するために構文解析され得る。同様に、ローカルまたは遠隔のユーザの地理的/個人的好みのデータは、モバイルデバイスに記憶され得、ユーザの好みのシステムか他のシステムに転送され得、遠隔マッピングシステムによって使用され得、プレイスページデータをプリフェッチするための位置を提供する。もちろん、本明細書に記載されたシステムは、ユーザにユーザインターフェースを提示し得、そのユーザインターフェースから、ユーザは、本明細書に記載されたユーザの地理的/個人的好みのデータ収集方法のいずれかをオプトアウトすることが可能である。
【0054】
システム500は、限定されるものではないが、LAN、MAN、WAN、モバイル、有線もしくは無線ネットワーク、私設ネットワーク、または仮想私設ネットワークの任意の組み合わせを含み得る。その上、説明を簡単におよび明確にするために3つの遠隔コンピューティングデバイス530および532だけが
図5に例示されたが、任意の数のクライアントコンピュータがサポートされ、システム500内で通信し得ることが理解される。
【0055】
更に、一定の実施形態は、論理または多数の構成要素、モジュール、あるいは機構を含むように本明細書において記載される。モジュールは、ソフトウェアモジュール(例えば、機械で読み取り可能な媒体上にもしくは伝送信号で具体化されるコードであって、プロセッサによって実行されるコードまたは命令)あるいはハードウェアモジュールを成し得る。ハードウェアモジュールは、一定の動作を実行することが可能な有形のユニットであり、一定の方式で構成され得るか配置され得る。実施形態例では、1つ以上のコンピュータシステム(例えば、独立型の、クライアントもしくはサーバコンピュータシステム)またはコンピュータシステムの1つ以上のハードウェアモジュール(例えば、プロセッサもしくはプロセッサのグループ)は、本明細書に記載されたような一定の動作を実行するために動作するハードウェアモジュールとしてソフトウェア(例えば、アプリケーションもしくはアプリケーションの一部)によって構成され得る。
【0056】
種々の実施形態では、ハードウェアモジュールは、機械的または電子的に実装され得る。例えば、ハードウェアモジュールは、一定の動作を実行するために(例えば、フィールド・プログラマブル・ゲート・アレイ(FPGA)または特定用途向け集積回路(ASIC)などの特殊目的プロセッサとして)永続的に構成された専用回路または論理回路を備え得る。ハードウェアモジュールはまた、一定の動作を実行するためにソフトウェアによって一時的に構成された(例えば、汎用プロセッサもしくは他のプログラマブルプロセッサ内に包含されるような)プログラマブル論理回路または回路も備え得る。専用および永続的に構成された回路に、または一時的に構成された(例えば、ソフトウェアによって構成された)回路に、ハードウェアモジュールを機械的に実装する決定は、費用および時間の考慮によって行われ得ることが認識されることになる。
【0057】
従って、用語「ハードウェアモジュール」は、本明細書に記載された一定の方式で動作するためにあるいは一定の動作を実行するために、有形のエンティティを包含すること、物理的に構築され、永続的に構成され(例えば、配線によって接続され)、または一時的に構成される(例えば、プログラム化される)エンティティであることが理解されるべきである。本明細書に使用される際、「ハードウェアに実装されるモジュール」はハードウェアモジュールのことを言う。ハードウェアモジュールが一時的に構成される(例えば、プログラム化される)実施形態を考慮すると、ハードウェアモジュールのそれぞれは、任意の1つのインスタンス時間に構成される必要がないか、インスタンス化される必要がない。例えば、ハードウェアモジュールが、ソフトウェアを使用して構成された汎用プロセッサを備える場合、汎用プロセッサは、異なる時間にそれぞれの異なるハードウェアモジュールとして構成され得る。従って、ソフトウェアは、例えば、1つのインスタンス時間に特定のハードウェアモジュールを成すように、および異なるインスタンス時間に異なるハードウェアモジュールを成すように、プロセッサを構成し得る。
【0058】
ハードウェアモジュールは、情報を他のハードウェアモジュールに提供することができ、また、情報を他のハードウェアモジュールから受信することができる。従って、記載されたハードウェアモジュールは、通信可能に結合されるものとみなされ得る。複数のそのようなハードウェアモジュールが同時に存在する場合、通信は、ハードウェアモジュールを接続する(例えば、適切な回路およびバス上の)信号伝送を通して実現され得る。複数ハードウェアモジュールが異なる時間に構成されるかインスタンス化される実施形態では、そのようなハードウェアモジュール間の通信は、例えば、複数ハードウェアモジュールがアクセスできるメモリ構造内の情報の記憶や取り出しを通して、実現され得る。例えば、1つのハードウェアモジュールは、動作を実行し得、また、その動作の出力をメモリデバイス内に記憶し得、そのメモリデバイスにそれは通信可能に結合される。次いで、更なるハードウェアモジュールが、後の時間に、記憶された出力を取り出し処理するためにメモリデバイスにアクセスし得る。ハードウェアモジュールはまた、入力または出力デバイスとの通信を開始し得、また、リソース(例えば、情報の収集)上で動作することができる。
【0059】
本明細書に記載された方法例の種々の動作は、関係のある動作を実行するために(例えば、ソフトウェアによって)一時的に構成されたか、あるいは永続的に構成された1つ以上のプロセッサによって、少なくとも部分的に実行され得る。一時的に構成されようと永続的に構成されようと、そのようなプロセッサは、1つ以上の動作または機能を実行するために動作するプロセッサに実装されるモジュールを成し得る。本明細書において言及されたモジュールは、いくつかの実施形態例では、プロセッサに実装されるモジュールを備え得る。
【0060】
同様に、本明細書に記載された方法またはルーチンは、少なくとも部分的にプロセッサに実装され得る。例えば、方法の動作の少なくともいくつかは、1つもしくはプロセッサまたはプロセッサに実装されるハードウェアモジュールによって実行され得る。動作のいくつかの実行は、1つ以上のプロセッサの間で分配され得、単一の機械内に存在するだけではなく、多数の機械にわたって展開される。いくつかの実施形態例では、プロセッサまたは複数プロセッサは、(例えば、家庭環境、オフィス環境内、あるいはサーバファームとして)単一の位置に位置し得る一方で、他の実施形態では、プロセッサは、多数の位置にわたって分配され得る。
【0061】
1つ以上のプロセッサはまた、「クラウドコンピューティング」環境においてまたは「サービス型ソフトウェア(software as a service)」(SaaS)として関係のある動作の実行をサポートするために動作し得る。例えば、動作の少なくともいくつかは、(プロセッサを含む機械の例として)コンピュータのグループによって実行され得、これらの動作は、ネットワーク(例えば、インターネット)経由でおよび1つ以上の適切なインターフェース(例えば、アプリケーションプログラムインターフェース(API))経由でアクセスできる。
【0062】
ある動作のの実行は、1つ以上のプロセッサの間で分配され得、単一の機械内に存在するだけではなく、多数の機械にわたって展開される。いくつかの実施形態例では、1つ以上のプロセッサまたはプロセッサに実装されるモジュールは、(例えば、家庭環境、オフィス環境、もしくはサーバファーム内の)単一の地理的位置に位置し得る。他の実施形態例では、1つ以上のプロセッサまたはプロセッサに実装されるモジュールは、多数の地理的位置にわたって分配され得る。
【0063】
この明細書のいくつかの部分は、機械メモリ(例えば、コンピュータメモリ)内にビットもしくは2値デジタル信号として記憶されたデータ上の動作のアルゴリズムまたは記号的表現の観点で提示される。これらのアルゴリズムまたは記号的表現は、他の当業者に彼らの研究の内容を伝えるためにデータ処理分野における当業者によって使用される技術例である。本明細書に使用される際、「アルゴリズム」は、所望の結果に導く自己矛盾のない一連の動作または類似の処理である。この文脈において、アルゴリズムおよび動作は、物理量の物理的操作を含む。典型的には、必ずしもではないが、そのような量は、機械によって記憶され、アクセスされ、転送され、組み合わされ、比較され、あるいはそうではない場合、操作される可能性がある電気、磁気、または光信号の形態をとり得る。時には、主として一般的な使用の理由で、「データ」、「コンテンツ」、「ビット」、「値」、「要素」、「記号」、「文字」、「用語」、「数」、「数字」、または同様のものなどの単語を使用するそのような信号を参照することが便利である。しかしながら、これらの単語は、単に便利な標識に過ぎず、適切な物理量と関連付けられることになる。
【0064】
特に明記しない限り、「処理すること」、「コンピュータ計算すること(コンピューティング)」、「計算すること」、「判断すること」、「提示すること」、「表示すること」、または同様のものなどの単語を使用する本明細書における記述は、情報を受信し、記憶し、伝送し、または表示する1つ以上のメモリ(例えば、揮発性メモリ、不揮発性メモリ、もしくはそれらの組み合わせ)、レジスタ、あるいは他の機械構成要素内の物理的(例えば、電子、磁気、もしくは光学的)量として表現されたデータを操作するか変換する機械(例えば、コンピュータ)の動作か処理のことを言い得る。
【0065】
本明細書に使用される際、「いくつかの実施形態」または「ある実施形態」に対する任意の参照は、実施形態に関して記載された特定の要素、特徴、構造、または特性が少なくとも1つの実施形態に含まれることを意味する。明細書中の種々の場所における言い回し「いくつかの実施形態では」の出現は、全て同じ実施形態のことを必ずしも参照する必要はない。
【0066】
いくつかの実施形態は、表現「結合される」および「接続される」をそれらの派生語と共に使用して記載され得る。例えば、いくつかの実施形態は、2つ以上の要素が直接物理または電気接触をしていることを示すために、用語「結合される」を使用して記載され得る。しかしながら、用語「結合される」はまた、2つ以上の要素が互いに直接接触していないが、互いにまだ更に共に動作するか相互作用することも意味し得る。実施形態は、この文脈に限定されるものではない。
【0067】
更に、図面は、例示目的のためだけに、プレイスページデータをプリフェッチするためのシステムの好適な実施形態を描写する。当業者は、本明細書に例示された構造や方法の代替の実施形態が、本明細書に記載された原理から逸脱すること無く、利用され得ることを以下の記述から容易に認識することになる。
【0068】
この開示を読んだ上で、当業者は、本明細書に開示された原理を通して、モバイルコンピューティングデバイス上の後続表示用にプレイスページデータをプリフェッチするためのシステムおよび処理について更に追加的な代替の構造的ならびに機能的設計を認識するであろう。それ故、特定の実施形態および用途が例示され記載されたが、開示された実施形態は、本明細書に開示された厳密な構成や構成要素に限定されないことが理解される。当業者に明らかになるであろう種々の修正、変更および変形が、添付の特許請求の範囲に定義された趣旨や範囲から逸脱すること無く、本明細書に開示された方法や装置の配置、動作ならびに詳細においてなされ得る。