(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-03-04
(45)【発行日】2022-03-14
(54)【発明の名称】ロードマップを生成するためのシステムおよび方法
(51)【国際特許分類】
G01C 21/26 20060101AFI20220307BHJP
【FI】
G01C21/26 A
(21)【出願番号】P 2020548762
(86)(22)【出願日】2018-03-13
(86)【国際出願番号】 CN2018078832
(87)【国際公開番号】W WO2019173965
(87)【国際公開日】2019-09-19
【審査請求日】2020-09-28
(73)【特許権者】
【識別番号】516317573
【氏名又は名称】ベイジン ディディ インフィニティ テクノロジー アンド ディベロップメント カンパニー リミティッド
(74)【代理人】
【識別番号】100120891
【氏名又は名称】林 一好
(74)【代理人】
【識別番号】100165157
【氏名又は名称】芝 哲央
(74)【代理人】
【識別番号】100205659
【氏名又は名称】齋藤 拓也
(74)【代理人】
【識別番号】100126000
【氏名又は名称】岩池 満
(74)【代理人】
【識別番号】100185269
【氏名又は名称】小菅 一弘
(72)【発明者】
【氏名】リュウ ジーダン
【審査官】佐藤 吉信
(56)【参考文献】
【文献】特開2017-009618(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G01C 21/00-21/36
G08G 1/00-99/00
(57)【特許請求の範囲】
【請求項1】
ナビゲーション端末と通信するように構成されたリモートナビゲーションデバイスにおいて、
ロードマップを生成するための命令のセットを含む少なくとも1つの記憶媒体と、
前記記憶媒体と通信している少なくとも1つのプロセッサであって、前記命令のセットを実行しているとき、前記少なくとも1つのプロセッサは、
前記ナビゲーション端末に関するナビゲーションルートと、前記ナビゲーション端末の現在のロケーションを取得し、
前記ナビゲーション端末の前記ナビゲーションルートと前記現在のロケーションに基づいて、前記ナビゲーション端末の前記現在のロケーションに関連づけられたロードネットワークデータを取得し、前記ロードネットワークデータは、複数のリンクと複数のノードを含み、前記複数のノードの各々は、1つまたは複数のリンクに接続され、前記1つまたは複数のリンクは、少なくとも1つのタイプのリンクを含み、
前記複数のノードの各々に関するレベルを決定し、
前記複数のノードの各々に関して、前記ノードのレベルに基づいて、前記ノードに接続された前記少なくとも1つのタイプのリンクに関する1つまたは複数のターゲットリンクを決定し、
前記ターゲットリンクに基づいてロードマップを生成する、
ように指示され
、
前記複数のノードの各々に関する前記レベルを決定するために、前記少なくとも1つのプロセッサは、
前記複数のノードから前記ナビゲーションルート上の複数のノードを取得し、
前記ナビゲーションルート上の前記複数のノードから1つのノードを基準ノードとして指定し、
前記ナビゲーションルート上の前記複数のノードの各々に関して、前記ノードと前記基準ノードとの間の距離に基づいて前記ノードのレベルを決定し、
前記複数のノードから前記ナビゲーションルート上に無い複数のノードを取得し、
前記ナビゲーションルート上に無い複数のノードに関して、前記ナビゲーションルート上の前記ノードの前記レベル、および前記複数のノードに関係するトポロジー関係に基づいて前記ノードのレベルを決定する、
ようにさらに指示される、リモートナビゲーションデバイス。
【請求項2】
前記ナビゲーションルート上の複数のノードの各々に関して、前記ノードと前記基準ノードとの間の前記距離に基づいて前記ノードの前記レベルを決定するために、前記少なくとも1つのプロセッサは、
前記ノードと前記基準ノードとの間の前記距離が、第1のしきい値よりも大きいかどうかを判断し、
前記ノードと前記基準ノードとの間の前記距離が、前記第1のしきい値以下であると判断したことに応答して、前記ノードの前記レベルを第1の値として決定し、
前記ノードと前記基準ノードとの間の前記距離が、前記第1のしきい値より大きいと判断することに応答して前記ノードの前記レベルを第2の値として決定する、
ようにさらに指示される、請求項
1に記載のリモートナビゲーションデバイス。
【請求項3】
前記ノードの前記レベルに基づいて、前記ノードに接続された1つのタイプのリンクに関する前記1つまたは複数のターゲットリンクを決定するために、前記少なくとも1つのプロセッサはさらに、
前記ノードの前記レベルが前記第1の値かどうかを判断し、
前記ノードの前記レベルが前記第1の値であるとの判断に応答して、
前記ターゲットリンクとして前記ノードに接続された前記タイプのリンクのすべてを決定する、
ようにさらに指示される、請求項
2に記載のリモートナビゲーションデバイス。
【請求項4】
前記ノードの前記レベルに基づいて前記ノードに接続された1つのタイプのリンクの1つまたは複数のターゲットリンクを決定するために、前記少なくとも1つのプロセッサは、さらに、
前記ノードの前記レベルが前記第1の値であるかどうかを判断し、
前記ノードの前記レベルが前記第1の値ではないという前記判断に応答して、前記タイプを有する唯一のリンクがあるかどうかを判断し、
前記タイプを有する唯一のリンクがあるとの判断に応答して、前記リンクを前記タイプの前記ターゲットリンクとして指定し、
前記タイプを有する唯一のリンクが無いとの判断に応答して、前記ノードに接続された前記タイプのリンクの各々に関するスコアを決定し、
前記ノードに接続された前記タイプのリンクに関連するスコアに基づいてターゲットリンクを決定する、
ようにさらに指示される、請求項
2に記載のリモートナビゲーションデバイス。
【請求項5】
前記タイプのリンクに関連する前記スコアに基づいて前記ターゲットリンクを決定するために、前記少なくとも1つのプロセッサは、
前記スコアのうちの最も高いスコアが、第2のしきい値より大きいかどうかを判断し、
前記最も高いスコアが、前記第2のしきい値よりも大きいとの判断に応答して、前記最も高いスコアを有するリンクを前記タイプの前記ターゲットリンクとして指定する、
ようにさらに指示される、請求項
4に記載のリモートナビゲーションデバイス。
【請求項6】
前記タイプのリンクに関連する前記スコアに基づいて前記ターゲットリンクを決定するために、前記少なくとも1つのプロセッサは、さらに、
前記最も高いスコアが、前記第2のしきい値以下であるとの判断に応答して、前記第2のしきい値より大きいスコアを有するシミュレートされたリンクを生成し、
前記シミュレートされたリンクを前記タイプの前記ターゲットリンクとして指定する、
ようにさらに指示される、請求項
5に記載のリモートナビゲーションデバイス。
【請求項7】
前記ターゲットリンクに基づいて、前記ロードマップを生成するために、前記少なくとも1つのプロセッサは、さらに、
前記ナビゲーション端末の前記現在のロケーションに関連づけられた転送マトリクスを決定し、
前記転送マトリクスおよび前記ターゲットリンクに基づいて、前記ロードマップを生成する、
ようにさらに指示される、請求項1乃至
6のいずれか一項に記載のリモートナビゲーションデバイス。
【請求項8】
前記少なくとも1つのプロセッサは、さらに、
前記ナビゲーション端末の前記現在のロケーションおよび前記転送マトリクスに基づいて、前記ロードマップ上の前記ナビゲーション端末の識別ロケーションを決定し、前記ナビゲーション端末の識別は、前記識別ロケーション上に設定される、請求項
7に記載のリモートナビゲーションデバイス。
【請求項9】
少なくとも1つのプロセッサと、少なくとも1つの記憶媒体と、ネットワークに接続された通信プラットフォームを有するコンピューティングデバイス上にインプリメントされたロードマップを生成する方法において、
ナビゲーション端末のためのナビゲーションルートと前記ナビゲーション端末の現在のロケーションを取得するステップと、
前記ナビゲーションルートと、前記ナビゲーション端末の前記現在のロケーションとに基づいて、前記ナビゲーション端末の前記現在のロケーションに関連づけられたロードネットワークデータを取得するステップであって、前記ロードネットワークデータは、複数のリンクと複数のノードを含み、前記複数のノードの各々は、1つまたは複数のリンクに接続され、前記1つまたは複数のリンクは、少なくとも1つのタイプのリンクを含む、取得するステップと、
前記複数のノードの各々に関するレベルを決定するステップと、
前記複数のノードの各々に関して、前記ノードの前記レベルに基づいて、前記ノードに接続された少なくとも1つのタイプのリンクに関する1つまたは複数のターゲットリンクを決定するステップと、
前記ターゲットリンクに基づいてロードマップを生成するステップと、
を備え
、
前記複数のノードの各々に関する前記レベルを決定するステップは、
前記複数のノードから前記ナビゲーションルート上の複数のノードを取得するステップと、
前記ナビゲーションルート上の前記複数のノードから1つのノードを基準ノードとして指定するステップと、
前記ナビゲーションルート上の前記複数のノードの各々に関して、前記ノードと前記基準ノードとの間の距離に基づいて、前記ノードのレベルを決定するステップと、
前記複数のノードから前記ナビゲーションルート上に無いノードを取得するステップと、
前記ナビゲーションルート上に無い前記複数のノードの各々に関して、前記ナビゲーションルート上の前記ノードの前記レベルと、前記複数のノードに関連するトポロジー関係に基づいて、前記ノードのレベルを決定するステップと、
を含む、ロードマップを生成する方法。
【請求項10】
前記ナビゲーションルート上の前記ノードの各々に関して、前記ノードと前記基準ノードとの間の前記距離に基づいて、前記ノードの前記レベルを決定するステップは、
前記ノードと前記基準ノードとの間の前記距離が、第1のしきい値より大きいかどうかを判断するステップと、
前記ノードと前記基準ノードとの間の前記距離が、前記第1のしきい値以下との判断に応答して、前記ノードの前記レベルを第1の値として決定するステップと、
前記ノードと前記基準ノードとの間の前記距離が、前記第1のしきい値より大きいとの判断に応答して、前記ノードの前記レベルを第2の値として決定するステップと、
を含む、請求項
9に記載の方法。
【請求項11】
前記ノードの前記レベルに基づいて、前記ノードに接続された1つのタイプのリンクに関連する、前記1つまたは複数のターゲットリンクを決定するステップは、
前記ノードの前記レベルが、前記第1の値であるかどうかを判断するステップと、
前記ノードの前記レベルが、前記第1の値であるとの判断に応答して、
前記ターゲットリンクとして前記ノードに接続されたすべてのタイプの前記リンクを決定するステップと、
前記ノードの前記レベルが前記第1の値ではないとの決定に応答して、
前記タイプを有する唯一のリンクがあるかどうかを判断するステップと、
前記タイプを有する唯一のリンクがあるとの判断に応答して、
前記リンクを前記タイプのターゲットリンクとして指定するステップと、
前記タイプを有する唯一のリンクが無いとの判断に応答して、
前記ノードに接続された前記タイプのリンクの各々に関するスコアを決定するステップと、
前記ノードに接続された前記タイプのリンクに関連する前記スコアに基づいてターゲットリンクを決定するステップと、
を含む、請求項
10に記載の方法。
【請求項12】
前記ターゲットリンクに基づいて、前記ロードマップを生成するステップは、
前記ナビゲーション端末の前記現在のロケーションに関連づけられた転送マトリクスを決定するステップと、
前記転送マトリクスおよび前記ターゲットリンクに基づいて前記ロードマップを生成するステップと、を含む、請求項
9乃至
11のいずれか一項に記載の方法。
【請求項13】
ロードマップを生成するための命令の少なくとも1つのセットを備え、コンピューティングデバイスの少なくとも1つのプロセッサにより実行されると、前記命令の少なくとも1つのセットは、前記少なくとも1つのプロセッサに、
ナビゲーション端末のためのナビゲーションルートと、前記ナビゲーション端末の現在のロケーションを取得し、
前記ナビゲーションルートと前記ナビゲーション端末の前記現在のロケーションとに基づいて、前記ナビゲーション端末の前記現在のロケーションに関連づけられたロードネットワークデータを取得し、前記ロードネットワークデータは、複数のリンクと複数のノードを含み、前記複数のノードの各々は、1つまたは複数のリンクに接続され、前記1つまたは複数のリンクは、少なくとも1つのタイプのリンクを含み、
前記複数のノードの各々に関するレベルを決定し、
前記複数のノードの各々に関して、前記ノードの前記レベルに基づいて、前記ノードに接続された少なくとも1つのタイプのリンクに関する1つまたは複数のターゲットリンクを決定し、
前記ターゲットリンクに基づいてロードマップを生成する、ように指示され
、
前記複数のノードの各々に関する前記レベルを決定するために、前記少なくとも1つのプロセッサは、
前記複数のノードから前記ナビゲーションルート上の複数のノードを取得し、
前記ナビゲーションルート上の前記複数のノードから1つのノードを基準ノードとして指定し、
前記ナビゲーションルート上の前記複数のノードの各々に関して、前記ノードと前記基準ノードとの間の距離に基づいて前記ノードのレベルを決定し、
前記複数のノードから前記ナビゲーションルート上に無い複数のノードを取得し、
前記ナビゲーションルート上に無い複数のノードに関して、前記ナビゲーションルート上の前記ノードの前記レベル、および前記複数のノードに関係するトポロジー関係に基づいて前記ノードのレベルを決定する、
ようにさらに指示される、非一時的コンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【0001】
この開示は、一般に、オンデマンドサービスを提供するためのシステムおよび方法に関し、特に、ロードマップを生成するためのシステムおよび方法に関する。
【背景技術】
【0002】
ウェブマッピングサービスおよびナビゲーションサービスのような多くのロケーションベースのサービスおよび/またはアプリケーションは、ロードマップ、特に電子ロードマップを必要とする。しかしながら、ユーザがナビゲーションのために電子ロードマップをアクセスすると、時々、マップは、ユーザがナビゲーション結果を正しく処理することから気を散らす可能性のある無関係なロードのような何らかの干渉情報を含む過度の情報を示す場合がある。従って、完全性、妥当性、間欠性の包括的な考察に基づいてロードマップを生成するためのシステムおよび方法を提供することが望ましい。
【発明の概要】
【0003】
この発明の一態様によれば、ナビゲーション端末と通信するように構成されたリモートナビゲーションデバイスは、少なくとも、ロードマップを生成するための命令のセットを含む少なくとも1つの記憶媒体と、前記記憶媒体と通信している少なくとも1つのプロセッサを含むことができ、前記少なくとも1つのプロセッサは、前記ナビゲーション端末のためのナビゲーションルートと、前記ナビゲーション端末の現在のロケーションを取得し、前記ナビゲーションルートと前記ナビゲーション端末の前記現在のロケーションに基づいて前記ナビゲーションの前記現在ロケーションと関連付けられたロードネットワークデータを取得し、前記ロードネットワークデータは、複数のリンクと複数のノードを含み、前記複数のノードの各々は、1つまたは複数のリンクに接続され、前記1つまたは複数のリンクは、少なくとも1つのタイプのリンクを含む、前記複数のノードの各々に関するレベルを決定し、前記複数のノードの各々に関して、前記ノードに接続された1つまたは複数のロードリンクを決定し、前記複数のノードの各々に関して、前記ノードの前記レベルに基づいて、記ノードに接続された前記少なくとも1つのタイプのリンクに関して、記1つまたは複数のターゲットリンクを決定し、前記ターゲットリンクに基づいてロードマップを生成するように指示されることができる。
【0004】
この発明の他の態様によれば、ロードマップを生成する方法は、少なくとも1つのプロセッサと、少なくとも1つのコンピュータ可読媒体と、ネットワークに接続された通信プラットフォームを有するコンピューティングデバイス上でインプリメントすることができる。この方法は、1つまたは複数の以下の動作を含むことができる。ナビゲーション端末のためのナビゲーションルートと、前記ナビゲーション端末の現在のロケーションを取得するステップと、前記ナビゲーションルートと、前記ナビゲーション端末の前記現在のロケーションとに基づいて、記ナビゲーション端末の前記現在のロケーションに関連付けられたロードネットワークデータを取得するステップであって、前記ロードネットワークデータは、複数のリンクと複数のノードを含み、前記複数のノードの各々は、1つまたは複数のリンクに接続され、前記1つまたは複数のリンクは、少なくとも1つのタイプのリンクを含む、前記複数のノードの各々に対するレベルを決定するステップと、前記複数のノードの各々に関して、前記ノードのレベルに基づいて、記ノードに接続された前記少なくとも1つのタイプのリンクに関する1つまたは複数のリンクを決定するステップと、前記ターゲットリンクに基づいてロードマップを生成するステップ。
【0005】
この開示のさらに他の態様によれば、非一時的コンピュータ可読媒体が提供される。非一時的コンピュータ可読媒体は、ロードマップを生成するための少なくとも1つの命令セットを含むことができ、コンピュータデバイスの少なくとも1つのプロセッサにより実行されると、前記少なくとも1つの命令セットは、前記少なくとも1つのプロセッサに、前記ナビゲーション端末のためのナビゲーションルートと、前記ナビゲーション端末の現在の位置を取得し、前記ナビゲーションルートと、前記ナビゲーション端末の前記現在のロケーションと、に基づいて前記ナビゲーション端末の前記現在のロケーションに関連づけられたロードネットワークデータを取得し、前記ロードネットワークデータは、複数のリンクと複数のノードを含み、前記複数のノードの各々は、1つまたは複数のリンクに接続され、前記1つまたは複数のリンクは、少なくとも1つのタイプのリンクを含む、前記複数のノードの各々に関するレベルを決定し、前記複数のノードの各々に関して、前記ノードに接続された1つまたは複数のロードリンクを決定し、前記複数のノードの各々に関して、前記ノードの前記レベルに基づいて前記ノードに接続された、記少なくとも1つのタイプのリンクに関する1つまたは複数のターゲットリンクを決定し、前記ターゲットリンクに基づいてロードマップを生成する、ように指示する。
【0006】
いくつかの実施形態において、前記複数のノードの各々に対するレベルを決定することは、前記複数のノードから前記ナビゲーションルート上の複数のノードを取得することと、前記ナビゲーションルート上の前記複数のノードから1つのノードを基準ノードとして指定することと、前記ナビゲーションノード上の前記複数のノードの各々に関して、前記ノードと前記基準ノードとの間の距離に基づいて前記ノードのレベルを決定することと、前記複数のノードから前記ナビゲーションルート上でないノードを取得することと、前記ナビゲーションルート上でない前記ノードの各々に関して前記ナビゲーションルート上の前記ノードの前記レベルと、前記複数のノードに関連するトポロジーとに基づいて前記ノードのレベルを決定することと、を含むことができる。
【0007】
いくつかの実施形態において、前記ナビゲーションルート上の前記ノードの各々に関して、前記ノードと前記基準ノードとの間の距離に基づいて前記ノードの前記レベルを決定することは、前記ノードと前記基準ノードとの間の前記距離が、1のしきい値より大きいか否かを判断することと、前記ノードと前記基準ノードとの間の前記距離が、記第1のしきい値以下であると判断することに応答して、前記ノードの前記レベルを第1の値であると判断することと、前記ノードと前記基準ノードとの間の前記距離が、記第1のしきい値より大きいと判断することに応答して、記ノードの前記レベルを第2の値であると判断することと、を含むことができる。
【0008】
いくつかの実施形態において、内部リンク、ラウンドアバウトリンク(roundabout link)、ショートリンクにより接続された前記複数のノードの2つのノードの前記レベルは、同じである。いくつかの実施形態において、前記ノードの前記レベルに基づいて前記ノードに接続された1つのタイプのリンクに関する前記1つまたは複数のターゲットリンクを決定することは、前記ノードの前記レベルが前記第1の値かどうかを判断することと、前記ノードの前記レベルが前記第1の値であるとの判断に応答して、前記ノードに接続されたすべてのタイプのリンクをターゲットリンクとして判断することと、を含むことができる。
【0009】
いくつかの実施形態において、前記ノードの前記レベルに基づいて、記ノードに接続された1つのタイプのリンクに関する、前記1つまたは複数のターゲットリンクを決定することは、前記ノードの前記レベルが、前記第1の値であるかどうかを判断することと、前記のノードの前記レベルが、前記第1の値ではないとの判断に応答して、前記タイプを有する1つのみのリンクがあるかどうかを判断することと、前記タイプを有する1つのみのリンクがあるとの判断に応答して、前記リンクを前記タイプのターゲットリンクとして指定することと、前記タイプを有するリンクが1つでないとの判断に応答して、前記ノードに接続された前記リンクのタイプの各々のスコアを決定することと、前記ノードに接続された前記リンクのタイプに関連する前記スコアに基づいて1つのターゲットリンクを決定することと、を含むことができる。
【0010】
いくつかの実施形態において、前記リンクの前記タイプに関連する前記スコアに基づいて前記ターゲットリンクを決定することは、前記複数のスコアのうちの最も高いスコアが、第2のしきい値より大きいかどうかを判断することと、前記最も高いスコアが前記第2のしきい値より大きいと判断することに応答して、前記最も高いスコアに対応する前記リンクを前記ターゲットリンクと指定することと、を含むことができる。
【0011】
いくつかの実施形態において、リンクのタイプに関連したスコアに基づいて前記ターゲットリンクを決定することは、前記最も高いスコアが、前記スコアしきい値以下であるとの判断に応答して、前記第2のしきい値より大きいスコアを有するシミュレートされたリンクを生成することと、前記シミュレートされたリンクを、前記ターゲットリンクとして指定することと、を含むことができる。
【0012】
いくつかの実施形態において、前記ターゲットリンクに基づいて、前記ロードマップを生成することは、前記ナビゲーション端末の前記現在のロケーションに関連づけられた転送マトリクスを決定することと、前記転送マトリクスと前記ターゲットリンクとに基づいて、前記ロードマップを生成することと、を含むことができる。
【0013】
いくつかの実施形態において、前記方法はさらに、前記ナビゲーション端末の前記ロケーションおよび前記転送マトリクスに基づいて、前記ロードマップ上の前記ナビゲーション端末の識別ロケーションを決定し、前記ナビゲーション端末の識別は、前記識別ロケーション上に設定される。この開示はさらに例示実施形態の観点からさらに記載される。この開示の実施形態の以下のおよび他の態様は、添付図面とともに以下の詳細な記述を読むとき、さらに明らかとなる。
【図面の簡単な説明】
【0014】
【
図1】この開示のいくつかの実施形態に従う例示オンデマンドサービスシステムを示す概略図である。
【
図2】この開示のいくつかの実施形態に従うコンピューティングデバイスの例示ハードウェアおよび/またはソフトウェアコンポーネントを図示する概略図である。
【
図3】この開示のいくつかの実施形態に従うモバイルデバイスの例示ハードウェアおよび/またはソフトウェアコンポーネントを図示する概略図である。
【
図4】この開示のいくつかの実施形態に従う例示処理エンジンを図示するブロック図である。
【
図5】この開示のいくつかの実施形態に従うクライアントとサーバとの間の例示通信プロセスを図示する概略図である。
【
図6】この開示のいくつかの実施形態に従うロードマップを生成するための例示プロセスおよび/または方法のフローチャートである。
【
図7】この開示のいくつかの実施形態に従うノードのレベルを決定するための例示プロセスおよび/または方法のフローチャートである。
【
図8】この開示のいくつかの実施形態に従う、ノードのための1つまたは複数のターゲットリンクを決定するための例示プロセスおよび/または方法のフローチャートである。
【
図9】この開示のいくつかの実施形態に従うノードのための1つまたは複数のターゲットリンクを決定するための他の例示プロセスおよび/または方法のフローチャートである。
【
図10A】この開示のいくつかの実施形態に従うモジュールを生成する例示ロードマップを図示するブロック図である。
【
図10B】この開示のいくつかの実施形態に従うロードマップを生成するための例示プロセスおよび/または方法のフローチャートである。
【
図11】この開示のいくつかの実施形態に従う例示ロードネットワークデータを図示する。
【
図12A】この開示のいくつかの実施形態に従う例示内部リンク、例示ラウンドアバウトリンク、および例示ショートリンクを図示する。
【
図12B】この開示のいくつかの実施形態に従う例示内部リンク、例示ラウンドアバウトリンク、および例示ショートリンクを図示する。
【
図12C】この開示のいくつかの実施形態に従う例示内部リンク、例示ラウンドアバウトリンク、および例示ショートリンクを図示する。
【
図13A】この開示のいくつかの実施形態に従う例示ロードネットワークを図示する。
【
図13B】この開示のいくつかの実施形態に従う例示ロードネットワークを図示する。
【
図14】この開示のいくつかの実施形態に従う例示ロードマップを図示する。
【発明を実施するための形態】
【0015】
以下の記述は、任意の当業者がこの開示を制作し使用することを可能にするために提供され、特定のアプリケーションおよびその要件のコンテキストにおいて提供される。開示された実施形態の種々の変更は、当業者に容易に明白であり、ここに定義される一般的原理は、この開示の精神と範囲から逸脱することなく他の実施形態およびアプリケーションに適用可能である。したがって、この開示は、図示実施形態に限定されず、特許請求の範囲に一致する最も広い範囲が与えられるべきである。
【0016】
ここに使用される用語は、特定の例示実施形態の目的のためだけであり、限定することを意図したものではない。ここに使用されるように、単数形の「一つ(a)」、「一つ(an)」、および「その(the)」は、そうではないことをコンテキストが明白に示していないかぎり、複数形も含むことを意図している。さらに、用語「備える(comprising)」、「含む(includes)」、および/または「含む(including)」は、明細書で使用されるとき、述べられた特徴、整数、ステップ、動作、エレメントおよび/またはコンポーネントの存在を規定するが、1つまたは複数の他の特徴、整数、ステップ、動作、エレメント、コンポーネントおよび/またはそれらのグループの存在または追加を排除するものではない。
【0017】
この開示のこれらのおよび他の特徴および特性、並びに、動作の方法および構造の関連するエレメントの機能、およびパーツの組み合わせおよび製造の経済性は、すべてがこの明細書の一部を形成する添付図面(複数の場合もある)を参照して以下の記述を考慮すると、より明白になり得る。しかしながら、図面(複数の場合もある)は、例示および記述の目的のためであり、この開示の範囲を限定することを意図したものではないことは、明白に理解される。図面は、縮尺どおりではないことが理解される。
【0018】
この開示で使用されるフローチャートは、この開示のいくつかの実施形態に従うシステムがインプリメントする動作を例示する。フローチャートの動作は、順番どおりでなくともインプリメントすることができる。反対に、動作は、逆の順番であるいは同時にインプリメントすることができる。さらに、1つまたは複数の他の動作は、フローチャートに追加することができる。1つまたは複数の動作は、フローチャートから取り除くことができる。
【0019】
さらに、この開示のシステムと方法は、主に、オンラインカーヘイリングサービス(online car hailing service)に関して記載するけれども、これは、1つの例示実施形態にすぎないことに留意する必要がある。この開示のシステムおよび方法は、任意の他の種類のオンデマンドサービスに適用することができる。例えば、この開示のシステムまたは方法は、陸上、海洋、宇宙等またはそれらの任意の組み合わせを含む異なる輸送システムに適用可能である。輸送システムの乗り物は、タクシー、プライベートカー、ヒッチ、バス、列車、新幹線、高速鉄道、地下鉄、船、飛行機、宇宙船、熱気球、無人乗り物等、またはそれらに任意の組み合わせを含むことができる。輸送システムは、また、管理および/または配送を適用する任意の輸送システム、例えば、エクスプレスを送信および/または受信するためのシステムを含むことができる。この開示のシステムまたは方法のアプリケーションシナリオは、ウェブページ、ブラウザのプラグイン、クライアント端末、カスタムシステム(custom system)、内部解析システム、人工知能ロボット等、またはそれらの任意の組み合わせを含むことができる。
【0020】
この開示における「ノード」という用語は、ロードネットワーク内の複数のロードの接続または結合を表すポイントを指すことができる。例えば、ロードAは、交差点でロードBと交差し、その交差点に対応するポイントは、ロードネットワーク内のノードとして指定することができる。この開示における「リンク」という用語は、ロードネットワークにおけるロードまたはロードの一部を表すラインを指すことができる。リンクは、異なるノードを接続することができる。例えば、ロードAは、ロードBと交差点Cで交差し、ロードDと交差点Eで交差する。交差点CとEの間のロードAのセクションに対応するラインは、リンクとして指定することができる。この開示における「ターゲットリンク」という用語は、ユーザがノードに接続された、1つまたは複数のリンクに基づいて、自分のナビゲーション中に、判断するのに有用であると判断したリンクを指すことができる。この開示の「シミュレートされたリンク」という用語は、現実のロードネットワークに存在せず、この開示のシステムによりシミュレートされたリンクを指すことができる。例えば、ノードに接続された複数のリンクの各々が、評価後に要件を満足しない場合、「シミュレートされたリンク」を生成することができ、ターゲットリンクとして指定することができる。
【0021】
この開示のロケーションは、ナビゲーション端末に埋め込まれた測位技術により獲得することができる。本開示で使用される測位技術には、全地球測位システム(GPS)、全地球航法衛星システム(GLONASS)、コンパス航法システム(COMPASS)、ガリレオ測位システム、準天頂衛星システム(QZSS)、 無線忠実度(Wi-Fi(商標))測位技術など、またはそれらの任意の組み合わせを含むことができる。上述した測位技術の1つまたは複数は、この開示において交換可能に使用することができる。
【0022】
この開示の一態様は、ロードマップを生成するシステムおよび方法に関する。この開示によれば、システムは、ナビゲーション端末の現在のロケーションに基づいて複数の交差点(ノード)の各々に関するレベルを決定し、次に前記交差点に関連づけられたターゲットロードセグメント(リンク)を決定することができる。次にシステムは、ターゲットロードセグメントに基づいてロードマップを生成し、ナビゲーションサービスを提供することができる。ターゲットリンクは、リンクのレベルに基づいて決定されるので、サービス要求者により正確なロードマップを提供することができる。いくつかの実施形態において、ユーザがノードに近づくと、ターゲットリンクのみがユーザに表示される。そのような、さらにフォーカスされたナビゲーションサービスは、ユーザの注意散漫を防ぎ、ユーザによる意思決定を改善することができる。
【0023】
オンラインオンデマンドサービスは、ポストインタネット時代に根付いた新興サービスであることに留意する必要がある。それは、ポストインタネット時代に成長する可能性のあるサービス要求者に、技術的ソリューションを提供する。インターネット以前の時代では、ナビゲーションルートをサービス要求者に提供することは不可能であり、特に、複数のノードのレベルに基づいて正確なロードマップを、サービス要求者に提供することは不可能である。それゆえ、このソリューションは、ポストインタネット時代に生じた問題のみに、深く根ざすとともに、解決することを目的としている。
【0024】
図1は、この開示のいくつかの実施形態に従うロードマップを生成する例示システム100のブロック図である。例えば、システム100は、ルートナビゲーション、カーヘイリングサービス(car hailing service)、運転手サービス(chauffeur services)、車両配達サービス、カープーリングサービス、バスサービス、ドライバ採用サービス(driver hiring services)、およびシャトルサービス等のような輸送サービスのためのオンライン輸送サービスプラットフォームであり得る。システム100は、サーバ110、ナビゲーション端末120、ストレージデバイス130、ネットワーク140、情報ソース150を含むことができる。サーバ110は、処理エンジン112を含むことができる。
【0025】
サーバ110は、ナビゲーション端末120からの要求、例えば、マップ表示要求に関する情報および/またはデータを処理するように構成することができる。例えば、サーバ110は、ナビゲーション端末120から要求を受信し、その要求を処理してナビゲーション端末120に関するロードマップを生成することができる。いくつかの実施形態において、サーバ110は、単一サーバまたはサーバグループであり得る。サーバグループは、中央制御、または分散制御であってよい(例えば、サーバ110は、分散システムであり得る)。いくつかの実施形態において、サーバ110は、ローカルまたはリモートであってよい。例えば、サーバ110は、ネットワーク140を介してナビゲーション端末120および/またはストレージデバイス130に記憶された情報および/またはデータをアクセスすることができる。他の例として、サーバ110は、ナビゲーション端末120および/またはストレージデバイス130に直接接続することができ、記憶された情報および/またはデータをアクセスすることができる。いくつかの実施形態において、サーバ110は、クラウドプラットフォームにインプリメントすることができる。単なる例として、クラウドプラットフォームは、プライベートクラウド、パブリッククラウド、ハイブリッドクラウド、コミュニティクラウド、分散クラウド、インタークラウド、マルチクラウド等またはそれらの任意の組み合わせを含むことができる。いくつかの実施形態において、サーバ110は、この開示の
図2に示す、1つまたは複数のコンポーネントを有するコンピューティングデバイス上に、インプリメントすることができる。
【0026】
いくつかの実施形態において、サーバ110jは、処理エンジン112を含むことができる。処理エンジン112は、要求に関する情報および/またはデータを処理し、この開示に記載した1つまたは複数の機能を実行することができる。例えば、処理エンジン112は、ナビゲーション端末120から要求を取得し、ロードマップを生成することができる。いくつかの実施形態において、処理エンジン112は、1つまたは複数の処理エンジン(例えば、シングルコア処理エンジン(複数の場合もある)またはマルチコアプロセッサ(複数の場合もある))を含むことができる。単なる例示として、処理エンジン112は、中央処理装置(CPU)、特定用途集積回路(ASIC)、特定用途命令セットプロセッサ(ASIP)、グラフィクス処理ユニット(GPU)、物理処理ユニット(PPU)、デジタルシグナルプロセッサ(DSP)、フィールドプログラマブルゲートアレイ(FPGA)、プログラマブルロジックデバイス(PLD)、コントローラ、マイクロコントローラユニット、縮小命令セットコンピュータ(RISC)、マイクロプロセッサ等、またはそれらの任意の組み合わせを含むことができる。
【0027】
いくつかの実施形態において、ナビゲーション端末120は、その要求に直接関係する個人、ツール、または他のエンティティであり得る。いくつかの実施形態において、ナビゲーション端末120は、モバイルデバイス120-1、タブレットコンピュータ120-2、ラップトップコンピュータ120-3、および自動車の内蔵デバイス120-4等、またはそれらの任意の組み合わせを含むことができる。いくつかの実施形態において、モバイルデバイス120-1は、スマートホームデバイス、ウェアラブルデバイス、スマートモバイルデバイス、バーチャルリアリティデバイス、オーグメンテッドリアリティデバイス等、またはそれらの任意の組み合わせを含むことができる。いくつかの実施形態において、スマートホームデバイスは、スマート照明デバイス、インテリジェント電気装置の制御デバイス、スマートモニタリングデバイス、スマートテレビジョン、スマートビデオカメラ、インターフォン等、またはそれらの任意の組み合わせを含むことができる。いくつかの実施形態において、ウェアラブルデバイスは、スマートブレスレット、スマート履物、スマートメガネ、スマートヘルメット、スマートウォッチ、スマート衣服、スマートバックパック、スマートアクセサリ等、またはそれらの任意の組み合わせを含むことができる。いくつかの実施形態において、スマートモバイルデバイスは、スマートフォン、パーソナルデジタルアシスタンス(PDA)、ゲームデバイス、ナビゲーションデバイス、ポイントオブセール(POS)デバイス等、またはそれらの任意の組み合わせを含むことができる。いくつかの実施形態において、バーチャルリアリティデバイスおよび/またはオーグメンテッドリアリティデバイスは、バーチャルリアリティヘルメット、バーチャルリアリティメガネ、バーチャリリアリティパッチ、オーグメンテッドリアリティヘルメット、オーグメンテッドリアリティメガネ、オーグメンテッドリアリティパッチ等、またはそれらの任意の組み合わせを含むことができる。例えば、バーチャルリアリティデバイスおよび/またはオーグメンテッドリアリティデバイスは、グーグルグラス、オキュラスリフト、ホロレンズ、ギアVR等を含むことができる。いくつかの実施形態において、自動車120-4の内蔵デバイスは、オンボードコンピュータ、オンボードテレビジョン等を含むことができる。いくつかの実施形態において、ナビゲーション端末120は、ユーザおよび/またはナビゲーション端末120の位置をつきとめるための測位技術を有したデバイスであり得る。いくつかの実施形態において、ナビゲーション端末120は、他の測位デバイスと通信してユーザおよび/またはナビゲーション端末120の位置を決定することができる。いくつかの実施形態において、ナビゲーション端末120は、サーバ110に位置情報を送信することができる。
【0028】
ストレージデバイス130は、要求に関連したデータおよび/または命令を記憶することができる。いくつかの実施形態において、ストレージデバイス130は、ナビゲーション端末120から取得/獲得したデータを記憶することができる。いくつかの実施形態において、ストレージデバイス130は、この開示で記載した例示方法を実行するためにサーバ110が実行または使用することができるデータおよび/命令を記憶することができる。いくつかの実施形態において、ストレージデバイス130は、マスストレージ、リムーバブルストレージ、ボラタイルリードアンドライトメモリ、リードオンリメモリ(ROM)等またはそれらの組み合わせを含むことができる。例示マスストレージは、磁気ディスク、光学ディスク、ソリッドステートドライブ等を含むことができる。例示リムーバブルストレージは、フラッシュドライブ、フロッピーディスク、光学ディスク、メモリカード、ジップディスク、磁気テープ等を含むことができる。例示ボラタイルリードオンリメモリは、ランダムアクセスメモリ(RAM)を含むことができる。例示RAMは、ダイナミックRAM(DRAM)、ダブルデートレート同期ダイナミックRAM(DDR SDRAM)、スタティックRAM(SRAM)、サイリスタRAM(T-RAM)、およびゼロキャパシタRAM(Z-RAM)等を含むことができる。例示ROMは、マスクROM(MROM)、プログラマブルROM(PROM)、イレーザブルプログラマブルROM(EPROM)、電気的消去可能プログラマブルROM(EEPROM)、コンパクトディスクROM(CD-ROM)、およびデジタルバーサタイルディスクROM等を含むことができる。いくつかの実施形態において、ストレージデバイス130は、クラウドプラットフォーム上にインプリメントすることができる。単なる例示として、クラウドプラットフォームは、プライベートクラウド、パブリッククラウド、ハイブリッドクラウド、コミュニティクラウド、分散クラウド、インタークラウド、マルチクラウド等、またはそれらの任意の組み合わせを含むことができる。
【0029】
いくつかの実施形態において、ストレージデバイス130は、ネットワーク140に接続され、システム100内の1つまたは複数のコンポーネント(例えば、サーバ110、ナビゲーションターミナル120)と通信することができる。システム100内の1つまたは複数のコンポーネントは、ネットワーク140を介してストレージデバイス130に記憶されたデータまたは命令にアクセスすることができる。いくつかの実施形態において、ストレージデバイス130は、システム100内の1つまたは複数のコンポーネント(例えば、サーバ110、ナビゲーション端末120)に直接接続するか、または通信することができる。いくつかの実施形態において、ストレージデバイス130は、サーバ110の一部であり得る。
【0030】
ネットワーク140は、情報および/またはデータの交換を容易にすることができる。いくつかの実施形態において、システム100の1つまたは複数のコンポーネント(例えば、サーバ110、ナビゲーション端末120、およびストレージデバイス130)はネットワーク140を介してシステム100内の他のコンポーネント(複数の場合もある)から/へ情報および/またはデータを送信および/または受信することができる。例えば、サーバ110は、ネットワーク140を介してナビゲーション端末120からサービス要求を取得/獲得することができる。いくつかの実施形態において、ネットワーク140は、任意の種類の優先または無線ネットワーク、またはそれらの任意の組み合わせであり得る。単なる例示として、ネットワーク140は、ケーブルネットワーク、有線ネットワーク、光ファイバネットワーク、遠隔通信ネットワーク、イントラネット、インターネット、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、無線ローカルエリアネットワーク(WLAN)、メトロポリタンエリアネットワーク(MAN)、ワイドエリアネットワーク(WAN)、公衆電話交換網(PSTN)、ブルートゥース(登録商標)ネットワーク、ZigBee(登録商標)ネットワーク、近距離無線通信(NFC)ネットワーク、モバイル通信のグローバルシステム(GSM)ネットワーク、符号分割多重アクセス(CDMA)ネットワーク、時分割多重アクセス(TDMA)ネットワーク、汎用パケット無線サービス(GPRS)ネットワーク、GSMイボリューションのエンハンスとデータレート(EDGE)ネットワーク、ワイドバンド符号分割多重アクセス(WCDMA(登録商標))ネットワーク、高速ダウンリンクパケットアクセス(HSDPA)ネットワーク、ロングタームイボリューション(LTE)ネットワーク、ユーザデータグラムプロトコル(UDP)ネットワーク、送信制御プロトコル/インターネットプロトコル(TCP/IP)ネットワーク、ショートメッセージサービス(SMC)ネットワーク、無線アプリケーションプロトコル(WAP)ネットワーク、ウルトラワイドバンド(UWB)ネットワーク、赤外線等またはそれらの任意の組み合わせを含むことができる。いくつかの実施形態において、システム100は、1つまたは複数のネットワークアクセスポイントを含むことができる。例えば、システム110は、システム100の1つまたは複数のコンポーネントがネットワーク140に接続されてデータおよび/または情報を交換することができる基地局および/または無線アクセスポイント140-1、140-2、・・・のような有線または無線ネットワークアクセスポイントを含むことができる。
【0031】
情報ソース150は、システム100のための他の情報を提供するように構成されたソースであり得る。情報ソース150は、システム100に、道路名、道路の幅情報、道路の長さ情報、道路の方向、レーン情報等のようなマップおよび/またはロード情報を提供することができる。情報ソース150は、単一の中央サーバ、通信リンクを介して接続された複数のサーバ、または複数のパーソナルデバイスでインプリメントすることができる。情報ソース150が複数のパーソナルデバイスでインプリメントされると、パーソナルデバイスは、例えば、テキスト、音声、イメージ、またはビデオをクラウドサーバにアップロードすることにより、(例えば、「ユーザ生成コンテンツ」と呼ばれる)コンテンツを生成することができる。情報ソース150は、複数のパーソナルデバイスおよび/またはクラウドサーバにより生成することができる。
【0032】
図2は、この開示のいくつかの実施形態によって、サーバ110、ナビゲーション端末120、ストレージデバイス130、および/または、情報ソース150をインプリメントすることができるコンピューティングデバイス200の例示ハードウェアおよびソフトウェアコンポーネントを図示する概略図である。特定のシステムは、機能ブロック図を用いて1つまたは複数のユーザインタフェースを含むハードウェアプラットフォームを説明することができる。コンピュータは、汎用または特定機能を備えたコンピュータであり得る。両方のタイプのコンピュータは、この開示のいくつかの実施形態に従って任意の特定のシステムをインプリメントするように構成することができる。コンピューティングデバイス200は、この開示に開示された1つまたは複数の機能を実行する任意のコンポーネントをインプリメントするように構成することができる。例えば、コンピューティングデバイス200は、ここに記載するようにシステム100の任意のコンポーネントをインプリメントすることができる。
図1および2において、単に便宜的のために、ただ一つのそのようなコンピュータデバイスが示されている。この出願の出願時において、当業者は、ここに記載するようなオンデマンドサービスに関するコンピュータ機能は、処理負荷を分散させるために、多数の類似のプラットフォーム上に分散する態様でインプリメントすることができることを理解するであろう。
【0033】
コンピューティングデバイス200は、例えば、データ通信を容易にするために、ネットワークへ/から接続されたCOMポート250を含むことができる。コンピューティングデバイス200は、またプログラム命令を実行するために、1つまたは複数のプロセッサ(例えば、ロジック回路)の形態の、プロセッサ(例えば、プロセッサ220)を含むことができる。例えば、プロセッサは、インタフェース回路と処理回路を含むことができる。インタフェース回路は、バス210から電気信号を受信するように構成することができ、電気信号は、処理回路が処理するための構造化データおよび/または命令を符号化する。処理回路は、論理計算を行い、その後、結論、結果および/または電気信号として符号化された命令を決定することができる。次に、インタフェース回路は、バス210を介して処理回路から電子信号を送信することができる。
【0034】
例示コンピューティングデバイスは、コンピューティングデバイスにより処理および/または送信される種々のデータファイルのための、内部通信バス210、プログラムストレージ、および、例えば、ディスク270、リードオンリメモリ(ROM)230、またはランダムアクセスメモリ(RAM)240を含む、異なる形態のデータストレージを含むことができる。例示コンピューティングデバイスは、またプロセッサ220により実行される、ROM230、RAM240、および/または他の種類の非一時的記憶媒体に記憶されたプログラム命令を含むことができる。この開示の方法および/または処理は、プログラム命令としてインプリメントすることができる。コンピューティングデバイス200は、コンピュータと他のコンポーネントとの間の入出力をサポートするI/Oコンポーネント260を含む。コンピューティングデバイス200は、ネットワーク通信を介してプログラミングおよびデータを受信することができる。
【0035】
単に例示のために、ただ一つのCPUおよび/またはプロセッサが
図2に示されている。複数のCPU及び/又はプロセッサも考えられ、従って、この開示で記載した1つのCPUおよび/またはプロセッサにより実行される動作および/またはステップは、または複数のCPUおよび/またはプロセッサにより一緒にまたは別個に実行することもできる。例えば、この開示において、コンピューティングデバイス200のCPUおよび/またはプロセッサがステップAおよびステップBの両方を実行する場合、ステップAとステップBはまた、コンピューティングデバイス200において2つの異なるCPUsおよび/またはプロセッサを一緒にまたは別個にして実行することもできる(例えば、第1のプロセッサがステップAを実行し、第2のプロセッサがステップBを実行するか、あるいは、第1と第2のプロセッサが一緒にステップAとステップBを実行する)。
【0036】
図3は、この開示のいくつかの実施形態に従って、ナビゲーション端末120をインプリメントすることができる例示モバイルデバイス300の例示ハードウェアおよび/またはソフトウェアコンポーネントを図示する概略図である。
図3に示すように、モバイルデバイス300は、通信プラットフォーム310、ディスプレイ320,グラフィクス処理ユニット(GPU)330、中央処理装置(CPU)340、I/O350、メモリ360、及びストレージ390を含むことができる。CPU340は、インタフェース回路とプロセッサ220に類似した処理回路を含むことができる。いくつかの実施形態において、これに限定されないが、システムバス又はコントローラ(図示せず)を含む任意の他の適切なコンポーネントもモバイルデバイス300に含めることができる。いくつかの実施形態において、モバイルオペレーティングシステム370(例えば、iOS(登録商標)、アンドロイド(登録商標)において、ウインドウズフォーン(登録商標))および1つまたは複数のアプリケーション380は、CPU340により実行されるようにストレージ390からメモリ360にロードすることができる。アプリケーション380は、モバイルデバイス300上のサービス提供システムに基づくロケーションからのサービス要求、または他の情報に関する情報を受信およびレンダリングするためのブラウザまたは任意の他の適切なモバイルアプリケーションを含むことができる。情報ストリームとのユーザ対話は、I/O350を介して達成され、ネットワーク140を介してシステム100の処理エンジン112および/または他のコンポーネントに提供することができる。
【0037】
上述した種々のモジュール、ユニットおよびそれらの機能をインプリメントするために、コンピュータハードウェアプラットフォームは、1つまたは複数のエレメント(例えば、
図2のサーバ110のモジュール)のハードウェアプラットフォームとして使用することができる。これらのハードウェアエレメント、オペレーティングシステム、およびプログラム言語は、一般的であるため、当業者は、これらの技術に精通しており、この開示に記載した技術に従ってルート計画に必要な情報を提供することができるとみなすことができる。ユーザインタフェースを有するコンピュータは、パーソナルコンピュータ(PC)、または他のタイプのワークステーションまたは端末デバイスとして使用することができる。適切にプログラムされた後、ユーザインタフェースを有するコンピュータは、サーバとして使用することができる。当業者は、また、この種のコンピュータデバイスの構造、プログラム、または汎用動作に精通していると考えることができる。従って、図面に対する追加の説明は記載しない。
【0038】
図4は、いくつかの実施形態に従う例示プロセッサ220を図示するブロック図である。プロセッサ220は、情報取得モジュール410、レベル決定モジュール420、ターゲットリンク決定モジュール430、およびロードマップ生成モジュール440を含むことができる。モジュールは、プロセッサ220のすべてまたは一部のハードウェア回路であり得る。モジュールは、処理エンジンにより読まれ、または実行されるアプリケーション、または命令のセットとしてインプリメントすることもできる。さらに、モジュールは、ハードウェア回路およびアプリケーション/命令の任意の組み合わせであり得る。例えば、モジュールは、プロセッサがアプリケーション/命令のセットを実行しているとき、プロセッサ220の一部であり得る。
【0039】
情報取得モジュール410は、ナビゲーション端末120のナビゲーションルートと、ナビゲーション端末120の現在ロケーション、およびナビゲーションルートとナビゲーション端末120の現在のロケーションに基づいて、ナビゲーション端末120の現在ロケーションに関連づけられたロードネットワークデータ等、またはそれらの任意の組み合わせを取得することができる。ロードネットワークデータは、複数のリンクと複数のノードを含む。複数のノードの各々は、1つまたは複数のリンクに接続することができる。リンクは、先行リンク(preceding link)と後続リンク(succeeding link)を含むことができる。ここでは、ナビゲーション端末120を記載したが、他のネットワーク化されたナビゲーションデバイスもこの発明に使用することができることに留意する必要がある。
【0040】
レベル決定モジュール420は、ロードネットワークデータに含まれる複数のノードの各々に関するレベルを決定することができる。いくつかの実施形態において、レベル決定モジュール420は、ロードネットワークデータに関連づけられた複数のノードからナビゲーションルート上のノードを取得することができ、複数のノードから1つのノードを基準ノードとして指定することができる。ナビゲーションルート上のノードのレベルは、ノードと基準ノードとの間の距離に基づいて決定することができる。レベル決定モジュール420は、複数のノードからのビゲーションルート上に無いノードを取得することができ、ナビゲーションルート上のノードおよび複数のノードに関連するトポロジー関係に基づいてノードのレベルを決定することができる。
【0041】
ターゲットリンク決定モジュール430は、ノードに接続されたリンクに基づいて1つまたは複数のターゲットリンクを決定することができる。いくつかの実施形態において、ターゲットリンク決定モジュール430は、ノードのレベルに基づいて、1つまたは複数のターゲットリンクを決定することができる。いくつかの実施形態において、ターゲットリンク決定モジュール430は、ノードに接続されたリンクの各々のスコアを決定し、リンクのスコアに基づいて、1つまたは複数のターゲットリンクを決定することができる。いくつかの実施形態において、ターゲットリンク決定モジュール430は、シミュレートされたリンクを生成し、シミュレートされたリンクをターゲットリンクとして指定することができる。
【0042】
ロードマップ生成モジュール440は、ロードマップを生成することができる。いくつかの実施形態において、ロードマップ生成モジュール440は、ナビゲーション端末120の現在のロケーションに関連づけられた転送マトリクスを決定することができる。いくつかの実施形態において、ロードマップ生成モジュール440は、転送マトリクスおよびターゲットリンクに基づいてロードマップを生成することができる。
【0043】
プロセッサ220内のモジュールは、有線接続または無線接続を介して互いに通信するように接続することができる。有線接続は、金属ケーブル、光ケーブル、ハイブリッドケーブル等、またはそれらの任意の組み合わせであり得る。無線接続は、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、ブルートゥース(登録商標)、ZigBee(登録商用)、近距離無線通信(NFC)等、またはそれらの任意の組み合わせを含むことができる。2以上のモジュールは、1つのモジュールとして結合することができ、これらのモジュールのいずれか1つを、2以上のユニットに分割することができる。例えば、ターゲットリンク決定モジュール430は、ノードのレベルを決定することと、レベルに基づいてノードのターゲットリンクを決定することの両方を行う1つのモジュールとして、レベル決定モジュール420内に統合することができる。他の例として、レベル決定モジュール420は、それぞれ、レベル決定モジュール420の機能をインプリメントするためのルートノードレベル決定ユニットと、非ルートノードレベル決定ユニットの2つのユニットに分割することができる。
【0044】
図5は、この開示のいくつかの実施形態に従うクライアントとサーバとの間の例示処理プロセスを図示する概略図である。いくつかの実施形態において、クライアント510(例えば、ナビゲーション端末120)は、ナビゲーション要求を開始することができる。ナビゲーション要求は、クライアント510および/またはクライアント510のユーザに関連づけられたオリジナルデータを含むことができる。例えば、オリジナルデータは、ナビゲーション要求の要求時間、出発ロケーション、目的地等、またはそれらの任意の組み合わせを含むことができる。サーバ520(例えば、サーバ110)は、有線又は無線ネットワーク(例えば、ネットワーク140)を介してナビゲーション要求を取得することができる。ナビゲーション要求を取得した後、サーバ520は、種々の既存の技術によりナビゲーション要求に基づいて1つまたは複数のナビゲーションルートを決定することができる。例えば、1つまたは複数のナビゲーションルートは、Stanford Research Institute Problem Solver(STRIPS)言語、Action Description Language(ADL)、Planning Domain Definition Language(PDDL)等またはそれらの任意の組み合わせに基づいて決定することができる。他の例として、1つまたは複数のナビゲーションルートは、マシンラーニング技術、人工知能技術、テンプレートアプローチ技術、人工ポテンシャルフィールド技術、二重方向A技術、Aスターアルゴリズム、サンプルアルゴリズム等またはそれらの任意の組み合わせを含む、ルートプランニングアルゴリズムおよび/またはアルゴリズムに基づいて決定することができる。いくつかの実施形態において、サーバ520は、1つまたは複数のナビゲーションルートの各々を解析し、ナビゲーションルート上に位置する交差点の数を取得することができる。交差点毎に、サーバ520は、交差点に関連付けられたロードマップを生成するのに必要な種々のデータ、例えば、転送マトリクス、交差点に接続された複数のロードセグメント等を取得することができる。処理した後、サーバ520は、ユニフォームリソースロケータ(URL)をクライアント510に生成することができる。条件が満足されると(例えば、ナビゲーション端末120の現在のロケーションが交差点から所定の距離であるとき)、クライアント510は、要求(例えば、ハイパーテキストトランスファープロトコル(HTTP)要求)をURLに基づいてサーバ520に送信することができる。所定の距離は、1メートル乃至100メートル、例えば、10メートル、20メートル、30メートル、40メートル、50メートル、60メートル、70メートル、80メートル、または90メートルであり得る。いくつかの実施形態において、要求は、ロードマップ生成要求であり得る。サーバ520は次に、この開示のどこかに記載した、例えば、
図6乃至11、およびその記述の動作を実行することにより、種々のデータに基づいてロードマップを生成することができる。ロードマップは、クライアント510のユーザに提示するためにクライアント510に送信することができる。
【0045】
図6は、この開示のいくつかの実施形態に従うロードマップを生成するための例示プロセスおよび/または方法600のフローチャートである。いくつかの実施形態において、プロセスおよび/または方法600内の1つまたは複数のステップは、
図1に示すシステム100にインプリメントすることができる。例えば、プロセスおよび/または方法600内の1つまたは複数のステップは、命令の形態として、ストレージデバイス130および/またはストレージ(例えば、ROM230、RAM240)に記憶することができ、サーバ110(例えば、サーバ110内の処理エンジン112、またはサーバ110内の処理エンジン112のプロセッサ220)により起動および/または実行することができる。610において、プロセッサ220(例えば、情報取得モジュール410)は、ナビゲーション端末120に関するナビゲーションルートおよびナビゲーション端末120の現在のロケーションを取得することができる。
【0046】
いくつかの実施形態において、ナビゲーション端末120は、ユーザ(例えば、ドライバ)により使用される端末(例えば、スマートフォンのような無線端末)を含むことができる。ナビゲーションルートは、ナビゲーション端末120のユーザが所望のロケーション(例えば、ユーザによる旅行の目的地)に到達することができる1つまたは複数のナビゲーションオプションを含むことができる。いくつかの実施形態において、ユーザが交通状況に不慣れなとき、ナビゲーションルートは、ユーザを補助して旅行を達成することができる。いくつかの実施形態において、ナビゲーションルートは、移動方向を含むことができる。例えば、ナビゲーション端末120は、ナビゲーション端末120のユーザに、ナビゲーションルートに基づいて特定の方向に行くように思い出させることができる。
【0047】
現在のロケーションは、ナビゲーション端末120の測位ロケーションを含むことができる。いくつかの実施形態において、ナビゲーション端末120は、測位システムとの通信を介してナビゲーション端末120のロケーションを取得することができるアプリケーションを用いてインプリメントすることができる。ナビゲーション端末120は、ナビゲーション端末120の現在ロケーションを、ネットワーク140を介してプロセッサ220に送信することができる。測位技術は、全地球測位システム(GPS)技術、北斗航法システム技術、全地球航法衛星システム(GLONASS)技術、ガリレオ測位システム(Galileo)技術、準天頂衛星システム(QAZZ)技術、基地局測位技術、Wi-Fi測位技術等、またはそれらの任意の組み合わせを含むことができる。ステップ620において、プロセッサ220(例えば、情報取得モジュール410)は、ナビゲーションルートおよびナビゲーション端末120の現在のロケーションに基づいてナビゲーション端末120の現在のロケーションに関連づけられたロードネットワークデータを取得することができる。
【0048】
いくつかの実施形態において、プロセッサ220(例えば、情報取得モジュール410)は、ナビゲーション端末120の現在のロケーションと、ナビゲーションルート全部または一部を含むロードネットワークのロードネットワークデータを取得することができる。ここで使用されるように、「ロードネットワーク」という用語は、エリアよび1つまたは複数の接続された、または非接続のロードを指す。いくつかの実施形態において、ロードネットワークは、任意のサイズを有することができる。例えば、ロードネットワークは、500メートル×500メートルの正方形形状のロードネットワーク、300メートル×400メートルの方形形状のロードネットワーク、または500メートルの直径を有する円形形状のロードネットワーク等であり得る。ロードネットワークのサイズは、アプリケーションシナリオに従って変更することができ、この開示の範囲を限定することを意図していない。いくつかの実施形態において、プロセッサ220(例えば、情報取得モジュール410)は、ナビゲーション端末120の現在のロケーションまたはナビゲーション端末120の現在のロケーションに最も近いノードを、任意のサイズを有するロードネットワークのロードネットワークデータを取得するための中心として指定することができる。
【0049】
いくつかの実施形態において、ロードネットワークデータは、複数のリンクと複数のノードを含むことができる。複数のノードの各々は、1つ又は複数のリンクに接続することができる。ノードは、ロードネットワークにおけるロードの接続又は結合を表すポイントを指すことができる。例えば、ノードは、交差点を指すことができる。リンクは、ロードネットワーク内の異なるノードを接続する相互接続ラインを指すことができる。1つまたは複数のリンクは、少なくとも1つのタイプ、例えば、先行リンク、後続リンクを含むことができる。いくつかの実施形態において、ノードは、1種類のリンクにのみ関連付けることができる。例えば、ノードは、1つまたは複数の先行リンクにのみ関連付けることができる。他の例として、ノードは、1つまたは複数の後続リンクにのみ関連づけることができる。いくつかの実施形態において、ノードは、2以上の種類のリンクに関連づけることができる。例えば、ノードは、1つまたは複数の先行リンクに関連づけるだけでなく、1つまたは複数の後続リンクにも関連づけることができる。
【0050】
先行リンクおよび/または後続リンクは、ノードに接続されるリンクの属性であり得る。特定のノードに関して、先行リンクは、1つのノードから基準方向に沿った特定ノードへのリンクを指し、後続リンクは特定ノードから基準方向に沿った別のノードへのリンクを指すことができる。特定リンクの場合、特定リンクは、1つのノードの先行リンクであると同時に、他のノードの後続リンクでもあり得る。属性は、ナビゲーションルートに関する移動方向に基づいて決定することができる。例えば、
図11は、この開示のいくつかの実施形態に従う例示ロードネットワークデータを図示する。
【0051】
図11に示すように、ナビゲーションルートは、リンクL1、L2、L3およびL4を含むことができる。ナビゲーションルートの移動方向は、L1、L2、L3、L4であり得る。いくつかの実施形態において、移動方向は、基準方向として指定することができる。ノード1120は、ロードネットワークの中心であり得る。実質的にナビゲーションルートに関連する移動方向に沿ってサーチすると、ノード1130は、ノード1120からリンクL3を介して取得することができ、ノード1150は、ノード1120からリンクL7を介して取得することができる。リンクL3は、ノード1120の後続リンクであり、ノード1130の先行リンクであり得る。リンクL7は、ノード1120の後続リンクであり、ノード1150の先行リンクであり得る。同様に、リンクL4は、ノード1130の後続リンクであり、別のノード(
図11には図示されず)の先行リンクであり得、リンクL8は、ノード1150の後続リンクであり、別のノード(
図11には図示されず)の先行リンクであり得る。実質的にナビゲーションルートに関連する逆移動方向に沿ってサーチすると、ノード1110は、ノード1120からリンクL2を介して取得することができる。リンクL2は、ノード1120の先行リンクであり、ノード1110の後続リンクであり得る。同様に、リンクL1とL6は、ノード1110の先行リンクであり得る。リンクL1は、別のノード(
図11に図示せず)の後続リンクであり得る。リンクL6は、ノード1140の後続リンクであり得る。リンクL5は、ノード1140の先行リンクであり、別のノード(
図11に図示せず)の後続リンクであり得る。ステップ630において、プロセッサ220(例えば、レベル決定モジュール420)は、複数のノードの各々のレベルを決定することができる。
【0052】
ノードのレベルは、ノードがユーザに影響を与えることができる度合いを反映することができる。異なるレベルを有するノードは、ユーザへの影響度が異なるノードを表すことができる。ユーザがノードに関連して決定する際にノードが重要である場合、(例えば、右折、左折、直進)、ノードに関連した、より詳細な情報(例えば、ノードに接続されたリンク)を包括的にユーザに提示することができる。レベルは任意のフォーマットで提示することができる。いくつかの実施形態において、レベルは、数字、例えば、0、1、2、3で提示することができる。例示目的のために、ノードがユーザにとって重要であればあるほど、ノードのレベルはより高くなる。レベル0を有するノードが、ユーザにとって、レベル1を有するノードよりも重要である場合、レベル0はレベル1よりも高く、逆もまた同様である。プロセッサ220は、レベル1を有するノードよりも、レベル0を有するノードに関連づけられた、より詳細な情報を決定することができる。例えば、レベル0を有するノードに直接接続されたすべてのリンクは、ユーザに提示することができ、レベル1を有するノードに直接接続されたリンクの一部のみをユーザに提示することができる。いくつかの実施形態において、レベルは、文字フォーマット、例えば、A、B、C、Dで提示することができる。レベルAを有するノードがレベルBを有するノードよりもユーザにとってより重要である場合、レベルAは、レベルBよりも高く、逆もまた同様である。
【0053】
いくつかの実施形態において、プロセッサ220(例えば、レベル決定モジュール420)は、最初にナビゲーションルート上のノードのレベルを決定することができる。いくつかの実施形態において、プロセッサ220は、最初に基準ノードを決定し、次に、プロセッサは、ノードと基準ノードとの間のルートに沿った距離に基づいてナビゲーションルート上のノードのレベルを決定することができる。ナビゲーションルート上のすべてのノードのレベルが決定された後で、プロセッサ220(例えば、レベル決定モジュール420)は、ナビゲーションルート上のノードのレベルと、複数のノードに関連するトポロジー関連性に基づいてナビゲーションルート上に無いノードのレベルを決定することができる。複数のノードの各々のレベルの決定は、この開示の
図7および
図11、およびそれらの記述に見出すことができる。
【0054】
ステップ640において、プロセッサ220(例えば、ターゲットリンク決定モジュール430)は、ノードのレベルに基づいてノードの各々に関する少なくとも1つのタイプのリンクのための1つまたは複数のターゲットリンクを決定することができる。
【0055】
いくつかの実施形態において、異なるレベルのノードのターゲットリンクの決定のために異なる戦略を適用することができる。いくつかの実施形態において、高レベルノードの場合、プロセッサ220(例えば、ターゲットリンク決定モジュール430)は、そのノードに接続されたすべてのリンクをターゲットリンクとして決定することができる。いくつかの実施形態において、低レベルノードの場合、プロセッサ220(例えば、ターゲットリンク決定モジュール430)は、ノードに接続されたリンクの数および/またはそのノードに接続されたリンクに対して決定されたスコアに基づいて、そのノードに関する1つまたは複数のターゲットリンクを決定することができる。ターゲットリンクの決定は、この開示の
図9およびその記述に見出すことができる。ステップ650において、プロセッサ220(例えば、ロードマップ生成モジュール440)は、ターゲットリンクに基づいてロードマップを生成することができる。
【0056】
ロードマップを用いてユーザのナビゲーションニーズ(例えば、ナビゲーションルートに沿ってユーザが自分の車を運転するのを助ける)を満足させることができる。ロードマップは、2次元イメージ、3次元イメージ等であり得る。ロードマップは、複数のノードに対応する複数の交差点、およびターゲットリンクに対応する複数のロードセグメントを含むことができる。いくつかの実施形態において、ロードマップは、またナビゲーション端末120の現在のロケーションに対応することができるナビゲーション端末120の識別ロケーションを含むこともできる。いくつかの実施形態において、プロセッサ220(例えば、ロードマップ生成モジュール440)は、最初にナビゲーションルートの現在のロケーションに関連した転送マトリクスを決定することができる。例えば、転送マトリクスは、変換マトリクス、スケーリングマトリクス、回転マトリクス、対称マトリクス等、またはそれらの任意の組み合わせを含むことができる。次に、プロセッサ220(例えば、ロードマップ生成モジュール440)は、転送マトリクスおよびターゲットリンクに基づいてロードマップを生成することができる。ロードマップの生成は、この開示の
図10およびその記述に見出すことができる。
【0057】
プロセッサ600のすべてまたは一部は、リアルタイムで反復して実行することができる。例えば、プロセッサ220は、ナビゲーション端末120の現在のロケーションを取得し、規則的な時間間隔(例えば、5秒、10秒、15秒)または不規則な時間間隔でプロセス600の後続の動作を実行することができる。ノードのレベルとノード毎のターゲットリンク(複数の場合もある)は、時間に対して変更することができる。
図13Aおよび13Bは、この開示のいくつかの実施形態に従う例示ロードネットワークを図示する。
図13Aに示すように、ノード1310は、基準ノードとして指定することができ、ノード1320と1330のレベルは、それぞれ、基準ノード1310とノード1320/1330の間の距離に基づいて決定することができる。ある時間間隔の後、
図13Bに示すように、ノード1350(ノード1350は、ノード1320と同じ交差点を表すことができる)は基準ノードとして指定することができ、ノード1340(ノード1340は、ノード1310と同じ交差点を表すことができる)と1360(ノード1360は、ノード1330と同じ交差点を表すことができる)は、基準ノード1350とノード1340/1360との間の距離に基づいて決定することができる。ノードのレベルは、新しい距離に基づいて再決定することができる。いくつかの実施形態において、ノードのレベルに基づいて決定されたノードのターゲットリンク(複数の場合もある)も、変更することができる。
図13Aおよび13Bに示すように、実線により表されるラインは、ノードのターゲットリンクとして決定することができる。同じノードのターゲットリンク(複数の場合もある)は、異なる時間期間で異ならせることができ、ターゲットリンク(複数の場合もある)に基づいて生成されたロードマップは、それに対応して変更することができる。
【0058】
上述した記述は、単に、例示目的で提供されこの開示の範囲を限定することを意図していないことに留意する必要がある。当業者には、この開示の教示に基づいて複数の変形および変更を行うことができる。しかしながら、これらの変形および変更は、この開示の範囲から逸脱しない。例えば、1つまたは複数の他のオプションのステップ(例えば、記憶ステップ、事前処理ステップ)を例示プロセス/方法600のどこかに追加することができる。他の例として、例示プロセス/方法600のすべてのステップは、命令のセットを含むコンピュータ可読記憶媒体にインプリメントすることができる。命令は、電流または電子信号の形態で送信することができる。
【0059】
図7は、この開示のいくつかの実施形態に従うノードのレベルを決定するための例示プロセスおよび/または方法700のフローチャートである。いくつかの実施形態において、プロセスおよび/または方法700は、プロセスおよび/または方法600におけるステップ630において複数のノードの各々のレベルを決定するために使用することができる。いくつかの実施形態において、プロセスおよび/または方法700の1つまたは複数のステップは、
図1に示すシステム100においてインプリメントすることができる。例えば、プロセスおよび/または方法700の1つまたは複数のステップは、ストレージデバイス130および/またはストレージ(例えば、ROM230、RAM240)に、命令の形態として記憶することができ、サーバ110(例えば、サーバ110内の処理エンジン112、またはサーバ110内の処理エンジン112のプロセッサ220)により起動および/または実行することができる。
【0060】
ステップ710において、処理220(例えば、レベル決定モジュール420)は、ロードネットワークデータに関連した複数のノードからナビゲーションルート上のノードを取得することができる。いくつかの実施形態において、ナビゲーションルート上のノードは、ナビゲーションルートのリンクを接続するノードを指す事ができる。例えば、
図11に示すように、ナビゲーションルート上のノードは、ノード1110、1120、および1130を含むことができる。ステップ720において、プロセッサ220(例えば、レベル決定モジュール420)は、ナビゲーションルート上の複数のノードから1つのノードを基準ノードとして指定することができる。
【0061】
いくつかの実施形態において、プロセッサ220は、ナビゲーション端末120の現在のロケーションに近いノードを基準ノードとして指定することができる。
図11に示すように、番号1160は、ナビゲーション端末1120の現在のロケーションを表し、ノード120は、ナビゲーション端末120の現在のロケーションに近いノードである。プロセッサ220は、ノード1120を基準ノードとして指定することができる。いくつかの実施形態において、プロセッサ220は、ナビゲーション端末120に対する距離並びにナビゲーション端末120が移動している方向に基づいてノードを基準ノードとして指定することができる。例えば、ある実施形態において、旅行中にナビゲーション端末120が通過しなかった最も近いノードのみが基準ノードとして指定されるであろう。ステップ730において、プロセッサ220(例えば、レベル決定モジュール420)は、ナビゲーションルート上のノード毎にノードと基準ノードとの間の距離が第1のしきい値より大きいかどうかを判断することができる。
【0062】
いくつかの実施形態において、距離は、ノードに対応する交差点と、現実世界における基準ノードに対応する交差点との間のナビゲーションルートに沿った実際の距離を含むことができる。プロセッサ220は、測位システムと通信し、測位システムにより直接決定された距離を取得することができるか、あるいは、プロセッサ220は、ネットワーク140を介してストレージデバイス130、ROM230、および/またはRAM240に記憶されたロードネットワークの長さ情報をアクセスすることにより、距離を取得することができる。第1のしきい値は、システムに記憶された事前設定された距離値、例えば、50メートルであり得るか、あるいは、異なるアプリケーションシナリオに従って決定された距離値であり得る。ノードと基準ノードとの間の距離が第1のしきい値以下の場合、プロセス700は、ステップ740に進む。ノードと基準ノードとの間の距離が第1のしきい値より大きい場合、プロセス700は、ステップ750に進むことができる。いくつかの実施形態において、距離は、ナビゲーションルートに沿った時空間距離を含むことができ、それは、ナビゲーションルートに沿った、現実世界の距離だけでなく、そのような距離を移動するのに必要な、推定時間も考慮に入れる。現実世界の距離の重みと、推定移動時間の重みは、システムにより事前に決定することができるか、あるいは、ユーザの好みに応じて変化させることができる。
【0063】
ステップ740において、プロセッサ220(例えば、レベル決定モジュール420)は、ノードのレベルを第1の値として決定することができる。ノードのレベルは、ノードがユーザに影響を与える可能性のある度合いを反映させることができる。異なるレベルを有する複数のノードは、ユーザに影響を与える異なる度合いを有するノードを表すことができる。ユーザがノードに関連して判断するためにノードが重要である場合(例えば、右折、左折、直進)、ノード(例えば、ノードに接続されたリンク)に関連する、より詳細な情報をユーザに包括的に提示することができる。第1の値は、ノードがユーザに影響を与える最も高い度合いを指すことができる。ノード(例えば、ノードに接続されたすべてのリンク)に関連したすべての情報をユーザに提示することができる。いくつかの実施形態において、第1の値は、数字の形態で、例えば、0で提示することができる。いくつかの実施形態において、第1の値は、文字フォーマット、例えば、Aで提示することができる。第1の値は任意のフォーマットでよく、上記記載により限定されるものでは無いことに留意する必要がある。
【0064】
ステップ750において、プロセッサ220(例えば、レベル決定モジュール420)は、ノードのレベルを第2の値として決定することができる。いくつかの実施形態において、第2の値は、第1の値に比べて、ノードがユーザに影響を与える度合いが低いことを指す。いくつかの実施形態において、第2の値は、第1の値と同じフォーマットを有することができる。例えば、第1の値が0の場合、第2の値は、1、2等、0の後ろにランクされた数値形式になる。他の例として、第1の値がAの場合、第2の値は、B、Cまたはその他の文字のような、Aの後ろにランクされた文字であり得る。図示目的のために、この開示のどこかに記載したノードのレベルは、数値フォーマットであり得る。
【0065】
ステップ760において、プロセッサ220(例えば、レベル決定モジュール420)は、複数のノードから、ナビゲーションルート上に無いノードを取得することができる。例えば、
図11に示すように、ナビゲーションルート上に無いノードは、ノード1140および1150を含むことができる。ナビゲーションルート上のノードのレベルを決定した後、プロセッサ220は、ナビゲーションルート上に無いノードのレベルを決定することができる。ステップ770において、プロセッサ220(例えば、レベル決定モジュール420)は、ナビゲーションルート上のノードのレベルおよび複数のノードに関連するトポロジー関係に基づいて、ナビゲーションルート上に無いノードのレベルを決定することができる。
【0066】
複数のノードに関連するトポロジー関係は、サーチアルゴリズムに関連する可能性がある複数のノードの構造を指すことができる。プロセッサ220(例えば、レベル決定モジュール420)は、サーチの開始点として指定されたノードのレベルに基づいてノードのレベルを決定することができる。例えば、
図11に示すように、プロセッサ220は、実質的に、基準ノード1120からのナビゲーションルートに関連する移動方向に沿ってサーチすることができ、プロセッサ220は、リンクL3を介してナビゲーションルート上に無いノード1150を取得することができる。ノード1150のレベルは、基準ノード1120のレベルに基づいて決定することができる。次に、ノード1150は、サーチを継続するための新しい開始点として指定することができる。実質的に、移動方向に沿って、他のノード(
図11に図示せず)は、ノード1150からリンクL8を介して取得することができる。プロセッサ220は、ノード1150のレベルに基づいて他のノードのレベルを決定することができる。同様に、実質的に、ナビゲーションルートに関連する逆の移動方向に沿って、ノード1140は、ノード1110からリンクL6を介して取得することができ、他のノード(
図11には図示せず)は、ノード1140からリンクL6を介して取得することができる。プロセッサ220は、ノード1110のレベルに基づいて、ノード1140のレベルを決定することができる。プロセッサ220は、ノード1140のレベルに基づいて、他のノードのレベルを決定することができる。サーチアルゴリズムは、深さ優先サーチアルゴリズム、幅優先サーチアルゴリズム、双方向幅優先サーチアルゴリズム、Aスターアルゴリズム、列挙アルゴリズム、バックトラッキングアルゴリズム、モンテカルロツリーサーチアルゴリズム、ハッシュ関数等、またはそれらの任意の組み合わせを含むことができる。いくつかの実施形態において、ノードのレベルがi(例えば、0、1、2、3)であり、他のノードがナビゲーションルート上になく、サーチアルゴリズムに基づいてノードから直接取得することができる場合、他のノードのレベルは、i+1として決定することができる。例えば、ノードAのレベルが1であり、ノードBは、ナビゲーションルート上に無く、サーチアルゴリズムに基づいてノードAから直接取得でき、ノードCがナビゲーションルート上になく、サーチアルゴリズムに基づいてノードBから取得できる場合、ノードBのレベルは、2として決定することができ、ノードCのレベルは、3として決定することができる。例としてのみ提示され、ここでは、より大きな数は、より低いレベルを表す。
【0067】
いくつかの実施形態において、内部リンク、ラウンドアバウトリンク、またはショートリンクにより接続された複数のノードのうちの2つのノードのレベルは、同じである。いくつかの実施形態において、内部リンクは、交差点を表す複数のノードに接続されたリンクを指すことができる。いくつかの実施形態において、1つのリンクは1つロード、または1つのロードセグメントを表すことができる。ロードの交差点は、1つのノードにより表すことができる。ロードの長手方向に沿って障害物があり、その障害物がロードを2つの部分に分断し、各部分は、乗り物または歩行者が特定の方向にのみ移動可能である場合、ロードは2つのリンクで表すことができ、各リンクは、ロードの1つの部分を表すことができる。そのような他のノード(複数の場合もある)とのロード交差点は、2以上のノードを生成することができ、交差点は、2以上のノードにより表すことができる。
図12Aを参照すると、
図12Aは、この開示のいくつかの実施形態に従う、例示内部リンクを図示する。
図12Aに示すように、交差点は、4つのノード1210-1、1210-2、1210-3、1210-4により表すことができる。いくつかの実施形態において、4つのノードの内の任意の2つのノードを接続するリンクは、内部リンクと呼ぶことができ、4つのノードのレベルは、同じに指定することができる。いくつかの実施形態において、内部リンクを有するノードは、ロードネットワークの完全性を保証することができる。いくつかの実施形態において、環状交差点リンクは、環状交差点の入り口および/または出口に対応する2つのノードに接続されたリンクを指すことができる。
図12Bを参照すると、
図12Bは、この開示のいくつかの実施形態に従う、例示環状交差点リンクを図示する。
図12Bに示すように、環状交差点は、入り口および/または出口に対応するノード、例えば、ノード1220-1、1220-2、1220-3、220-4により4つのリンクに分割されている。4つのリンクは、環状交差点リンクと呼ぶことができる。いくつかの実施形態において、4つのノードのレベルは、同じに指定することができる。いくつかの実施形態において、ショートリンクは、しきい値の長さ未満の長さを有するロードセグメントに対応するリンクを指すことができる。しきい値の長さは、システムに記憶された事前設定された値の長さ、例えば、5メートル、10メートル、または異なるアプリケーションシナリオに従って決定された長さの値であり得る。ロードセグメントの長さがしきい値の長さ未満である場合、ロードセグメントに対応するリンクは、ショートリンクと呼ぶことができる。
図12Cを参照すると、
図12Cは、この開示のいくつかの実施形態に従う例示ショートリンクを図示する。
図12Cに示すように、ノード1230-1およびノード1230-2に接続されたリンクに対応するロードセグメントが閾値長さ未満である場合、リンクは、ショートリンクと呼ぶことができる。
【0068】
上記記載は、単に、例示目的のために提供され、この開示の範囲を限定することを意図していないことに留意する必要がある。当業者の場合、この開示の教示の下で複数の変形および変更が可能である。しかしながら、これらの変形および変更は、この開示の範囲から逸脱しない。他の例として、1つまたは複数のオプションのステップ(例えば、記憶ステップ、事前処理ステップ)を例示プロセス/方法700のどこかに追加することができる。さらに、他の例として、例示プロセス/方法700のすべてのステップは、命令のセットを含むコンピュータ可読媒体にインプリメントすることができる。命令は、電流または電子信号の形態で送信することができる。
【0069】
図8は、この開示のいくつかの実施形態に従う複数のノードの各々に関する1つ以上のターゲットリンクを決定するためのプロセスおよび/または方法800のフローチャートである。いくつかの実施形態において、プロセスおよび/または方法800の1つ以上のステップは、
図1に示すシステム100にインプリメントすることができる。例えば、プロセスおよび/または方法800の1つ以上のステップは、命令の形態として、ストレージデバイス130および/またはストレージ(例えば、ROM230、RAM240)に記憶することができ、サーバ110(例えば、サーバ110内の処理エンジン112、またはサーバ110内の処理エンジン112のプロセッサ220)により起動および/または実行することができる。
【0070】
ステップ810において、プロセッサ220(例えば、ターゲットリンク決定モジュール430)は、ノードのレベルを取得することができる。プロセッサ220(例えば、ターゲットリンク決定モジュール430)は、レベル決定モジュール420からノードのレベルを取得することができる。
【0071】
ステップ820において、プロセッサ220(例えば、ターゲットリンク決定モジュール430)は、ノードのレベルが第1の値(例えば、レベル0)かどうかを判断することができる。プロセッサ220が、ノードのレベルが第1の値であると判断した場合、プロセッサ800は、ステップ830に進む。そうでなければ、プロセッサ220がノードのレベルが第1の値ではないと判断した場合、プロセッサおよび/または方位800は、ステップ840に進む。
【0072】
第1の値に対応するレベルを有するノードは、ユーザに与える影響が最も高いので、ステップ830において、プロセッサ220(例えば、ターゲットリンク決定モジュール430)は、第1の値のレベルを有するノードに接続された1つ以上のすべてのリンクをターゲットリンクとして決定することができる。
【0073】
第1の値のレベルでないノードの場合、第1の値のレベルを有するノードに比べてユーザに与える影響が相対的に低いので、ステップ840において、プロセッサ220(例えば、ターゲットリンク決定モジュール430)は、第1の値ではないレベルのノードに接続された1つまたは複数のリンクに基づいて1つまたは複数のターゲットリンクを決定することができる。ノードに関連づけられた情報の一部をユーザに提示することができる。いくつかの実施形態において、プロセッサ220(例えば、ターゲットリンク決定モジュール430)は、第1の値ではないレベルのノードに接続された1つまたは複数のリンクの各々に関するスコアを決定することができ、ノードに接続されたリンクの数および/又はノードに接続されたリンクのスコアに基づいて、ノードに関する1つまたは複数のリンクを決定することができる。第1の値ではないレベルのノードに関連づけられたターゲットリンクの決定は、この開示の
図9およびその記述に見出すことができる。
【0074】
上述した記述は、単に例示目的のために提供されたものであり、この開示の範囲を限定することを意図したものではないことに留意する必要がある。当業者には、この開示の教示の下で複数の変形及び変更を行うことができる。しかしながら、これらの変形および変更は、この開示の範囲から逸脱しない。他の例として、1つまたは複数の他のオプションのステップ(例えば、記憶ステップ、事前処理ステップ)は、例示プロセス/方法800のどこかに追加することができる。さらに他の例として、例示プロセス/方法800のすべてのステップは、命令のセットを含むコンピュータ可読媒体にインプリメントすることができる。命令は、電流または電子信号の形態で送信することができる。
【0075】
図9は、この開示のいくつかの実施形態に従う、第1の値ではないレベルのノードに関するターゲットリンクを決定するための例示プロセスおよび/または方法900のフローチャートである。いくつかの実施形態において、プロセスおよび/または方法900は、プロセスおよび/または方法800のステップ840においてターゲットリンクを決定するために使用することができる。いくつかの実施形態において、プロセスおよび/方法900の1つまたは複数のステップは、
図1に示すシステム100にインプリメントすることができる。例えば、プロセスおよび/または方法900の1つまたは複数のステップは、ストレージデバイス130および/またはストレージ(例えば、RM230、RAM240)に、命令の形態として記憶することができ、サーバ110(例えば、サーバ110内の処理エンジン112または、サーバ110内の処理エンジン112のプロセッサ220)により起動および/または実行することができる。
【0076】
ステップ910において、プロセッサ220(例えば、ターゲットリンク決定モジュール430)は、ノードの少なくとも1つのタイプのリンクを取得することができる。いくつかの実施形態において、リンクのタイプは、先行リンクおよび後続リンクを含むことができる。プロセッサ220(例えば、ターゲットリンク決定モジュール430)は、情報取得モジュール410からノードの少なくとも1つのタイプのリンクを取得することができる。
【0077】
ステップ920において、プロセッサ220(例えば、ターゲットリンク決定モジュール430)は、そのタイプを有する唯一のリンクがあるかどうかを決定することができる。タイプ毎に、第1の値ではないレベルのノードに接続されたタイプを有する唯一のリンクがある場合、プロセッサおよび/または方法900は、ステップ930に進む。ステップ930において、プロセッサ220(例えば、ターゲットリンク決定モジュール430)は、その一つのリンクをそのタイプのターゲットリンクとして指定することができる。例えば、ノードのレベルが第1の値(例えば、ノードのレベルがレベル1)ではなく、そのノードに接続された唯一の先行リンクがある場合、プロセッサ220は、その先行リンクをそのタイプのリンク(ここでは、「ターゲット先行リンク」とも呼ぶ)として指定することができる。そうでなければ、第1の値ではないレベルのノードに接続されたタイプを有する2以上のリンクがある場合、プロセスおよび/または方法900は、ステップ940に進むことができる。ステップ940において、プロセッサ220(例えば、ターゲットリンク決定モジュール430)は、そのノードに接続された、そのタイプの各リンクに対するスコアを決定することができる。例えば、ノードのレベルが第1の値(例えば、ノードのレベルがレベル1)ではなく、そのノードに接続された2以上の先行リンク(例えば、3つの先行リンク)がある場合、プロセッサ220は、3つの先行リンクに対する各々のスコアを決定し、2つの先行リンクのスコアに基づいて、ターゲット先行リンクを決定することができる。いくつかの実施形態において、スコアは、リンクに関する評価値であり得る。スコアが高ければ高いほど、そのスコアに対応するリンクがターゲットリンクに決定される確率は高くなる。いくつかの実施形態において、プロセッサ220は、リンクと基準リンクとの間の関係に基づいて、リンクのスコアを決定することができる。基準リンクは、ノードに関連したターゲットリンクであると決定されたリンクを指すことができる。第1の値ではないレベルのノードのターゲット後続リンクを決定するために、プロセッサ220は、複数基準リンクとしてノードのターゲットリンク(ターゲット先行リンク)であると決定された先行リンクを決定することができる。いくつかの実施形態において、プロセッサ220は、リンクに対応するロードまたはロードセグメントの内部属性(例えば、ロードの名前、ロードのレベル、ロードの幅)、および/またはリンクと基準リンクとの間の角度に基づいて、リンクのスコアを決定することができる。例えば、
図11を参照すると、ノード1150の場合、2つの後続リンクL8およびL9が有り、1つの先行リンクL7が有り、ノード1120のレベルは、第1の値であり、ノード1150のレベルは、第1の値ではなく、プロセッサ220は、リンクL3とL7をノード1120に関連づけられたターゲット後続リンクとして決定する。それゆえ、リンクL8とL9のスコアを決定するために、プロセッサ220は、リンクL7を基準リンクとして決定することができる。
【0078】
ノードの先行リンクのスコアの決定は、ノードの後続リンクのスコアの決定と同様である。図示目的のために、ノードの後続リンクのスコアの決定を例にとる。いくつかの実施形態において、プロセッサ220は、式(1)に従うノードに接続された後続リンクに関するスコアPを決定することができる。
P=100+n×l×レベル重み+w×幅重み-|角度1|-|角度2| (1)
但し、nは0または1であり得る値を示す。後続リンクに対応するロードセグメントの名前が、基準リンクに対応する基準ロードセグメントの名前と同じである場合、nは、1として決定することができる。さもなければ、nは0として決定することができる。lは、0または1であり得る値を示す。後続リンクに対応するロードセグメントのレベルが、基準リンクに対応する基準ロードセグメントのレベルと同じである場合、lは1として決定することができる。そうでなければ、lは0として決定することができる。ロードセグメントのレベルは、これに限定されないが、高速道路、都市高速道路、国道、州道、田舎道(country road)、タウンシップロード(township road)、9級ロード(nine grade road)、フェリー、歩行者道等またはそれらの任意の組み合わせのようなロードセグメントの内部属性であり得る。レベル重みは、後続リンクに対応するロードセグメントの名前とレベルの重み付けされた値を示す。wは0または1であり得る値を示す。後続リンクに対応するロードセグメントの幅が基準リンクに対応する基準ロードセグメントの幅と同じである場合、wは、1として決定することができる。そうでなければ、wは0として決定することができる。幅重みは、後続リンクに対応するロードセグメントの幅の重み付けされた値を示す。角度1は、後続リンクと基準リンクとの間の幾何学的角度値を示す。角度2は、後続リンクおよび基準リンクに接続されたノードからある距離(例えば、10、20、50または100メートル)遡った後の後続リンクと基準リンクとの間の幾何学的角度値を示す。
【0079】
いくつかの実施形態において、レベル重みおよび/または幅重みの値は、0と100の間の値であり得る。レベル重みと幅重みの合計は100であり得る。プロセッサ220は、後続リンクに対応するロードまたはロードセグメントおよび基準リンクに対応する基準ロードセグメントの名前、レベルおよび/または幅に基づいてレベル重みおよび/または幅重みに関する値を割り当てることができる。例えば、リンクに対応するロードセグメントの名前、レベルおよび幅と、基準リンクに対応する基準ロードセグメントの名前、レベル、および幅がそれぞれ同じである場合、レベル重みと幅重みの値は、それぞれ、50ずつ割り当てることができる。他の例として、リンクに対応するロードセグメントの名前またはレベルが、基準リンクに対応する基準ロードセグメントの名前またはレベルと異なり、リンクに対応するロードセグメントの幅が基準リンクに対応する基準ロードセグメントの幅と同じである場合、レベル重みと幅の重みの値は、それぞれ20と80に割り当てることができる。さらに他の例として、リンクに対応するロードセグメントの名前とレベルが、基準リンクに対応する基準ロードセグメントの名前とレベルにそれぞれ同じであり、リンクに対応するロードセグメントの幅と、基準リンクに対応する基準ロードセグメントの幅が異なる場合、レベル重みと幅重みの値は、それぞれ、30と70に割り当てることができる。レベル重みと幅重みの値は、システムの異なる状況に従って調節することができ、類似の変更は、この開示の範囲内である。
【0080】
ステップ950において、プロセッサ220(例えば、ターゲットリンク決定モジュール430)は、ステップ940からのスコアのうちの最も高いスコアが第2のしきい値を超えるかどうかを判断することができる。いくつかの実施形態において、プロセッサ220は、降べきの順、あるいは昇べきの順にスコアをランク付することができ、ランク結果に基づいて、最も高いスコアを決定することができる。第2のしきい値は、システムに記憶された事前設定されたスコアの値、例えば50であるか、または異なるアプリケーションシナリオに従って決定することができる。いくつかの実施形態に従って、最も高いスコアが第2のしきい値を超える場合、プロセスおよび/または方法900は、ステップ960に進むことができる。最も高いスコアが、第2のしきい値より大きくない場合、プロセッサ220は、そのノードに関するタイプを有するターゲットリンクを決定することができないか、あるいは、プロセスおよび/または方法900は、ステップ970に進むことができる。
【0081】
ステップ960において、プロセッサ220(例えば、ターゲットリンク決定モジュール430)は、最も高いスコアに対応するリンクをターゲットリンクとして指定することができる。いくつかの実施形態において、最も高いスコアを有する1つ以上のリンクがあり得る。プロセッサ220は、1つ以上のリンクのすべてまたは一部を、ターゲットリンクとして指定することができる。
【0082】
いくつかの実施形態において、最も高いスコアが第2のしきい値より大きくない場合、基準リンクとノードの先行リンク、または後続リンクの任意の1つとの間に大きな差異(difference)(例えば、大きな角度)があることを意味することができる。プロセッサ220は、スコアに基づいてノードに関するターゲットリンクを決定することはできない。いくつかの実施形態において、ロードマップをユーザに完全におよび/または美しく提示するために、ステップ970において、プロセッサ220(例えば、ターゲットリンク決定モジュール430)は、第2のしきい値より大きいスコアを有するシミュレートされたリンクを生成することができる。
【0083】
いくつかの実施形態において、シミュレートされたリンクは、シミュレートされたリンクのスコアが第2のしきい値より大きいことを保証する属性を有するロードセグメント(ここでは、シミュレートされたロードセグメントとも呼ぶ)に対応させることができる。シミュレートされたリンクに対応するシミュレートされたロードセグメントは、実際には、現実世界には存在し得ない。プロセッサ220は、基準リンクに対応する基準ロードセグメントと同じ名前、レベル、および/または幅を有するシミュレートされたリンクに対応するシミュレートされたロードセグメントを構築することができる。シミュレートされたリンクに対応するシミュレートされたロードセグメントは、基準リンクに対応する基準ロートセグメントと同じ直線上に位置することができる。いくつかの実施形態において、プロセッサ220は、ノードの基準リンクの方向に沿ってシミュレートされたリンクを生成することができ、シミュレートされたリンクに対応するシミュレートされたロートセグメントの属性は、式(1)に従って決定されたスコアが、第2のしきい値より大きいことを保証するためにのみ任意に調節可能である。ステップ980において、プロセッサ220(例えば、ターゲットリンク決定モジュール430)は、シミュレートされたリンクをターゲットリンクとして指定することができる。
【0084】
上述した記載は、単に、例示目的のために提供され、この開示の範囲を限定することを意図したものではないことに留意する必要がある。当業者であれば、この開示の教示の下で、複数の変形および変更を行うことができる。しかしながら、これらの変形および変更は、この開示の範囲から逸脱しない。他の例として、1つまたは複数のオプショのステップ(例えば、格納ステップ、事前処理ステップ)は、例示プロセス/方法900のどこかに追加することができる。さらに他の例として、例示プロセス/方法900のすべてのステップは、命令のセットを含むコンピュータ可読媒体にインプリメントすることができる。命令は、電流または電子信号の形態で送信することができる。
【0085】
図10Aは、いくつかの実施形態に従う例示ロードマップ生成モジュール440を図示するブロック図である。ロードマップ生成モジュール440は、転送マトリクス決定ユニット1010、ロードマップ生成ユニット1020、および識別ロケーション決定ユニット1030を含むことができる。これらのユニットは、ロードマップ生成モジュール440bのすべてまたは一部のハードウェア回路であり得る。これらのユニットはまた、処理エンジンに読み取られ、実行されるアプリケーションまたは命令セットとしてインプリメントすることもできる。さらに、これらのユニットは、ハードウェア回路とアプリケーション/命令の任意の組み合わせであり得る。例えば、ユニットは、処理エンジンがアプリケーション/命令セットを実行しているとき処理エンジン112の一部であり得る。
【0086】
転送マトリクス決定ユニット1010は、転送マトリクスを決定することができる。
いくつかの実施形態において、転送マトリクスは、ナビゲーション端末120の現在のロケーションに関係づけることができる。ある実施形態において、転送マトリクス決定モジュール1010は、マップマッチングアルゴリズムにより転送マトリクスを決定することができる。マップマッチングアルゴリズムは、決定性マップマッチングアルゴリズムおよび/または非決定性マップマッチングアルゴリズムを含むことができる。決定性マップマッチングアルゴリズムは、プロジェクションマッチングアルゴリズム等を含むことができる。非決定性マップマッチングアルゴリズムは、確率論的統計アルゴリズム、ファジーロジックアルゴリズム、相関分析アルゴリズム、D-Sベースの証拠推論アルゴリズム(D-S based evidence reasoning algorithm)等、またはそれらの任意の組み合わせを含むことができる。ロードマップ生成ユニット1020は、ロードマップを生成することができる。いくつかの実施形態において、ロードマップ生成ユニット1020は、転送マトリクスおよびノードのターゲットリンクに基づいて、ロードマップを生成することができる。
【0087】
識別ロケーション決定ユニット1030は、ロードマップ上のナビゲーション端末120の識別ロケーションを決定することができる。いくつかの実施形態において、識別ロケーション決定モジュール1030は、ナビゲーション端末120の現在のロケーションと転送マトリクスに基づいて識別ロケーションを決定することができる。いくつかの実施形態において、識別ロケーション決定ユニット1030は、識別ロケーション上のナビゲーション端末120の識別を設定することができる。
【0088】
図10Bは、この開示のいくつかの実施形態に従う、ロードマップを生成するための例示プロセスおよび/または方法1000のフローチャートである。いくつかの実施形態において、プロセスおよび/または方法1000の1つまたは複数のステップは、
図1に示すシステム100にインプリメントすることができる。例えば、プロセスおよび/方法1000の1つまたは複数のステップは、ストレージデバイス130および/またはストレージ(例えば、ROM230、RAM240)に命令の形態として記憶することができ、サーバ110(例えば、サーバ110内の処理エンジン112、またはサーバ110内の処理エンジン112のプロセッサ220)により起動し、実行することができる。ステップ1040において、プロセッサ220(例えば、ロードマップ生成モジュール440の転送マトリクス決定ユニット1010)は、ナビゲーション端末の現在のロケーションに関連づけられた転送マトリクスを決定することができる。
【0089】
いくつかの実施形態において、転送マトリクスは、立体空間と画像座標のマッピング関係を示すマトリクスであり得る。転送マトリクスは、変換マトリクス、スケーリングマトリクス、回転マトリクス、対称マトリクス等、またはそれらの任意の組合せを含むことができる。いくつかの実施形態において、ノードの各々は、転送マトリクスに関連付けることができる。転送マトリクスは、ノードと、関連するオブジェクトに対応する交差点(例えば、ノードのターゲットリンクに対応するターゲットロードセグメント)をロードマップに変換するために使用することができる。
【0090】
いくつかの実施形態において、転送マトリクスは、前もってシステム100のストレージデバイス130に記憶することができる。プロセッサ220は、ネットワーク140を介してストレージデバイス130をアクセスすることにより転送マトリクスを取得することができる。いくつかの実施形態において、転送マトリクスは、ノードおよびマップマッチングアルゴリズムに対応する交差点の実際のシナリオに基づいて決定することができる。例えば、マップマッチングアルゴリズムは、決定性マップマッチングアルゴリズムおよび/または非決定性マップマッチングアルゴリズムを含むことができる。決定性マップマッチングアルゴリズムは、プロジェクションマッチングアルゴリズム等を含むことができる。非決定性マップマッチングアルゴリズムは、確率論的統計アルゴリズム、ファジーロジックアルゴリズム、相関解析アルゴリズム、D-Sベース証拠推論アルゴリズム等、またはそれらの任意の組み合わせを含むことができる。ステップ1050において、プロセッサ220(例えば、ロードマップ生成モジュール440のロードマップ生成ユニット1030)は、転送マトリクスおよびターゲットリンクに基づいてロードマップを生成することができる。
【0091】
ロードマップは、ユーザが、自分の乗り物をナビゲーションルートに沿って運転するのを助けるために使用することができる。ロードマップは、2次元画像、3次元画像等であり得る。ロードマップは、複数のノードに対応する複数の交差点、ターゲットリンクに対応する複数のロードセグメントを含むことができる。いくつかの実施形態において、プロセッサ220は、ノードおよび関連するオブジェクト(例えば、ノードのターゲットリンクに対応するターゲットロードセグメント)に対応する交差点の空間座標を取得し、さらに、空間座標に関連づけられた空間マトリクスを決定することができる。いくつかの実施形態において、空間マトリクスの各エレメントは、ロードネットワークの1つのポイントに対応する。次にプロセッサ220は、空間マトリクスおよび転送マトリクスに基づいてロードマップを決定することができる。例えば、プロセッサ220は、転送マトリクスと空間マトリクスを乗算してロードマップを決定することがえきる。
図14を参照すると、
図14は、この開示のいくつかの実施形態に従う例示ロードマップを図示する。
図14に示すように、ロードマップ1440は、ノード1420,ノード1430,ノード1420のターゲットリンクおよびノード1430のターゲットリンク(例えば、リンクL2’)を含むことができる。リンクL1‘は、非ターゲットリンクとして決定されるので、リンクL1’は、ロードマップ1440には提示しなくてもよい。ステップ1060において、プロセッサ220(例えば、ロードマップ生成モジュール440の識別ロケーション決定ユニット1030)は、ナビゲーション端末120の現在のロケーションと転送マトリクスに基づいてロードマップ上のナビゲーション端末120の識別ロケーションを決定することができる。
【0092】
いくつかの実施形態において、識別ロケーションを用いてナビゲーション端末120のロケーションをロードマップに正確に反映させることができる。プロセッサ220は、ナビゲーション端末120のロケーションの空間座標を転送マトリクスと乗算することによりロードマップ内の識別ロケーションを決定することができる。いくつかの実施形態において、ナビゲーション端末120の識別ロケーションは、リアルタイムに変更することができる。プロセッサ220は、ナビゲーション端末120のロケーションを取得し、規則的な時間間隔、例えば、0.5秒、1秒、2秒、3秒、4秒または5秒でロケーションの空間座標を更新することができる。プロセッサ220(例えば、ロードマップ生成モジュール440の識別ロケーション決定ユニット1030)は、規則的な時間間隔の後で識別ロケーションを再決定することができる。いくつかの実施形態において、ナビゲーション端末120の識別は、識別ロケーションに設定することができる。識別は、アイコン、ドット、矢印等のような任意のフォーマットでよい。
図14に示すように、識別1450は、ナビゲーション端末1410を表すために、ナビゲーション端末1410のロケーションに対応する、識別ロケーションに設定することができる。
【0093】
上述した記述は、単に例示目的のためであり、この開示の範囲を限定することを意図していないことに留意する必要がある。当業者であれば、この開示の教示の下で複数の変形および変更を行うことができる。しかしながら、これらの変形および変更は、この開示の範囲から逸脱しない。例えば、1つまたは複数のオプションのステップ(例えば、記憶ステップ、事前処理ステップ)をプロセス1000内のどこかに追加することができる。他の例として、プロセス1000内のすべてのステップは、命令セットを含むコンピュータ可読媒体にインプリメントすることができる。命令は、電流または電子信号の形態で送信することができる。
【0094】
以上基本コンセプトについて記載したが、当業者には、この詳細な記述を読んだ後で、上述の詳細な開示は、例示による提示に過ぎず限定するものではないことは、明白である。ここには、明瞭に記載していないけれども、種々の変更、改良および修正を行うことができ、当業者を対象としている。これらの変更、改良、及び修正は、この開示により示唆されることが意図され、この開示の例示実施形態の精神及び範囲内である。
【0095】
さらに、この開示の実施形態を記載するのに、ある用語を用いた。例えば、「1つの実施形態(one embodiment)」、「1つの実施形態(an embodiment)」、および/または「いくつかの実施形態」という用語は、実施形態に関連して記載した特定の特徴、構造、または特性がこの開示の少なくとも1つの実施形態に含まれることを意味する。それゆえ、この明細書の種々の部分において、「1つの実施形態(an embodiment)」、「1つの実施形態(one embodiment)」、または「代替実施形態」は、必ずしも同じ実施形態を指しているわけではない。さらに、特定の特徴、構造または特性は、この開示の1つまたは複数の実施形態に適するように組み合わせることができる。
【0096】
さらに、当業者に明らかなように、この開示の態様は、新規かつ有用なプロセス、機械、製造、または物質の組成またはそれらの任意の新規で有用な改良を含むいくつかの特許可能なクラスまたはコンテキストのいずれかで図示および記載することができる。従って、この開示の態様は、全体をハードウェアで、全体を(ファームウェア、レジデントソフトウェア、マイクロコード等を含む)ソフトウェアで、または本明細書では、一般的に「ブロック」、「モジュール」、「エンジン」、「ユニット」、「コンポーネント」または「システム」と呼ぶことができるソフトウェアとハードウェアの組み合わせをインプリメントすることができる。さらに、この開示の態様は、コンピュータ読み取り可能プログラムコードが埋め込まれた1つまたは複数のコンピュータ可読媒体に具現化されたコンピュータプログラムプロダクトの形態を取ることができる。
【0097】
コンピュータ可読信号媒体は、コンピュータ可読プログラムコードが、例えばベースバンドまたは搬送波の一部として具現化された伝搬データ信号を含むことができる。そのような伝搬信号は、電磁気、光学等、またはそれらの任意の組み合わせを含む種々の形態のいずれかを取ることができる。コンピュータ可読信号媒体は、コンピュータ可読記憶媒体ではなく、命令実行システム、装置またはデバイスによって、または関連して使用するためのプログラムを通信し、伝搬し、または転送することができる、任意のコンピュータ可読媒体であり得る。コンピュータ可読信号媒体は、無線、有線、光ファイバケーブル、RF等、またはそれらの任意の組み合わせを含む任意の適切な媒体を用いて送信することができる。
【0098】
この開示の態様の動作を時刻するためのコンピュータプログラムコードは、Java、Scala、Smalltalk、Eiffel、JADE、Emerald、C++、C#、VB、NET、Python等のようなオブジェクト指向プログラミング言語、「C」プログラミング言語、Visual Badic、Fortran1703、Perl、COBOL1720、PHP、ABAPのような汎用プログラミング言語、Python、Ruby、およびGroovyのようなダイナミックプログラミング言語、または他のプログラミング言語を含む1つまたは複数のプログラミング言語の任意の組み合わせで書くことができる。プログラムコードは、完全にユーザのコンピュータ上で実行してもよいし、一部をスタンドアロンソフトウェアパッケージとしてユーザのコンピュータ上で実行し、一部をリモートコンピュータ上で実行してもよいし、あるいは完全にリモートコンピュータ上で実行してもよい。後者のシナリオでは、リモートコンピュータは、ローカルエリアネットワーク(LAN)またはワイドエリアネットワーク(WAN)を含む任意のタイプのネットワークを介してユーザコンピュータに接続することができ、あるいは接続は、外部コンピュータ(例えば、インターネットサービスプロバイダを用いたインターネットを介して)と行ってもよいし、あるいはクラウドコンピューティング環境で、または、サービスとしてのソフトウェア(SaaS)のようなサービスとして提供されてもよい。
【0099】
さらに、処理エレメントまたはシーケンスの順番、または、番号、文字または他の指定の使用は、請求されたプロセスおよび方法を請求項で指定される場合を除いて、任意の順番に限定することを意図していない。上記の開示は、本開示の様々な有用な実施形態であると現在考えられるものを様々な例を通して説明しているが、そのような詳細は、単にその目的のためであり、添付の特許請求の範囲は、開示された実施形態に限定されないことを理解されたい。 しかし、反対に、開示された実施形態の精神および範囲内にある修正および同等の配置をカバーすることを意図している。例えば、上述した種々のコンポーネントのインプリメンテーションは、ハードウェアデバイスに具現化することができるが、ソフトウェアのみのソリューション、例えば、既存のサーバまたはモバイルデバイス上のインストレーションとしてインプリメントすることも可能である。
【0100】
同様に、本開示の実施形態の前述の説明では、様々な特徴が、単一の実施形態、図、またはその説明にまとめられることがあり、開示を簡素化して、1つまたは複数の様々な実施形態の1つまたは複数の理解を助けることを目的とする。しかしながら、この開示の方法は、請求される主題が、各請求項で明示的に列挙されるよりも多くの特徴を必要とするという意図を反映するものとして解釈されるべきではない。むしろ、請求される主題は、前述の単一の開示された実施形態のすべての特徴より少ない場合がある。