(58)【調査した分野】(Int.Cl.,DB名)
前記1組の二次的な経路は、前記第1の経路の1組の戻り経路を含み、前記戻り経路のそれぞれが、前記第1の経路の前記移動の方向と逆の移動の方向によって画定される、請求項1に記載のコンピュータで実装される方法。
前記1組の戻り経路のうちの少なくとも1つが、前記第1の経路の外側の対象となる地点を通る経路であり、前記対象となる地点はユーザが頻繁に訪れる場所であり、前記1組の二次的な経路は、前記第1の経路に沿った地点によって画定される少なくとも1つの経路と、前記第1の経路の外側の対象となる地点と、前記第1の経路に沿った前記地点を前記対象となる地点とつなぐ1組の道路とを含む、請求項2に記載のコンピュータで実装される方法。
前記1組の二次的な経路のうちの少なくとも1つは、現在の交通条件または道路の速度格付けのうちの1つに基づいて決定され、優先度は、前記二次的な経路のうちの1つを表示する機能を起動する見込み、ユーザ選好のパラメータ、または戻り経路のうちの1つの優先度を示すパラメータのうちの少なくとも1つに基づいて割り当てられ、前記コンピュータを用いて、前記二次的な経路の前記優先度に基づく二次的な経路の閾値個数を決定することをさらに含む、請求項2に記載のコンピュータで実装される方法。
前記1組の二次的な経路のそれぞれに前記優先度を割り当てることは、帯域幅閾値および現在のプロセッサ負荷を含む1組のパラメータのうちの少なくとも1つのパラメータに基づく、請求項2に記載のコンピュータで実装される方法。
【発明を実施するための形態】
【0012】
本明細書は概して、地図データベースから地図データを先読みすることに関する。地図データの先読みとは、地図データが直ちに使用を求められる前の、アプリケーションまたはデバイスによる地図データのアクセス/検索を指し得る。一実施形態では、地図データは先読みされたデータを用いる機能の起動の前に先読みされ得る。例えば、地図データベースからの地図データは、ユーザがその地図データを使用するために機能(例えば、表示またはレンダリング機能)を有効にするかまたは実行する前に、コンピューティングデバイスによってアクセスおよび/または検索され得る。地図データの先読みの利点は、地図データベースが利用可能でない期間の間(例えば、モバイルコンピューティングデバイスがオフラインである時)、先読み経路を表示するなどのいくつかのサービスまたは機能を提供するために、先読みされた地図データが地図作成アプリケーションまたはコンピューティングデバイスに利用可能となり得ることである。概して、1つの経路は2つの端点(例えば、起点および目的地)および2つの端点をつなぐ1組の通り道または道路を含む。1組の通り道または道路は、順序を有し得る。順序はまた、移動の方向に対応し得る。経路および経路の種類は、以下により詳細に記載される。
【0013】
より具体的には、本明細書は、経路を包含する地域に対応する地図データタイルを選択することにより、利用可能な全体の地図データの選択された部分として地図データを取り出すための技術を記載する。アクセスされる地図データの量は、経路に沿った地点の優先度に基づいて調整され得る。実装の一例では、経路の端点(起点および目的地の場所を表す)について、経路の途中の地点よりも多量の地図データが取り出しまたは検索され得る。どの地図データが経路の周りの地域に対応するかを決定するために、経路に沿った地図表面の地域に対応する、アクセスされる地図データタイルを指定するための1組の地図タイル半径が用いられ得る。
【0014】
図1を参照して、一実施形態に従う地図に関する画像化システム10は、サーバ14の中、または例えば、中央位置に、または種々の異なる間を置いた位置に置かれた複数個のサーバの中に格納された地図データベース12を含むことができ、また複数個の地図クライアントデバイス16、18、20、22をも含むことができ、これらのそれぞれが地図レンダリングデバイスまたは地図レンダリングエンジンを格納および実装するように構成され得る。地図クライアントデバイス16〜22は、例えば、配線接続された、または無線のローカルエリアネットワーク(LAN)、都市規模ネットワーク(MAN)、または広域ネットワーク(WAN)、インターネット、またはこれらの任意の組み合わせを含む、任意の配線接続された、または無線の通信ネットワーク25を介してサーバ14に接続され得る。地図クライアントデバイス16〜22は、例えば、携帯電話デバイス(18)、ラップトップ、タブレット、デスクトップなどのコンピュータ、または他の適切な種類のコンピュータ(16、20)または自動車ナビゲーションシステム(22)のコンポーネントなどの他の画像化システムのコンポーネントなどであり得る。さらに、クライアントデバイス16〜22は、任意の公的に利用可能な、および/または電話およびケーブルハードウェア、および/または例えば、無線LANおよびWAN、衛星および携帯電話通信システムなどを含む、無線通信ネットワークなどの無線通信構造配線接続をベースとした通信構造を用いるものを含む、私有の通信ネットワークなどの任意の適切な通信システムを介して、サーバ14に通信可能に接続され得る。
【0015】
地図データベース12は、ラスタ画像の地図データおよびベクタ画像の地図データを含む、任意の所望される形式または種類の地図データを格納し得る。しかしながら、本明細書に記載の画像レンダリングシステムは、いくつかの実施形態では、表示されることになる画像内の多くの組の画像物体、要素、または基本要素のそれぞれについての一続きの頂点または頂点データ点を画定し得るまたは含み得るベクタ画像データとともに用いるために最適化され得る。概して、ベクタデータによって画定される画像物体のそれぞれは、それらに関連付けられる複数の頂点を有することができ、これらの頂点は、クライアントデバイス16〜22のうちの1つ以上を介して、ユーザに対して地図関連画像物体を表示するために用いられ得る。
【0016】
また理解されるように、クライアントデバイス16〜22のそれぞれは、1つ以上のプロセッサ30、1つ以上のメモリ32、表示デバイス34、および多くの場合において関連付けられる表示デバイス34上に図形(画像)を実装またはレンダリングするために、一般に既知の手法でプログラムされ、および相互接続され得るラスタライザまたはグラフィックスカード36を有する画像レンダリングエンジンを含み得る。任意の特定のクライアントデバイス16〜22のための表示デバイス34は、液晶ディスプレイ(LCD)、発光ダイオード(LED)ディスプレイ、プラズマディスプレイ、ブラウン管(CRT)ディスプレイ、または任意の他の種類の既知のまたは適切な電子ディスプレイなどの任意の種類の電子表示デバイスであり得る。
【0017】
一般的に言えば、
図1の地図に関する画像化システム10は、ユーザが、クライアントデバイス16〜22のうちの1つで、サーバ14を介して地図データベース12からの地図情報または地図に関するデータと通信するために動作し、次に受け取った地図データに基づいて、地図画像を表示またはレンダリングし得る地図アプリケーション(
図1に図示せず)を開くかまたは実行することができるように動作し得る。地図アプリケーションは、表示されている地図の2次元または3次元の閲覧角度を回転、転回、または変更する、特定の地理的場所を拡大または縮小するなどのために、ユーザが地図データベース12の中に格納された地図データの異なる地理的部分を閲覧することを可能にし得る。より具体的には、以下に記載されるシステムを用いて表示デバイスまたは表示画面34上の地図画像をレンダリングするとき、クライアントデバイス16〜22のそれぞれが、ベクタデータの形式で地図データベース12から地図データをダウンロードすることができ、関連付けられる表示デバイス34上で画像をレンダリングするために、1つ以上の画像シェーダを用いてこのベクタデータを処理することができる。
【0018】
図2を参照して、クライアントデバイス16〜22のうちの1つに関連付けられるか、またはそれによって実装される画像生成または画像レンダリングデバイス40がより詳細に図示されている。
図2の画像レンダリングシステム40は、2つのプロセッサ30aおよび30b、2つのメモリ32aおよび32b、ユーザインターフェース34、ならびにラスタライザ36を含み得る。この場合、プロセッサ30b、メモリ32b、およびラスタライザ36は、すべての実施形態においてこのようである必要はないが、別個のグラフィックスカード(横線の下に表される)上に配置され得る。例えば、他の実施形態では、代わりに単一のプロセッサが用いられ得る。加えて、画像レンダリングシステム40は、ネットワークインターフェース42、通信および記憶ルーチン43、ならびに地図アプリケーションであって、その中にメモリ32a上に格納された地図表示論理を有し、プロセッサ30a上で実行され得る1つ以上の地図アプリケーション48を含み得る。同じく、例えば、頂点シェーダ44およびフラグメントシェーダ46の形式の1つ以上の画像シェーダは、メモリ32b上に格納され、およびプロセッサ30b上で実行される。メモリ32aおよび32bは、揮発性メモリおよび不揮発性メモリのどちらかまたは両方を含むことができ、ルーチンおよびシェーダは、以下に記載する機能性を提供するために、プロセッサ30aおよび30b上で実行し得る。ネットワークインターフェース42は、ユーザインターフェースまたは表示デバイス34上に画像表示を作成する際に用いるための画像データをベクタデータ形式で取得するために、配線接続されたネットワークまたは無線通信ネットワークを介して、例えば
図1のサーバ14と通信するように動作する、任意の周知のソフトウェアおよび/またはハードウェアコンポーネントを含み得る。画像レンダリングデバイス40はまた、例えばバッファ揮発性メモリであり得るデータメモリであって、後により詳細に記載されるように、地図データベース12から受け取ったベクタデータであって、任意の数の頂点データ点および1つ以上のルックアップテーブルを含むベクタデータを格納するデータメモリ49をも含み得る。
【0019】
動作の間、地図アプリケーション48の地図論理は、例えば、ユーザ入力、GPS信号、予め格納された論理またはプログラミングなどを用いて、表示デバイス34を介してユーザに対して表示する必要のある特定の画像データを決定するために、プロセッサ30上で実行し得る。アプリケーション48のディスプレイまたは地図論理は、ネットワークインターフェース42を通じて、好ましくはベクタデータまたは圧縮されたベクタデータの形式で、地図データベース12から地図データを取得するためにサーバ14と通信することにより、通信ルーチン43を用いて地図データベース12とやりとりし得る。このベクタデータは、ネットワークインターフェース42を介して戻されることができ、およびルーチン43によって復元され、データメモリ49の中に格納され得る。具体的には、地図データベース12からダウンロードされたデータは、用いられる最終的なベクタデータの小型の、構造化された、または別様に最適化された型である場合があり、地図アプリケーション48は、ダウンロードされたベクタデータを、プロセッサ30aを用いて特異的な頂点データ点へと変換するように動作し得る。一実施形態では、サーバ14から送られた画像データは、画面34上に表示されることになるいくつもの異なる画像要素または画像物体に関連付けられる1組の頂点のそれぞれについてのデータを概して画定するベクタデータ、およびおそらく1つ以上のルックアップテーブルを含み得る。所望される場合、ルックアップテーブルは、ベクタグラフィックスを用いて作成された画像の一部として表示されることになる特定のテクスチャまたはカラーフィールド(ピクセル値)を典型的に画定する既知の種類のデータファイルである、ベクタテクスチャ地図の形式で送られることができ、または復号されることができ、または地図アプリケーション48によって生成されることができる。より具体的には、それぞれの画像要素または画像物体についてのベクタデータは、画像の特定の要素または物体を形成している1つ以上の三角形に関連付けられる複数個の頂点を含み得る。それぞれのかかる三角形は、3つの頂点(頂点データ点によって画定される)を含み、およびそれぞれの頂点データ点が、これに関連付けられる頂点データを有する。一実施形態では、それぞれの頂点データ点が、基準空間または仮想空間の中の2次元位置または3次元位置または頂点の場所を画定する頂点場所データを、属性基準とともに含む。それぞれの頂点データ点が、この頂点データ点が関連付けられる画像物体の種類を識別する物体種類識別子などの他の情報を追加的に含み得る。本明細書においてスタイル基準または特性基準と称される属性基準は、データメモリ43にダウンロードされおよび格納されたルックアップテーブルのうちの1つ以上の中の、1つの場所または1組の場所への基準または地点である。
【0020】
一般的に言えば、特定の地理的領域についての地図データベース12の中の地図データは、異なるズーム段階で格納されることができ、そこではそれぞれのズーム段階が、一実施形態では、地図または地図表面の視覚表示を異なる段階の詳細さで構築するために用いられ得る、地図データタイルと呼ばれる複数の地図データブロックから形成される。
図3は、地図データベース12の一部分のデータ構造200の例を図示したものである。特定の地理的領域についての地図データは、それぞれのデータ構造が複数の地図データタイルによって形成されている、多くの(n個の)異なるズーム段階のデータ構造(そのうちの3つのみが示される)202A、202B、および202Cの中に格納され得る。説明を目的として番号付けされたただ1つのものであるデータ構造202Bは、18個の地図データタイル204A〜204Rから形成される、ズーム段階z=2での特定のまたは固定の地理的領域についての地図データを示す。地図データタイルは、地図表示を構築するための基本構成要素を表し得る。それぞれの地図データタイルは、道路、建物などの種々の地図物体または地図特性、および水線、群線、市境界、州線、山、公園などの地理的境界を識別するデータを含む地図表示(例えば、地図表面)の一部分を構築するために必要な地図データを含み得る。地理的領域についての地図データは、特定の地理的領域について異なる段階の詳細を提供するために、任意の数の異なるズーム段階のデータ構造の中に格納され得る。一実施形態では、合計19のズーム段階が地図データベース12の中に格納され得る。
【0021】
固定地理的領域についてのそれぞれのズーム段階でのタイルの数は、例えば、直線的に、二次に、指数関数的に、またはズーム段階の数が増加するにつれて別様に増加し得る。図示された例におけるズーム段階(z=1、2、および5)は、6個、18個、および60個の地図データタイルを各々が有し、同一の地理的地域または領域を受け持っている。同一の面積について、ズーム段階が上がるにつれて地図データタイルの数が増加するため、ズーム段階は、単位面積毎のタイルの数に対応する地図データの密度と考えられ得る。高いズーム段階は概して、単位面積毎により多くのタイルを必要とし、よって低いズーム段階よりも高い地図データ密度を提供する。
【0022】
図示される実施形態では、すべての地図データが地図データタイルの中に格納され、ズーム段階データ構造の中のそれぞれの地図データタイルに同一のまたは類似のメモリ配分の大きさを配分され得る。例えば、各タイル204A〜204Rは、10キロバイトの大きさのビットマップ画像であり得る。これは、例えば、それぞれの地図データタイルに同一の大きさの地理的地域を受け持たせることによって達成され得る。ベクタデータを含む地図データタイルについて、それぞれのタイルについてのデータの大きさはさまざまであり得るが、しかしそれぞれのタイルがなお、いくつかの実施形態では、同一の最大記憶空間を割り振られ得る。図示されていないが、他の実施形態では、データタイルは、それぞれのズーム段階データ構造内に、異なる記憶空間配分を有し得る。いくつかの実施形態では、それぞれの地図データタイルは、ビットマップフォーマットで格納された地図データを含むことができ、一方他の実施形態では、それぞれの地図データタイルは、ベクタフォーマットの形式で格納された地図データを含むことができる。
【0023】
図4A〜
図4Cは、例えば、ユーザインターフェース34上に完全にまたは部分的に表示され得る視覚的地図表示を図示したものであり、それぞれの図が異なるズーム段階での地図表面の視覚表示を提供し得る。図示された実施形態では、
図4Aは、ズーム段階の例z=6で、同一の大きさの地理的地域を受け持ち、および同一の量の記憶容量を有する、一続きの地図データタイル302〜318で構築された視覚的地図表示300を提供する。
【0024】
動作中、サーバ14は、地図データをこれらの地図データタイルによって画定されるデータの塊で、各々のクライアントデバイス16〜22に送信するように構成され得る。例えば、地図表示300を構築するために必要な地図データを送信するために、サーバ14は、それぞれの地図データタイルを、フレームの識別データ(地理的位置、クライアントデバイス住所、地図データタイルのバージョン番号など)を提供するヘッダ部分、および視覚表示を形成する際に用いられることになる特異的な地図データタイルデータを含むペイロード部分を有するフレームで送信し得る。地図データタイルは、地図データベース12の中に格納された地図データを量子化するための、および地図データのネットワーク25でのクライアントデバイス16〜22への通信を量子化するための効率的な機構を提供し得る。
【0025】
図4Aと比較して、
図4Bは、
図4Aのズーム段階よりも高い、本例ではズーム段階z=10のズーム段階での視覚地図表示400を図示したものである。地図表示400は複数の地図データタイル402〜432から形成され得る。地図データタイル302〜318のように、地図データタイル402〜432はそれぞれ大きさが同一であり、例えば、同一の大きさの地理的地域を受け持ち、および同一の記憶容量を有する。
図4Cは、地図データタイルから形成される、第3のさらに高いズーム段階であるズーム段階z=12での別の視覚地図表示480を図示したものである。
【0026】
ディスプレイ300、400、および480のそれぞれは、より多くの地図データタイルからなる全体の地図データの一部分を図示し得る。
図4A〜
図4Cにわたって図示されるように、それぞれの視覚地図表示を形成する地図データタイルは、種々の段階の詳細を有し得る。タイル302〜318は、地理的境界を図示し得るが、道路ではなく幹線道路および/または州間高速道路のみであり、一方
図4Cのタイルはより高いズーム段階であることができ、道路、建物、公園、端点などの情報を含む。
【0027】
ユーザが視覚地図表示300、400、および480とやりとりする間、ユーザは、図示される地図データの近くの他の地図データ(異なる地理的地域に対応する)を表示するために、あちこちスクロールすることを望み得る。したがって、クライアントデバイス16〜22は、視覚地図表示を形成するために十分な量の地図データを取り出しおよび格納するためのシステムを用いることができ、一方その表示との効率的なユーザのやりとりを可能にするために、ローカルクライアントデバイス16〜22のうちの1つで追加的な地図データをバッファリングする。
【0028】
図5は、経路501の閲覧ウィンドウ500を図示したものである。経路は、地図表面または地図地域上に投影され得る。概して、経路501は、起点502、目的地504、およびともに起点502を目的地504につなぐ1組の道路、道、通り道、セグメントなど506を含み得る。1組とは、本明細書で用いられる場合、1つ以上の要素を含む。1組の道路は、一連の道路として順番を付けられ得る。経路501は、やはり一連の1組の道路によって示され得る方向を有し得る。経路501は、いくつもの手法において決定され得る。例えば、ユーザは起点および目的地(例えば、ユーザは2つの住所を入力し得る)を定めることができ、地図作成アプリケーションは、地図作成データベースからのデータを用いて、2つの地点または場所をつなぎ得る1組の道を決定することができ、それにより経路を形成する。いくつかの事例では、地図作成アプリケーションは、ユーザが可能性のある経路のうちの少なくとも1つを処理することを選択または指定する選択肢を与えられ得る、起点と目的地とをつなぐ複数の経路を決定し得る。代替的に、ユーザは、地図作成アプリケーションに、起点、目的地、および起点と目的地とをつなぐ通り道の集まり(例えば、道路)を含む経路を提供し得る。
【0029】
本明細書に記載の技術の一実施形態では、地図データベース12などの地図データベースは、決定された経路を包含する地図地域に対応する地図データ(例えば、地図データタイル)の先読みまたは検索のためにアクセスされ得る。別の実施形態では、地図データは、1つ以上の経路を生成するために先読みされ得る。経路を生成するために用いられる地図データは、経路を表示するための情報を提供するために用いられる同一の地図データタイルの中に含まれ得る。異なる実施形態では、経路を生成するために用いられるデータは、その経路をレンダリングするために用いられる地図データタイルとは別個の地図データタイルの中に含まれ得る。別の実施形態では、経路を生成するために用いられるデータは、地図データタイルと異なるデータ形式で含まれ得る。先読みは概して、地図データの検索を、そのデータが処理のために必要とされる前に起動することを伴う。例えば、先読みは、地図データを、その地図データを利用するレンダリングまたは表示機能の起動の前に検索することを伴い得る。先読みはまた、地図データベース全体のより高速な検索のために、地図データをローカルメモリの中に格納することをも伴い得る。例えば、ローカルメモリにアクセスする速度は、地図データベースにアクセスする速度よりも高速な場合がある(例えば、断続的な接続、接続帯域幅などのため)。モバイルデバイスがネットワーク25を通してサーバ14に断続的にアクセスすることのみが可能である状況では、先読みは、クライアントデバイスのサーバ14への接続が可能であるときはいつでも、モバイルデバイス/ユーザがそのデータへのアクセスを要求したかどうかにすら関わらず(例えば、先読みされたデータに対応する地図データをレンダリングする要求または機能を介して)、アクセスおよび地図データの検索をスケジューリングすることを伴い得る。
【0030】
図6は、正方形地域510が経路の周囲に配置された
図5の経路501を図示したものである。場所または地点に関して用いられたとき、「周り」という用語は、場所または地点を含むことを意味することに留意されたい。よって、「目的地の周囲」は、目的地の地点自体とあわせて、目的地に隣接する地域を含む。正方形510は、地図データの離散単位に対応する地図の離散地域を表し得る。上述の地図データタイルに関して、それぞれの正方形地域510が、特定のズーム段階について、地図データタイルを表すか、または地図データタイルと一致し得る。地域510は、利用可能なまたは検索可能な全体的な組の地図データタイルのうちの一部のみを表し得る。例えば、地図データタイルが閲覧ウィンドウ600全体に概して存在し得る場合、地域510によって表される地図データタイルは、その閲覧ウィンドウの全体的な地図データタイルのほんの断片である。
【0031】
図6は、特定のズーム段階で、経路を表示するための最小量の地図データが、その経路の全部の地点を包含する地域に対応する、少なくとも1組の地図データタイルを含み得ることを図示したものである。一実施形態では、地図データベースを介して
図6の正方形510に対応する地図データタイルにアクセスすることにより、ある経路に対して最小量の地図データが先読みまたは検索され得る。例えば、システム10のデバイスのうちの1つは、プロセッサによって実行された際に、経路上の一地点が地図データタイル内に含まれているかどうかを決定し、かつその経路を包含する最小数の地図データタイルからなる地図データタイルを決定または識別する命令を含み得る。
【0032】
地図作成アプリケーションのいくつかのレンダリング状況について、経路の周囲のより大きい地域が所望され得る。概して、本方法およびシステムは、起点および目的地を含む経路に沿った地点のタイル半径を決定することにより、経路(例えば、
図5〜
図9の経路)を包含する地域について、地図データタイルの一部を決定し得る。
図7は、地図データベース12の中に格納された利用可能な地図データの一部分を、第1の(無作為)ズーム段階で示す視覚地図表示の例700を図示したものである。対象となる地点704は、割り当てられた地図タイル半径754とともに示されている。地図タイル半径754は、地図データベース12から読み出すタイルを識別するための対象となる地点704からの半径方向距離を表す。
図7のタイル半径754は、識別されたタイル半径であるRによって画定される外周領域756内に配置される、対象となる地点に関連付けられる複数の地図データタイルを識別するために、対象となる地点704から伸長する。図示される実施形態では、この領域756は、例えば地図データベース12から識別されることになる1組の先読み地図データタイルを画定し、クライアントデバイス16〜22のうちの1つへと送る。一例では、外周領域756と部分的にでも重なる任意の地図データタイルは、1組の先読み地図データタイルの内とされる。これらのタイルは
図7では網掛けされている。
【0033】
図8は、対応するタイル半径810を持つ経路セグメント810(例えば、道路セグメント)に沿った2つの地点802、804を図示したものである。
図8の網掛けされた地域は、半径802、804に基づいて経路セグメント810について検索され得る地図データタイルを図示したものである。
図8において、道路に沿った2、3の地点のみ(例えば、一定間隔に間を置いた地点)が地図半径を決定するために用いられることができ、および対応する網掛けの地域が検索され得る。他の実施形態では、線セグメントについての地図タイル半径を画定するためにより多くの地点が用いられ得る。さらに、道路セグメントなどの線セグメントが無数の地点を含み得る一方、地図タイル要求は、データタイルについての非常に多くの要求または識別を必ずしも求めない。そうではなく、対象となる網掛けの地域は、線セグメントの全長について(例えば、積分関数を用いて)計算され、かつ経路の半径内のすべてのタイルを識別するために、たった1回の計算がなされ得る。すべての対応する地図データタイル(例えば、同時に)を検索するために、次にたった1回の呼び出しがなされ得る。
【0034】
図9は、
図5〜
図6に図示されたもののような地図表面について、地図データを先読みするために用いられ得る方法、ルーチン、または工程900のフロー図またはフローチャートを図示したものである。方法900は、1つ以上のブロック、モジュール、機能、またはルーチンを、有形のコンピュータ可読媒体の中に格納され、サーバ14またはクライアントデバイス16〜22のプロセッサを用いて実行される、コンピュータで実行可能な命令の形式で含み得る。方法900は、本明細書に記載のシステムのためのコンピューティング環境の任意のバックエンドデバイス(例えば、サーバ14)またはフロントエンドデバイス(例えば、クライアントデバイス16〜22)のモジュールまたはコンポーネントとして、またはかかるシステムの外部のモジュールの一部として含まれ得る。
図9は、説明しやすくするために図に関して記載されるが、しかし方法900はもちろん、他の物体およびユーザインターフェースとともに利用されることができる。任意の事象において、ブロック902は、起点、目的地、および起点と目的地とをつなぐ1組の道路についての情報を含む経路情報を決定する。これは、クライアントデバイス16〜22上のうちの1つの地図作成アプリケーション内で実行する1つ以上の命令に応答して受け取られ得る。ブロック902はまた、経路を生成するために用いられる地図データを先読みし得る。すでに述べたように、経路を生成するための地図データは、経路をレンダリングするための地図データタイルと異なる、または同一の地図データタイルの形を取ってもよく、または完全に別個のデータ形式として格納されてもよい。一実施形態では、経路を生成するための地図データは、経路を画定する進路変更毎の命令の形式であり得る。
【0035】
ブロック904は、経路に沿った地点についての1組の地図タイル半径を決定し得る。一実施形態では、ブロック904は、経路に沿ったすべての地点について、最小タイル半径を決定し得る。最小地図タイル半径は、経路全体(
図6のものなど)を包含する地域と一致する最小数の地図データタイルが選択されることを可能にするために選択され得る。この最小地図タイル半径は、経路全体についての固定半径と見なされ得る。他の実施形態では、ブロック904はまた、経路に沿った対象となる地点または優先地点についての1組の地図タイル半径をも決定し得る。これらの対象となる地点は、最小タイル半径よりも大きい半径を有するように決定され得る(以下でさらに検討される)。いったん経路の半径が決定されると、ブロック906は、ブロック904で決定された半径に対応する地図データタイルについて、地図データベース12などの地図データベースにアクセスし得る。ブロック908は次に、ブロック904で決定された半径に対応する地図データタイルを検索し、検索したタイルをクライアントデバイス16〜22のローカルメモリの中に格納し得る。
【0036】
一実施形態では、経路に沿った地点には、優先度値が割り当てられ得る。例えば、優先度は、フラグ、属性、または経路上の地点に関連付けられる他のインジケータを用いて割り当てられるかまたは指定される。経路セグメントは、1組の地点によって画定されることができ、よって、経路セグメント(例えば、経路の道路セグメント)は、経路セグメントを画定する1組の地点にその優先度が割り当てられているとき、優先度に対応し得る。さらに、優先度属性は単に高または低の値(すなわち、優先度ありまたは優先度なし)であり得る。他の実施形態では、優先は、高値と低値との間で測られた値であり得る。
【0037】
本明細書に記載の本方法およびシステムは、インターフェース34を介してユーザに対して表示するための1つ以上の対象となる地点を決定し得る。対象となる地点は、例えば、ユーザがインターフェース34上に提示されるデータフィールドの中にアドレスを提供することを通じた、またはユーザがインターフェース34とのやりとりを通じて取得された対象となる地点を見つけることを選択することを通じたユーザ入力に基づいて決定され得る。概して、経路に沿った地点の優先度は、ユーザがその地点に対応する地図データにアクセスする機能を起動する見込みを表し得るか、または見込みによって決定され得る。これはユーザが特定の地図データを用いてその地図の一部分を表示する機能を起動することに対応し得る。アクセスの見込みは、例えば、地図データにアクセスするために地図作成アプリケーションの命令が実行される平均数および時間の分析を含む、動作中のシステムの測定基準に基づいて決定され得る。
【0038】
一実施形態では、起点および目的地は、初期設定で高い優先度を有する対象となる地点として割り当てられ得る。
図10は、起点502と目的地504とを結ぶ経路506に沿ったところよりも、起点502および目的地504の周囲のより大きい地域に対応する地図データが存在する場合の、決定された経路501(
図5)を包含する地域1000を図示したものである。
図10は、起点502および目的地504に、起点と目的地との間の、経路に沿った1組の地点506よりも高い優先度が割り当てられ得ることを図示したものである。この場合、より大きい地図タイル半径が起点502および目的地504に割り当てられる。起点および目的地は、初期設定の対象となる地点を表し得る。この場合、高い優先度の地点(起点および目的地)について、つないでいる経路のより低い優先度の地点についてよりも多量の地図データが検索される。
【0039】
いくつかの実施形態では、目的地504は、より高い優先度を有することができ、よって起点502よりも大きい地域に対応するより多い地図データを有することができる。これは、ユーザが目的地に移動することを意図し、および起点(ユーザが離れようとしている可能性があるため潜在的により短い滞在時間)よりも目的地(潜在的により長い滞在時間)での情報を必要とする可能性が高いときの状況に適用され得る。しかしながら、起点がより多量の優先度を必要とし、より大きい地図地域を有するいくつかの状況が存在する。これは、例えば、起点の周りの地域の複雑さ(例えば、複雑さは分岐合流点、道路、および地形の複雑さが増大するにつれて増大する)が高く、起点の周りの地域を通って通行するためにより多大な地図地域が必要とされるときに事実となり得る。
【0040】
図11Aは、複数個の対象となる地点502、504、および1101を示す地図表面の閲覧ウィンドウ1100を図示したものである。
図11Aは、起点502と目的地504との間の経路501上の対象となる特別な地点1101を図示したものである。この状況において、対象となる地点1101には、高い優先度および周辺の経路より大きいタイル半径が割り当てられ得る。この対象となる地点は、市、町、または高い優先度を割り当てられた他の陸標であり得る。経路に沿った複数の対象となる地点には、高い優先度が割り当てられることができ、これらの対象となる地点についてより多量の地図データタイルが検索され得る。
【0041】
図11Bは、起点502と目的地504との間の、経路501からある距離だけずれた場所にある対象となる特別な地点1120を有する、経路501の閲覧ウィンドウ1150を図示したものである。この状況において、地点1120の周囲の地域1125が指定されることができ、対応する地図データタイルが地域1125について印をつけられる。一実施形態では、対象となる地点1120についてのタイル半径は、タイル半径の外周が対象となる地点1120に最も近い経路501に沿った地点のタイル半径と重なるように決定され得る。これは、経路501の近くの場所にある対象となる地点にとって好都合である。別の実施形態では、本方法およびシステムは、経路に沿った地点から、経路外にある対象となる地点1120への1つ以上の通り道を決定し得る。対象となる地点1120のために通り道が決定されるかどうかは、対象となる地点1120と通り道501との間の距離に依存し得る。例えば、通り道は、経路を離れた対象となる地点1120への経路のために決定され得るが、これはその地点への距離が、ユーザがより長い経路を離れた距離よりも、より短い経路を離れた距離を移動して地点1120へ行くであろうという、より高い見込みを説明する閾値距離であるかこれを下回るときに決定され得る。
【0042】
経路に沿った地点の優先度は、例えば、より一般的には、ユーザがインターフェース34上に提示されるデータフィールドの中に住所を提供することを通じた、またはユーザがインターフェース34とのやりとりを通じて取得された対象となる地点を見つけることを選択することを通じたユーザ入力に基づいて決定され得る。例えば、ユーザは、場所、企業、家などであって、そこからクライアントデバイス16〜22のうちの1つが、ユーザがかかる対象となる地点の周囲の付近の地図表示を組み立てるためのかかる項目を選択できるようにする、場所、企業、家などを識別する、クライアントデバイス上で動いているウェブブラウザか、または他のプログラムにアクセスすることができる。
【0043】
1つ以上の対象となる地点を打ち込むかまたは別様に識別するための任意の適切な手動の方法が、クライアントデバイス16〜22のうちの1つによって用いられ得る。さらに、クライアントデバイス16〜22のうちの1つ上の地図作成アプリケーションは、例えば、クライアントデバイス16〜22のうちの1つの現在地のGPS位置を決定することにより、もっとも最近探索された対象となる地点を決定することにより、格納された対象となる地点のデータベースにアクセスすることにより、またはもっとも最近訪問された対象となる地点(例えば、市、地区など)を決定することにより、対象となる地点を自動的に識別し得る。もちろん、これらのうちのいくつかの場合、地図作成アプリケーションは、背景アプリケーションとして、よっていかなる特定のユーザのやりとりもなく、ユーザのデバイスに格納するために地図データをダウンロードするための場所を決定し得る。
【0044】
上述したように、工程ブロック906〜908は、単一のズーム段階での、対象となる地点の周囲のより大きい地図地域に対応する、より数多くの地図データタイルを先読みするために、地図データベースにアクセスし得る。一実施形態では、高い優先度の地点について、第1の単一のズーム段階で、より多くの地図データタイルを先読みする代わりに、またはこれに加えて、本方法およびシステムは、高い優先度の地点について、第2の高いズーム段階で地図データタイルを先読みし得る。
図12は、
図6のズーム段階と同一の大きさの地図データタイルを表す地域506を有する、
図6の同一の経路を図示したものである。加えて、
図12は、第2のより高いズーム段階の地域1210によって表される追加的な地図データタイルを図示したものである。起点502または目的地504の周囲の地域を拡大することを望むユーザは、閲覧ウィンドウのズーム機能を起動し得る。より高いズーム段階の地図データタイルがクライアントデバイス16〜22のうちの1つに先読みされたとき、これらの地図データタイルをレンダリングするための応答時間は、比較的高速な場合がある。
【0045】
もちろん、第2のより高いズーム段階で追加的な地図データタイルを検索することに加えて、本方法およびシステムはまた、第1のズーム段階のものとは異なる地域について、または第2のより高いズーム段階で経路上の他の地点に関する異なる地域について、第2のより高いズーム段階でも地図データタイルを検索し得る。また、本方法およびシステムは、低い優先度の(例えば、経路の中間、対象となる地点がないなど)経路に沿った地点について、より高いズーム段階のデータを検索することもしないこともできる。経路の中間の地点の周囲の、より高いズーム段階の地図データが検索されるかどうかは、経路に沿った地点の優先度に依存し得る。上述したように、経路上の地点の優先度は、その地図データについてのアクセスの見込みの決定に部分的に基づき得る。
【0046】
上述の本方法およびシステムは、決定された経路を包含する決定された地域に基づいて、利用可能なまたは検索可能な地図データタイルの部分のみを検索または処理、およびクライアントデバイス16〜22のキャッシュメモリの中へと格納することができる。この方法およびシステムは、素早い検索および処理のために予測される地図データがローカルキャッシュメモリにダウンロードされるとき、より高速な応答時間を提供し得る。上記で検討された優先度の1つの種類が、どの地図データ(経路の周囲の地域および/またはズーム段階データ)を検索するかを指定することに基づく一方で、優先度の第2の種類は、その地図データが検索される順番または順序であり得る。地図データ検索(例えば、地図データタイル)の順序は、帯域幅およびプロセッサ料金を低減するのに役立ち得る。地図データ検索の順序はまた、地図データを含むサーバへの接続が検索の間に失われた場合に、より重要な、高い優先度のタイルがまずダウンロードされることを確実にもし得る。
【0047】
図13は、いつ、およびどの順番で地図データタイルを検索するかを決定するための工程フローを図示したものである。ブロック1302は、受け取るいくつかの組の異なる地図データを決定し得る。地図データの組は、上述されたように、決定された地図データに対応し得る。例えば、第1の組の地図データは起点の周囲の地域と一致する場合があり、第2の組の地図データは目的地の周囲の地域と一致する場合があり、第3の組の地図データは起点と目的地との間の通り道に沿った地域と一致する場合があり、第4の組の地図データは追加的な対象となる地点と一致する場合がある。追加的ないくつかの組は、経路の一部分(例えば、起点、目的地、経路セグメント、および他の対象となる地点)についての異なるズーム段階のデータを伴い得る。
【0048】
ブロック1304は次に、システムの現在の条件(例えば、閲覧ウィンドウの状態、現在の帯域幅、現在のプロセッサ容量など)を決定し得る。ブロック1306は次に、ブロック1302で決定されたそれぞれの組の地図データを先読みするための順序を決定し得る。ブロック1306の決定は、ブロック1304において決定された条件に基づいて実施され得る。ブロック1306によって決定された順序は、ユーザによるアクセスの推定される順番に基づく、固定の初期設定の順序であり得る。これは、ブロック1304が初期設定条件を示すときに事実となり得る。ブロック1308で、地図データベースは、ブロック1302のそれぞれの組の地図データタイルについて、地図データベースがブロック1307によって決定された順序でアクセスされ得る。ブロック1310で、アクセスされた地図データは次に、ユーザまたは地図アプリケーションが地図データを求めるアクセスまたは処理機能を起動したとき、素早いアクセスのために検索され、および/またはローカルメモリの中に格納され得る。
【0049】
一般的な順序は、目的地、起点、経路に沿った追加的な対象となる地点について地図データを検索することを、次に種々の経路を離れた対象となる地点への接続セグメント(道路セグメント)を伴い得る。別の順序は、ズーム段階についての最小の地図タイルデータを含む概観の組の地図データと、1つの表示可能な閲覧画面(
図5のものなど)の中に起点および目的地を含む閲覧ウィンドウ位置とともに進み得る。別の順序は、第1のズーム段階での概観の組についての地図データ、より高いズーム段階での起点および目的地の地図データ、次に第1のズーム段階での道路セグメントに対応する地図データを含み得る。さらに別の順序では、起点がより高い優先度を割り当てられているとき、起点データは目的地データに優先し得る。これは、起点が複雑な交通条件を含むときに事実となり得る。別の場合は、現在のユーザ位置(例えば、GPS位置信号を介して)についての追加的な情報が、ユーザを起点から離れた経路に沿って置いたときである。他の状況において、経路に沿った対象となる地点についての地図データが起点よりも高い優先度を有し得る。もちろん他の順序は可能であり、本明細書に記載の技術の動作の範囲内である。
【0050】
一実施形態では、地図データタイルの順序および地域の両方が、閲覧ウィンドウ状態に基づいてアクセスまたは先読みされ得る。具体的には、地図データタイルは、閲覧ウィンドウ位置に基づいてアクセスされ得る。閲覧ウィンドウ位置は、経路に沿った特定の地点の近くを中心とされ得る。中心位置が他の部分の経路に接近するように閲覧ウィンドウ位置が変更されるにつれて、追加的な地域地図データが検索される(例えば、ブロック906〜908を介して)か、または検索の順序が変更され得る(例えば、ブロック1306〜1310を介して)。本実施形態は、地図をレンダリングしているデバイスの現在位置が、その現在位置を中心とする(例えば、GPSシステムを用いて)ように地図を提供する状況において用いられ得る。
【0051】
地図タイルデータの量および地図タイルデータの部分がアクセスされる順序は、現在の帯域幅または
図1のプロセッサ負荷に基づき得る。地図データタイルのより大きいまたはより小さい半径をダウンロードするかどうかの決定は、帯域幅および/またはその量の地図データタイルをサーバから検索することに関連付けられる待ち時間の考慮に依存し得る。いくつかの実施形態では、帯域幅の考慮は、地図データタイルを検索するための現在の帯域幅/ダウンロード時間が閾値を上回っているかどうかを確認することに依存し得る。例えば、クライアントデバイス16〜22のうちの1つは、より大きいタイル半径に対応する追加的な地図データタイルを検索するかどうかを決定するために、検索処理の現在のダウンロード速度を確認し得る。
【0052】
地図データベースのアクセスを実施するためのプロセッサ容量が考慮され得る。例えば、閾値に対して現在のプロセッサ容量が確認され得る。これは、地図作成アプリケーションの現在の条件が、プロセッサ負荷のため、低減したデータ検索および/または処理を求める場合に事実となり得る。例えば、プロセッサが過負荷となったり、または停滞(プロセッサ容量が低いか、または閾値を下回る)したりしたとき、地図データタイル半径は検索および処理される地図データタイルの総量を低減するために短くされることができ、それによりプロセッサ作業負荷を少なくする。
【0053】
さらに、先読み地図データタイルの順序および量は、メモリ条件に基づき得る。例えば、制限された量のメモリが先読み地図データのために配分され得る。地図データタイルの対応する地域は、メモリバジェットに配慮するために適当に縮尺され得る。検索の順序は、メモリバジェットに基づいて再び順番付けされ得る。代替的に、地図データタイルの組の数は、メモリバジェットに基づいて低減され得る。
【0054】
図9および13のブロックの任意の適切な部分は、いくつもの異なるデバイス(例えば、クライアントまたはサーバ)によって任意の適切な順番で実装されることができ、かつ本明細書に記載の本方法およびシステムと依然として一貫する。その上、補間処理を受けるスタイルパラメータの選別を向上するため、追加的な決定ブロックが追加され得る。
【0055】
別の実施形態によれば、初期経路に関連付けられる1組の経路についての二次的な経路情報は、その経路に対応する地図データがアクセスまたは先読みされる場合に決定され得る。初期経路は、以下一次的な経路と称されることがあり、一方関連付けられる経路は二次的な経路と称されることがある。二次的な経路指定情報は、1組の二次的な経路のそれぞれについて、進路変更毎の命令を含み得る。地図データタイルの形の二次的な経路についての対応する地図データもまた、上述されたものと類似の手法で先読みされ得る。本実施形態を用いて先読みされた地図データタイルは、クライアントデバイスがサーバに接続されていない場合に、経路選定情報を提供するために用いられ得る。上述したように、クライアントデバイスは地図データベースに断続的に接続されているのみである場合があり、かつユーザコンピューティングデバイスと地図データタイルを提供する地図データベースサーバとの間に接続がないオフライン期間のとき、地図データタイルをデータベースから検索することができない場合がある。地図データタイルの先読みは、クライアントデバイスがオフラインのときでさえも、クライアントが要求した地図表示をクライアントデバイスが提供し続けることを可能にし得る。
【0056】
図14Aおよび14Bは、一次的な経路に基づく1組の二次的な経路について地図データを先読みするために用いられ得る方法、ルーチン、または工程1400のフロー図またはフローチャートを図示したものである。
図14Aは、表示デバイス上に表示され得る第1の経路または一次的な経路を生成するための機能を起動し得るブロック1401を有する工程1400を図示したものである。一次的な経路は、起点、目的地、および起点と目的地とをつなぐ1組の道路によって画定され得る。一次的な経路はまた、移動の方向によっても画定され得る。移動の方向は、例えば、一方通行の道を含むいくつもの要素によって決定され得る。一次的な経路を生成するための機能は、第1の経路を表示するための機能を含み得る。ブロック1403は次に、一次的な経路を生成するための機能の起動に応答して、1組の二次的な経路のために、地図データタイルなどの地図データについて地図データベースにアクセスし得る。言い換えると、地図作成アプリケーションが第1の経路の生成を起動した(例えば、第1の経路を表示するために)とき、工程1400は第1の経路に基づいて1組の二次的な経路に対応する地図データを自動的に先読みし得る。1組の二次的な経路に対応する地図データは、二次的な経路の表示をレンダリングするために用いられる地図データと合わせて、二次的な経路を生成するために用いられる地図データを含み得る。ブロック1405は次に、先読み地図データを検索、送信、および/または格納し得る。ブロック1405は、例えば、地図作成アプリケーションによる高速アクセスのために、先読み地図データをローカルメモリの中に格納し得る。地図作成アプリケーションは、一次的な経路を生成するための機能を起動した実体であり得る。
【0057】
図14Bは、一次的な経路に基づく1組の二次的な経路について地図データを先読みするための関連する方法、ルーチン、または工程1420を図示したものである。ブロック1402は、表示デバイス上に表示され得る第1の経路または一次的な経路を生成するための機能を起動し得る。起動機能は、上記の
図9のブロック902の工程と類似の地図作成アプリケーションによる一次的な経路の決定を含むか、または伴い得る。ブロック1402の機能は、例えば、ユーザによって提供される情報に基づいて一次的な経路を計算し得る。ブロック1404は、一次的な経路を包含する地域に対応する地図データ(例えば、地図データタイル)について地図データベースにアクセスし得る。
【0058】
ブロック1406は、一次的な経路に基づいて1組の二次的な経路を決定し得る。1組の二次的な経路は、以下でさらに検討されるように、いくつもの要素およびパラメータに基づいて決定され得る。ブロック1408は次に、地図データベースから先読み地図データタイルにアクセスすることができ、先読み地図データタイルはブロック1406によって決定された1組の二次的な経路のうちの1つに対応する。より具体的には、先読み地図データタイルは、二次的な経路のうちの1つを包含する地域に対応し得る。1つ以上の二次的な経路を包含する地域の大きさは、上述したものと類似の手法で決定され得る。一実施形態では、ブロック1406は、1組の二次的な経路を生成するために用いられるデータを先読みし得る。例えば、先読みデータのうちのいくつかは、1つ以上の二次的な経路を画定する1組の道路のそれぞれを生成するために用いられ得る。上述したように、この地図データは、経路をレンダリングするために用いられた地図データタイルと同一かもしくは類似のものであってもよく、またはまったく異なる形を取ってもよい。ブロック1410は次に、一次的および二次的な経路の先読み地図データタイルを検索し、受け取り、送信し、および/またはクライアントデバイスのローカルメモリの中へと格納し得る。上述したように、先読みは、地図データを利用するレンダリングまたは表示機能の起動の前に、その地図データを検索することができるか、または地図データに別様にアクセスすることを伴い得る。先読みは、クライアントデバイスで二次的な経路のうちの任意のものを生成する機能の起動の前に、その地図データを検索することができるか、または地図データに別様にアクセスすることを伴い得る。また、二次的な経路を包含する地域を決定する方法は、
図9および
図13に図示したものなどの上述の技術のうちの任意のものを用いて実装され得る。
図14Bのブロックのうちのすべてが、本明細書に記載の先読み技術と一貫するように実施されることを必要とされるわけではないことに留意されたい。その上、ブロックが実施される順番は、記載の技術と依然として一貫する一方で、改められ得る。
【0059】
一実施形態では、1404のブロック1402のうちの1つは、第1の経路に対応する地図データについての要求を送信することを含み得る。ブロック1406は、この要求を送信しているコンピュータの外部のサーバデバイスで実施され得る。ブロック1410は次に、ブロック1402で第1の経路について地図データのみが要求された場合、サーバから第1の経路および二次的な経路についての地図データを受け取り得る。
【0060】
図15は、1組の二次的な経路を図示したものである。一次的な経路1501は、起点1502および目的地1504を有するように示される。二次的な経路1510、1520、および1530は、一次的な経路1501のための戻り経路を表し得る。この場合、1組の二次的な経路1510、1520、1530は、一次的な経路の起点 1502および目的地1504が入れ替えられた反転した端点を有することになる。一次的な経路の通り道が、戻り経路にとっての実現可能な通り道でない場合があり、よっていくつかの事例では、同一の一次的な経路が戻り経路でない場合があることに留意されたい。これは、例えば、一次的な経路が1つ以上の一方通行の道を伴うときに事実となり得る。一実施形態では、1組の戻り経路は、物理的に、または合法的に移動できる1組の実現可能な通り道のみを含み得る。
【0061】
図15は、表示されることができる異なる種類または区分の戻り経路を図示したものである。経路1510などのくつかの戻り経路は、1組の戻り経路についての2つの端点の間の、距離が最短または最小の通り道である通り道を含み得る。2つ以上の追加的な短距離通り道が決定され得る。追加的な短距離経路は、単に同一の目的地1504へ代替的な経路を表し得る。経路1520は、短距離経路(例えば、経路1510に距離が類似する)でない場合がある。経路1520は、交通の最も少ない経路を表し得る。例えば、経路1520はより長い経路であり得るが、過去または現在のデータが、この経路が経路1510などの1つ以上の最も距離が短い経路よりも交通量が少ないということを示し得る。
【0062】
二次的な経路は、戻り経路の端点をつなぐために用いられる道路の種類によって区分けされ得る。概して、道路を等級分けするために、速度格付けが用いられ得る。例えば、他のより大きな道路(例えば、幹線道路)が高速な道路であると見なされる一方で、いくつかの道路はより幅が狭く、通行がより容易でなく、これがこれらの道路を遅いと見なさせる。加えて、道路の予測される速度は、これらの道路の既知の掲示された速度制限に基づき得る。これらの場合、1組の関連付けられる経路は、その経路の総距離に関わらず、その経路のために指定されたまたは決定された高速の道路に基づいて決定され得る。他の二次的な経路は、ユーザプロファイルに基づく道路または通り道のセグメントを含み得る。例えば、二次的な経路は、ユーザによって頻繁に巡回される1つ以上の通り道セグメントを含むように決定され得る。これは、ユーザがこれらの通り道セグメントをよく知っているため、いくつかの事例においてユーザにとって有用であり得る。
【0063】
図15は、別の戻り経路1530が最も距離が短い、最も交通量の少ない、または最も高速な通り道に基づかない場合があることを図示したものである。経路1530は、優先地点1532または対象となる地点に基づいて決定され得る。対象となる地点(優先地点)は、地図作成アプリケーションによって、または上述したようにユーザ入力または選好に基づいて、自動的に決定され得る。経路1530の対象となる地点は、例えば湖1532であり得る。湖1532は、例えば、地図作成データベースから受け取った既定の地図データに基づいて、高い優先度を割り当てられることができ、または、この湖は、ユーザのプロファイルに基づいて、対象となる地点としてプログラムされてもよい。一実施形態に従い、戻り経路は、対象となる地点の近くまたはその中を通過するように企図または決定され得る。
【0064】
図16は、一次的な経路1601の付近の1組の経路内の優先地点1621〜1625を図示したものである。この場合、二次的な経路は、一次的な経路1601に沿った地点から対象となる地点1621〜1625から決定され得る。いくつかの状況において、一次的な経路に沿った地点からの対象となる地点1631〜1635への経路は、対象となる地点から一次的な経路へと戻る同一の経路であり得る。他の状況において、これは事実でない場合がある。
図16は、対象となる地点1631〜1635への単一の経路のみが事前に決定され得る実施形態を図示したものである。これは、例えば、ユーザがこの対象となる地点を最終目的地であると決定するときには意図的である。いくつかの実施形態では、プロセッサ負荷を低減するため、および/または帯域幅消費を低減するため、対象となる地点で終了する単一の経路のみが表示され得る。これは、経路の優先度に加えて、対象となる地点の優先度に基づいて行われ得る(以下で検討される)。
【0065】
追加的な経路(図示せず)は、一次的な経路のコースを外れた地点(例えば、対象となる地点への通り道の起点地点)へ帰る対象となる地点から計算され得る。代替的に、別の経路は、コースを外れた地点とは異なる、経路に沿った地点へと帰る対象となる地点から決定され得る。これは、例えば、一次的な経路の目的地または起点のより近くへと誘導するより効率的な経路が存在するときに表示され得る。代替的に、対象となる地点からの経路は、第2の対象となる異なる地点で終了し得る。アクセスおよび表示され得る種類の二次的な経路のうちのいくつかでしかない。
【0066】
優先度は、1組の1組の可能性のある二次的な経路のうちのそれぞれに割り当てられ得る。二次的な経路の優先度は、二次的な経路の経路情報へのアクセスの見込みに基づき得る。具体的には、優先度は、二次的な経路に対応する地図データへのアクセスを求める機能をユーザが起動し得る見込みを表し得る。起動機能は、例えば、進路変更毎の命令が生成されること、その経路のための地図タイルデータを表示することなど求める機能であり得る。アクセスの見込みは、例えば、経路または経路の一部分(例えば、経路の1組の通り道セグメント)へのアクセスを起動する平均数および時間の分析を含む、動作中のシステムの測定基準に基づいて決定され得る。アクセス測定基準は、ユーザまたは1群のユーザに特異的であり得る。アクセスの見込みは、ユーザのために、またはユーザによって生成されるユーザパターンまたはプロファイルに基づき得る。ユーザパターンは、ユーザが頻繁に行く場所、好む経路セグメント、および他の選好についての情報を提供する使用パターンを含み得る。経路上の地点に割り当てられた優先度に類似して、上述したように、優先度は、フラグ、属性、または経路上の地点に関連付けられる他のインジケータを用いて決定された経路に割り当てられ得る。さらに、優先度属性は単に高値または低値(すなわち、優先度ありまたは優先度なし)であることができ、または高と低の値の間で測られた値であり得る。
【0067】
図17は、
図15および
図16に示したものなどの二次的な経路の複数の異なる区分を示す表を図示したものである。二次的な経路の一区分は、対象となる経路の戻り経路または地点を含む。戻り経路の下位区分は、距離が最小の経路、交通ベースの経路、または道路の種類経路(例えば、道路の速度格付けに基づく)を含み得る。経路の別の区分は、対象となる地点への、またはその周りの経路であり得る。対象となる地点から戻る経路は、いくつか挙げると、一次的な経路からコースを外れた地点へと戻る、一次的な経路の目的地の起点へと戻る、一次的な経路に沿った、コースを外れた地点から離れた地点へと戻る、または第2の対象となる地点へ行く経路を含み得る。もちろん、他の経路の区分が含まれることができ、本明細書に記載の本方法およびシステムと依然として一貫する。
図17に図示されるように、経路1702の優先度は、経路1704の区分に基づいて割り当てられ得る。例えば、1つ以上の距離が最小の戻り経路1706には、区分5(5が最高の優先度)が割り当てられ得る。1つ以上の区分の経路にもまた同一の優先度が割り当てられ得る。
【0068】
図18は、一次的な経路、または二次的な経路の優先度および/または二次的な経路の区分に基づいて二次的な経路に対応する先読み地図データに関連付けられる、1組の二次的な経路を決定するために用いられ得る、方法、ルーチン、または工程1800のフロー図またはフローチャートを図示したものである。一実施形態によれば、ブロック1802は、決定され得る二次的な経路の区分または種類を決定し得る。可能な区分決定方法のいくつかのみを挙げれば、区分は、ルックアップテーブルから既定であるか、またはユーザプロファイルに基づいて生成され得る。
【0069】
ブロック1804は、経路の区分に優先度を割り当て得る。ブロック1806は、どの組の経路区分に二次的な経路を生成するかを決定し得る。例えば、優先度が高いまたは低い(例えば、0または1)場合、ブロック1806は、高い優先度を有する区分に属する経路のみが処理され得ることを決定し得る。代替的に、優先度が例えば、1〜5の値の尺度値である場合、ブロック1806は、閾値である3の優先度(例えば、優先度範囲3〜5、5が最高)を有する区分のみが処理されることになるような優先度範囲を単に決定し得る。ブロック1808は次に、それぞれの区分および副区分について、生成または含める対象の経路数を決定し得る。区分毎の経路の総数は、それぞれの区分の優先度に基づいて決定され得る。例えば、優先度1の経路の数について既定の制限があり、優先度2の経路の数について既定の制限があり得る。代替的に、それぞれの区分のための経路の数は、不変の制限(例えば、すべての優先度3の経路区分は2つの生成された経路に制限される)を有し得る。ブロック1810は次に、ブロック1806の経路区分のそれぞれについて、ブロック1808によって決定される、それぞれの区分の経路の数まで、経路情報を生成または決定し得る。
【0070】
ブロック1804〜1806の優先度および区分およびブロック1808の制限/閾値は、一実施形態によれば、現在のシステム条件によって調整されるか、これに基づき得る。システム条件は、現在のプロセッサ負荷または現在の帯域幅であり得る。例えば、プロセッサ負荷が閾値を上回り、帯域幅が閾値を下回る状況では、高い優先度の割り当ては、より少ない区分に制限され得る。同様に、優先度範囲は、決定され処理される二次的な経路選定データの量を制限するため、縮小され得る。例えば、優先度範囲が3を上回る優先度に制限されている場合、プロセッサ負荷が高く帯域幅が低いとき、優先度範囲は4を上回る優先度に変更され得る。
【0071】
別の実施形態では、区分毎の二次的な経路の数は、帯域幅および/またはプロセッサの考慮に基づいて調整され得る。例えば、初期帯域幅またはプロセッサ条件は、距離が最小の戻り経路、交通が最速の経路、および景色のよい経路の区分のみが可能であるとき、区分毎に2つの経路を可能にし得る。閾値を上回るプロセッサ負荷の増加または帯域幅を下回る帯域幅の縮小のうちの1つまたは両方が発生したというように条件が変更されたとき、区分毎の経路の数は1つに制限され得る。加えて、距離が最小のおよび最速の交通経路のみが処理されることが決定され得る。
【0072】
別のシステム条件は、クライアントデバイスの現在の位置であり得る。例えば、ユーザが今経路に沿ったどこか遠い場所にいる場合、起点または目的地からの一次的な経路が従前にすでに決定されている場合がある。この場合、例えば、現在地に近い、対象となる地点への追加的な二次的な経路が決定されることができるか、またはこれらの二次的な経路の優先度が高まり得る。他の区分についての追加的な優先度は、それに応じて調整され得る。同様に、閾値もまた現在地に基づいて調整され得る。
【0073】
別の実施形態によれば、1組の二次的な経路に対応する地図データ(例えば、地図データタイル)のアクセス、送信、検索は、二次的な経路の優先度に基づく順序で実施され得る。概して、アクセス、送信、検索の順序(例えば、ブロック1410の)は、二次的な経路が決定されアクセスされる(例えば、ブロック1406〜1408)順序と重なり得る。経路が優先度に基づかない順序で生成される場合、二次的な経路に対応する地図データが優先度に基づいてアクセス、送信、または検索されることができ、および経路が生成される順番とは異なり得る。これは、二次的な経路に対応する先読みデータタイルを集め、二次的な経路に対応する先読み地図データタイルの組を優先度の順番に放出するバッファを用いて実装され得る。別の実施形態では、決定された二次的な経路の部分に対応する地図データタイルのみがアクセス、送信、または検索され得る。この部分は、プロセッサ負荷または現在の帯域幅などの上述のシステム条件に基づいて決定され得る。この実施形態は、1組の二次的な経路がすでに決定された後に、プロセッサ負荷または帯域幅が変更されるという状況において有益であり得る。
【0074】
上述したように、地図データは、帯域幅使用およびプロセッサ負荷の縮小をもたらす、および応答回数の増加をもたらすいくつもの方途で操作され得る。加えて、重要な高い優先度のデータが先読みされる優先度および速度は、ユーザコンピューティングデバイスが地図サーバに接続することができないときに、ユーザコンピューティングデバイスがオフラインの地図作成への対応可能性を提供することを可能にし得る。一実施形態では、本方法およびシステムは、第1の経路に対応する地図データ(例えば、地図データタイル)を決定することができ、次に追加的な地図データ検索について1つ以上の二次的な経路を決定することができる。別の実施形態によれば、本方法およびシステムは、第1の一次的な経路を受け取り、経路に関する地図データの種類に基づいて、先読みのためのデータの優先付けを始めることができる。この工程と同時にまたは続いて、追加的な二次的な経路が生成され、先読みへの考慮もされ得る。一次的および二次的な経路の表示をレンダリングするために必要とされる地図データタイルの量、ならびに二次的な経路の種類の数は、システム条件(例えば、帯域幅プロセッサ負荷)またはユーザプロファイル/選好情報(例えば、使用パターンを含む)に基づいて調整され得る。
【0075】
本明細書の全体にわたり、複数のインスタンスが、単一のインスタンスとして記載のコンポーネント、動作、または構成を実装し得る。1つ以上の方法の個々の動作が別個の動作として図示され、記載されているが、個々の動作のうちの1つ以上が一斉に実施されることができ、いかなるものも動作が図示の順番に実施されることを必要としない。構成例において別個のコンポーネントとして表される構造および機能性は、組み合わされた構造またはコンポーネントとして実装され得る。同様に、単一のコンポーネントとして表される構造および機能性は、別個のコンポーネントとして実装され得る。これらおよび他の変形、修正、追加、および改良は、本明細書に記載の主題の範囲内である。
【0076】
例えば、ネットワーク25は、LAN、MAN、WAN、モバイル、有線または無線のネットワーク、私的ネットワーク、または仮想私的ネットワークのうちの任意の組み合わせを含み得るがこれらに制限されない。その上、記載を簡素および明確にするために、4つのクライアントデバイスのみが
図1に図示されているが、任意の数のクライアントコンピュータまたは表示デバイスが対応可能とされ、およびサーバ14と通信していることが可能であることが理解されるものとする。
【0077】
加えて、とある実施形態は、本明細書において論理またはいくつものコンポーネント、モジュール、または機構を含むものとして記載されている。モジュールは、ソフトウェアモジュール(例えば、コードが機械可読媒体上または送信信号の中に具現化される)またはハードウェアモジュールのどちらかを成し得る。ハードウェアモジュールは、一定の動作を実施する能力がある有形のユニットであり、一定の手法で構成または配置され得る。一実施形態の例では、1つ以上のコンピュータシステム(例えば、スタンドアロン、クライアントまたはサーバコンピュータシステム)またはコンピュータシステムの1つ以上のハードウェアモジュール(例えば、プロセッサまたは1群のプロセッサ)は、本明細書に記載のとおり、一定の動作を実施するように動作するハードウェアモジュールとしてソフトウェア(例えば、アプリケーションまたはアプリケーション部分)によって構成され得る。
【0078】
種々の実施形態では、ハードウェアモジュールは、機械的または電子的に実装され得る。例えば、ハードウェアモジュールは、一定の動作を実施するために、永久的に構成される(例えば、などの特定用途向けプロセッサとして、フィールドプログラマブルゲートアレイ(FPGA)または特定用途向け集積回路(ASIC)として)専用回路または論理を備え得る。ハードウェアモジュールはまた、一定の動作を実施するために、ソフトウェアによって一時的に構成されるプログラマブル論理または回路(例えば、汎用プロセッサまたは他のプログラマブルプロセッサの内部に包含される)を備え得る。ハードウェアモジュールを、機械的に、専用のおよび永久に構成された回路の中に、または一時的に構成された回路の中に(例えば、ソフトウェアによって構成される)実装する決定は、費用および時間の考慮に委ねられることが認識されるものとする。
【0079】
したがって、ハードウェアという用語は、有形の構成要素を包含するように、一定の手法で動作するように、または本明細書に記載の一定の動作を実施するように物理的に構成された、永久に構成された(例えば、配線接続された)、または一時的に構成された(例えば、プログラムされた)構成要素であるように理解されるべきである。ハードウェアモジュールが一時的に構成された(例えば、プログラムされた)実施形態を考慮して、ハードウェアモジュールのそれぞれは、任意の一時点において、構成もインスタンス化もされる必要がない。例えば、ハードウェアモジュールがソフトウェアを用いて構成される汎用プロセッサを含む場合、汎用プロセッサは、異なる時間に各々の異なるハードウェアモジュールとして構成され得る。ソフトウェアはしたがって、例えば、ある時点では特定のハードウェアモジュールを成すように、異なる時点では異なるハードウェアモジュールを成すようにプロセッサを構成することができる。
【0080】
ハードウェアおよびソフトウェアモジュールは、他のハードウェアおよび/またはソフトウェアモジュールに情報を提供し、および他のハードウェアおよび/またはソフトウェアモジュールから情報を受け取ることができる。したがって、記載されたハードウェアモジュールは、通信可能に連結されているものとして扱われ得る。複数個のかかるハードウェアまたはソフトウェアモジュールが同時に存在する場合、通信はハードウェアまたはソフトウェアモジュールを接続する単一の送信(例えば、適当な回路およびバスで)を通して達成され得る。複数個のハードウェアモジュールまたはソフトウェアが異なる時間に構成またはインスタンス化される実施形態において、かかるハードウェアまたはソフトウェアモジュールの間の通信は、例えば、複数個のハードウェアまたはソフトウェアモジュールがアクセスを有するメモリ構造の中の情報の格納または検索によって達成され得る。例えば、1つのハードウェアまたはソフトウェアモジュールが動作を実施し、その動作の生産物を、この1つのハードウェアまたはソフトウェアモジュールに通信可能に連結されたメモリデバイスの中に格納し得る。さらなるハードウェアまたはソフトウェアモジュールが次に、その後になって、このメモリデバイスにアクセスして格納された生産物を検索および処理し得る。ハードウェアおよびソフトウェアモジュールはまた、入力または出力デバイスとの通信を起動することができ、かつ資源(例えば、情報のまとまり)上で動作することができる。
【0081】
本明細書に記載の方法の例の種々の動作は、少なくとも部分的に、関係する動作を実施するように一時的に構成された(例えば、ソフトウェアによって)または永久的に構成された1つ以上のプロセッサによって実施され得る。一時的に構成されていようと永久的に構成されていようと、かかるプロセッサは1つ以上の動作または機能を実施するように動作するプロセッサ実装モジュールを成し得る。本明細書において言及されるモジュールは、いくつかの実施形態の例では、プロセッサ実装モジュールを含み得る。
【0082】
同様に、本明細書に記載の方法またはルーチンは、少なくとも部分的にプロセッサで実装されていることができる。例えば、方法の動作のうちの少なくともいくつかはプロセッサまたはプロセッサで実装されたハードウェアモジュールによって実施され得る。動作のうちの一定のものの実施は、単一の機械内に常駐するもののみでなく、いくつもの機械に展開された1つ以上のプロセッサの間に分散されてもよい。いくつかの実施形態の例では、プロセッサまたは複数のプロセッサは、単一の場所(例えば、家庭環境内、職場環境内、またはサーバファームとして)に置かれ得るが、一方他の実施形態では、複数のプロセッサは、いくつもの場所に分散され得る。
【0083】
1つ以上のプロセッサは、「クラウドコンピューティング」環境の中の関係する動作の実施に対応可能とするように、または「サービス型ソフトウェア」(SaaS)として動作し得る。例えば、動作のうちの少なくともいくつかは、1群のコンピュータ(機械の例はプロセッサを含む)によって実施されることができ、これらの動作がネットワーク(例えば、インターネット)を介して、および1つ以上の適当なインターフェース(例えば、アプリケーションプログラムインターフェース(API))を介してアクセス可能である。
【0084】
動作のうちの一定のものの実施は、動作の一定のものの実施は、単一の機械内に常駐するもののみでなく、いくつもの機械に展開された1つ以上のプロセッサの間に分散されてもよい。いくつかの実施形態の例では、1つ以上のプロセッサまたはプロセッサ実装モジュールは、単一の地理的場所(例えば、家庭環境内、職場環境内、またはサーバファーム内)に置かれ得る。他の実施形態の例では、1つ以上のプロセッサまたはプロセッサ実装モジュールは、いくつもの地理的場所にわたって分散され得る。
【0085】
本明細書のいくつかの部分は、機械メモリ(例えば、コンピュータメモリ)内にビットまたは2値デジタル信号として格納されるデータ上での動作のアルゴリズムまたは記号的表現の観点で表される。これらのアルゴリズムまたは記号的表現は、データ処理技術の当業者によって、作業の実体を他の当業者に伝達するために用いられる技術の例である。本明細書で用いられる場合、「アルゴリズム」または「ルーチン」とは、自己無撞着な一連の動作、または所望の結果へと導く類似の処理である。この文脈において、アルゴリズム、ルーチン、および動作は、物理的分量の物理的処置を伴う。典型的に、しかし必ずしもそうではなく、かかる分量は、機械によって格納、アクセス、送信、結合、比較、または別様に処置される能力がある電気的、磁気的、または光学的信号の形を取り得る。主に一般的使用上の理由で、かかる信号を「データ」、「コンテンツ」、「ビット」、「値」、「要素」、「記号」、「文字」、「用語」、「番号」、「数字」、および類似物などの語句を用いて称することは、時に好都合である。これらの語句は、しかしながら、単に好都合な標識であり、適当な物理的分量に関連付けられる。
【0086】
特に別様に表明されない限り、「処理する」、「演算する」、「計算する」、「決定する」、「表す」、「表示する」、および類似物などの語句を用いた本明細書における検討は、メモリ(例えば、揮発性メモリ、不揮発性メモリ、またはこれらの組み合わせ)、レジスタ、または情報を受け取り、格納し、送信し、または表示する他の機械コンポーネントのうちの1つ以上の内部で物理的(例えば、電子的、磁気的、または光学的)な量として表されるデータを操作または変換する機械(例えば、コンピュータ)の行為または処理を指し得る。
【0087】
本明細書で用いられる場合、「一実施形態(one embodiment)」または「一実施形態(an embodiment)」へのあらゆる参照は、その実施形態と関係して記載される特定の要素、機能、構造、または特性が、少なくとも1つの実施形態に含まれることを意味する。本明細書の種々の場所において出現する「一実施形態では」という語句は、必ずしもすべて同一の実施形態を参照しない。
【0088】
いくつかの実施形態は、「連結される」および「接続される」という表現およびこれらの派生語を用いて記載され得る。例えば、いくつかの実施形態は、2つ以上の要素が物理的または電気的に直接接触していることを示す「連結される」という用語を用いて記載され得る。「連結される」という用語は、しかしながら、2つ以上の要素が互いに直接接触していないが、なお互いに協働またはやりとりすることをも意味し得る。本実施形態は、この文脈に限定されない。
【0089】
本明細書で用いられる場合、「含む(comprises)」、「含む(comprising)」、「含む(includes)」、「含む(including)」、「有する(has)」、「有する(having)」という用語またはこれらのあらゆる他の変形は、非排他的な包括を網羅することを意図する。例えば、要素の一覧を含む工程、方法、項目、または装置は、必ずしもこれらの要素のみに制限されず、かかる工程、方法、項目、または装置に明示的に列挙または内在されない他の要素を含み得る。さらに、明示的に反対に述べられない限り、「または(or)」は包括の「または」を指し、排他の「または」ではない。例えば、条件AまたはBは、Aが真(または存在する)でありBが偽(または存在しない)である、Aが偽(または存在しない)でありBが真(または存在する)である、ならびにAおよびBの両方が真(または存在する)のうちのいずれの1つによっても満たされる。
【0090】
加えて、「1つの(a)」または「1つの(an)」の使用は、本明細書に記載の実施形態の要素およびコンポーネントについて記載するために採用される。これは単に便宜のため、および本明細書の大まかな要旨を付与するために行われるものである。本願は、1つまたは少なくとも1つを含むように読み取られるべきであり、また単数は、そうでないことが意味されていることが明白でない限り、複数を含む。
【0091】
またさらに、図面は説明のみを目的として、地図レンダリングシステムの好適な実施形態を描写している。当業者は、本明細書において説明される構造および方法の代替的な実施形態が、本明細書に記載の原理を逸脱することなく採用され得ることを、以下の検討から容易に認識するであろう。
【0092】
本開示を閲読すれば、当業者は、本明細書において開示される原理を用いて地図または他の種類の画像をレンダリングするためのシステムおよび工程のためのさらに追加的な代替の構造的および機能的設計を理解するであろう。よって、特定の実施形態および適用が説明および記載されたが、開示された実施形態は本明細書に開示される正確な構造およびコンポーネントに制限されないことが理解されるものとする。当業者には明白な種々の修正、変更および変形は、添付の特許請求の範囲の精神および範囲を逸脱することなく、本明細書において開示される方法および装置の配置、動作および詳細においてなされ得る。