(57)【要約】【課題】モバイル・デバイスの位置を決定する。【解決手段】デバイスに関する位置を返すステップは、デバイスによってキャプチャされた、第１の画像、およびデバイスの第１の方位を１つ以上のネットワークを通じてデバイスから受信することによって達成される。デバイスによってキャプチャされた、第２の画像、およびデバイスの第２の方位が１つ以上のネットワークを通じてデバイスから受信される。第１の画像に含まれた第１のオブジェクトの第１の位置および第２の画像に含まれた第２のオブジェクトの第２の位置をそれぞれオブジェクト位置のデータベースから決定できる。第１の方位、第２の方位、第１のオブジェクトの第１の位置および第２のオブジェクトの第２の位置に応じてデバイスの位置が決定される。デバイス位置がデバイスへ送信される。【選択図】図７
2020528180.tif 000002
【特許請求の範囲】
【請求項１】
デバイスに関する位置を返すためのコンピュータ実装方法であって、前記方法は、
デバイスによってキャプチャーされた第１の画像および前記デバイスの第１の方位を１つ以上のネットワークを通じて前記デバイスから受信するステップと、
前記デバイスによってキャプチャーされた第２の画像および前記デバイスの第２の方位を前記１つ以上のネットワークを通じて前記デバイスから受信するステップと、
前記第１の画像に含まれた第１のオブジェクトの第１の位置および前記第２の画像に含まれた第２のオブジェクトの第２の位置を決定するステップであって、前記第１の位置および前記第２の位置は、オブジェクト位置のデータベースを用いて取得される、前記決定するステップと、
前記第１の方位、前記第２の方位、前記第１のオブジェクトの前記第１の位置および前記第２のオブジェクトの前記第２の位置に応じて前記デバイスのデバイス位置を決定するステップと、
前記デバイス位置を前記デバイスへ送信するステップと
を備える、コンピュータ実装方法。
【請求項２】
前記デバイス位置を決定するステップは、
ある座標系において、前記第１のオブジェクトの前記第１の位置に対応する第１の点を通過する前記第１の方位をもつ第１の線、および前記第２のオブジェクトの前記第２の位置に対応する第２の点を通過する前記第２の方位をもつ第２の線を決定するステップと、
前記座標系における前記第１の線と前記第２の線との交点に基づいて前記デバイスの前記デバイス位置を決定するステップと
を備える、請求項１に記載のコンピュータ実装方法。
【請求項３】
前記第１の位置および前記第２の位置を取得するステップは、
前記第１のオブジェクトおよび前記第２のオブジェクトを特定するために前記第１の画像および前記第２の画像の画像解析を行うステップと、
前記第１のオブジェクトおよび前記第２のオブジェクトを前記データベース中の前記複数の位置画像と比較するステップと、
前記第１のオブジェクトを前記複数の位置画像の少なくとも１つに、かつ前記第２のオブジェクトを前記複数の位置画像の少なくとも１つにマッチングさせるステップであって、前記第１の位置は、前記第１のオブジェクトにマッチングされた前記少なくとも１つの位置画像と関連付けられた位置データによって与えられ、前記第２の位置は、前記第２のオブジェクトにマッチングされた前記少なくとも１つの位置画像と関連付けられた位置データによって与えられる、前記マッチングさせるステップと
を備える、請求項１に記載のコンピュータ実装方法。
【請求項４】
前記デバイスから受信される前記第１の方位および前記第２の方位は、前記デバイスによって前記デバイス中のセンサを用いて決定される、請求項１に記載のコンピュータ実装方法。
【請求項５】
前記デバイスの前記第１の方位は、前記デバイスの軸方向と参照方向との間の角度である、請求項１に記載のコンピュータ実装方法。
【請求項６】
前記デバイス位置を決定するステップは、リモート・サーバによって行われ、前記方法は、前記デバイス位置をあるデバイスへ送信するステップをさらに備える、請求項１に記載のコンピュータ実装方法。
【請求項７】
前記デバイス位置を決定するステップは、前記デバイスによって行われ、前記方法は、
前記デバイス位置を前記デバイス上に表示するステップと、
前記デバイスから第３のオブジェクトの第３の画像を受信するステップと、
前記第３のオブジェクトの位置を取得できないことに応答して、前記デバイスのユーザへ通知を提示するステップと
をさらに備える、請求項１に記載のコンピュータ実装方法。
【請求項８】
デバイスに関する位置を返すためのコンピュータ・システムであって、前記システムは、
プロセッサ、および
前記プロセッサに結合されたコンピュータ可読メモリ
を備え、前記メモリは、前記プロセッサによって実行されたときに、以下の動作：
デバイスによってキャプチャーされた第１の画像および前記デバイスの第１の方位を１つ以上のネットワークを通じて前記デバイスから受信するステップと、
前記デバイスによってキャプチャーされた第２の画像および前記デバイスの第２の方位を前記１つ以上のネットワークを通じて前記デバイスから受信するステップと、
前記第１の画像に含まれた第１のオブジェクトの第１の位置および前記第２の画像に含まれた第２のオブジェクトの第２の位置を決定するステップであって、前記第１の位置および前記第２の位置は、オブジェクト位置のデータベースを用いて取得される、前記決定するステップと、
前記第１の方位、前記第２の方位、前記第１のオブジェクトの前記第１の位置および前記第２のオブジェクトの前記第２の位置に応じて前記デバイスのデバイス位置を決定するステップと、
前記デバイス位置を前記デバイスへ送信するステップと
行う命令を備える、
コンピュータ・システム。
【請求項９】
前記デバイス位置を決定するステップは、
ある座標系において、前記第１のオブジェクトの前記位置に対応する第１の点を通過する前記第１の方位をもつ第１の線、および前記第２のオブジェクトの前記位置に対応する第２の点を通過する前記第２の方位をもつ第２の線を決定するステップと、
前記座標系における前記第１の線と前記第２の線との前記交点に基づいて前記デバイスの前記デバイス位置を決定するステップと
を備える、請求項８に記載のコンピュータ・システム。
【請求項１０】
前記第１の位置および前記第２の位置を取得するステップは、
前記第１のオブジェクトおよび前記第２のオブジェクトを特定するために前記第１の画像および前記第２の画像の画像解析を行うステップと、
前記第１のオブジェクトおよび前記第２のオブジェクトを前記データベース中の前記複数の位置画像と比較するステップと、
前記第１のオブジェクトを前記複数の位置画像の少なくとも１つに、かつ前記第２のオブジェクトを前記複数の位置画像の少なくとも１つにマッチングさせるステップであって、前記第１の位置は、前記第１のオブジェクトにマッチングされた前記少なくとも１つの位置画像と関連付けられた位置データによって与えられ、前記第２の位置は、前記第２のオブジェクトにマッチングされた前記少なくとも１つの位置画像と関連付けられた位置データによって与えられる、前記マッチングさせるステップと
を備える、請求項８に記載のコンピュータ・システム。
【請求項１１】
前記デバイスから受信される前記第１の方位および前記第２の方位は、前記デバイスによって前記デバイス中のセンサを用いて決定される、請求項８に記載のコンピュータ・システム。
【請求項１２】
前記デバイスの前記第１の方位を決定するステップは、
前記デバイスの軸方向と参照方向との間の角度に応じて前記デバイスの前記第１の方位を決定するステップ
を備える、請求項８に記載のコンピュータ・システム。
【請求項１３】
前記第１のオブジェクトは、ユーザ入力に応じて前記第１の画像中で特定される、請求項８に記載のコンピュータ・システム。
【請求項１４】
前記動作は、
前記デバイスから第３のオブジェクトの第３の画像を受信するステップと、
前記第３のオブジェクトの位置を取得できないことに応答して、前記デバイスのユーザへ通知を提示するステップと
をさらに備える、請求項８に記載のコンピュータ・システム。
【請求項１５】
コンピュータ・プログラム製品であって、それを以て具現されたプログラム命令を有するコンピュータ可読ストレージ媒体を備え、前記プログラム命令は、プロセッサに、
デバイスによってキャプチャーされた第１の画像および前記デバイスの第１の方位を１つ以上のネットワークを通じて前記デバイスから受信し、
前記デバイスによってキャプチャーされた第２の画像および前記デバイスの第２の方位を前記１つ以上のネットワークを通じて前記デバイスから受信し、
前記第１の画像に含まれた第１のオブジェクトの第１の位置および前記第２の画像に含まれた第２のオブジェクトの第２の位置を決定し、前記第１の位置および前記第２の位置は、オブジェクト位置のデータベースを用いて取得され、
前記第１の方位、前記第２の方位、前記第１のオブジェクトの前記第１の位置および前記第２のオブジェクトの前記第２の位置に応じて前記デバイスのデバイス位置を決定して、
前記デバイス位置を前記デバイスへ送信する
ようにさせるために、前記プロセッサによって実行可能である、
コンピュータ・プログラム製品。
【請求項１６】
前記デバイス位置を決定するための前記プログラム命令は、
ある座標系において、前記第１のオブジェクトの前記第１の位置に対応する第１の点を通過する前記第１の方位をもつ第１の線、および前記第２のオブジェクトの前記第２の位置に対応する第２の点を通過する前記第２の方位をもつ第２の線を決定すること、および
前記座標系における前記第１の線と前記第２の線との交点に基づいて前記デバイスの前記デバイス位置を決定すること
を備える、請求項１５に記載のコンピュータ・プログラム製品。
【請求項１７】
前記第１の位置および前記第２の位置を決定するための前記プログラム命令は、
前記第１のオブジェクトおよび前記第２のオブジェクトを特定するために前記第１の画像および前記第２の画像の画像解析を行うこと、
前記第１のオブジェクトおよび前記第２のオブジェクトを前記データベース中の前記複数の位置画像と比較すること、および
前記第１のオブジェクトを前記複数の位置画像の少なくとも１つに、かつ前記第２のオブジェクトを前記複数の位置画像の少なくとも１つにマッチングさせることであって、前記第１の位置は、前記第１のオブジェクトにマッチングされた前記少なくとも１つの位置画像と関連付けられた位置データによって与えられ、前記第２の位置は、前記第２のオブジェクトにマッチングされた前記少なくとも１つの位置画像と関連付けられた位置データによって与えられる、前記マッチングさせること
を備える、請求項１５に記載のコンピュータ・プログラム製品。
【請求項１８】
前記デバイスの前記第１の方位を決定するための前記プログラム命令は、
前記デバイスの軸方向と参照方向との間の角度に応じて前記デバイスの前記第１の方位を決定すること
を備える、請求項１５に記載のコンピュータ・プログラム製品。
【請求項１９】
デバイスに関する位置を返すためのコンピュータ実装方法であって、前記方法は、
デバイスによってキャプチャーされた第１の画像および前記デバイスの第１の方位を１つ以上のネットワークを通じてサーバへ送信するステップと、
前記デバイスによってキャプチャーされた第２の画像および前記デバイスの第２の方位を前記１つ以上のネットワークを通じてサーバへ送信するステップと、
前記１つ以上のネットワークを通じて前記第１の画像に含まれた第１のオブジェクトの第１の位置および前記第２の画像に含まれた第２のオブジェクトの第２の位置を受信するステップであって、前記第１の位置および前記第２の位置は、オブジェクト位置のデータベースを用いて取得される、前記受信するステップと、
前記第１の方位、前記第２の方位、前記第１のオブジェクトの前記第１の位置および前記第２のオブジェクトの前記第２の位置に応じて前記デバイスのデバイス位置を決定するステップと
を備える、コンピュータ実装方法。
【請求項２０】
前記デバイス位置を決定するステップは、
ある座標系において、前記第１のオブジェクトの前記第１の位置に対応する第１の点を通過する前記第１の方位をもつ第１の線、および前記第２のオブジェクトの前記第２の位置に対応する第２の点を通過する前記第２の方位をもつ第２の線を決定するステップと、
前記座標系における前記第１の線と前記第２の線との交点に基づいて前記デバイスの前記デバイス位置を決定するステップと
を備える、請求項１９に記載のコンピュータ実装方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、測位技術、より具体的には、モバイル・デバイスの位置を決定するステップに関する。
【背景技術】
【０００２】
今日では、測位技術がますます広範囲に用いられている。例えば、ユーザがタクシーを予約したいと望むとき、最新のタクシーの運転手は、ユーザの位置を知る必要があろう。ユーザの位置を決定するために全地球測位システム（ＧＰＳ：Ｇｌｏｂａｌ  Ｐｏｓｉｔｉｏｎｉｎｇ  Ｓｙｓｔｅｍ）または他の衛星ベースの測位システムを用いることができる。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
一般に、ＧＰＳ受信機は、受信機の場所を算出するために少なくとも３つのアクセス可能な衛星信号を必要とする。
【課題を解決するための手段】
【０００４】
本開示の一実施形態によれば、デバイスに関する位置を返すための方法が提供される。本方法に従って、デバイスによってキャプチャーされた、第１の画像を１つ以上のネットワークを通じてデバイスから受信できる。デバイスの第１の方位を１つ以上のネットワークを通じてデバイスから受信できる。デバイスによってキャプチャーされた、第２の画像を１つ以上のネットワークを通じてデバイスから受信できて、デバイスの第２の方位をデバイスから受信できる。第１の画像に含まれた第１のオブジェクトの第１の位置および第２の画像に含まれた第２のオブジェクトの第２の位置をそれぞれデータベースから決定できる。データベースは、複数のオブジェクト位置を含むことができる。第１の方位、第２の方位、第１のオブジェクトの第１の位置および第２のオブジェクトの第２の位置に応じてデバイスの位置を決定できる。デバイス位置をデバイスへ送信できる。
【０００５】
本開示の別の実施形態によれば、コンピュータ・システムが提供される。コンピュータ・システムは、プロセッサおよびプロセッサに結合されたコンピュータ可読メモリを備える。メモリは、プロセッサによって実行されたときに、以下の動作、すなわち、デバイスによってキャプチャーされた第１の画像およびデバイスの第１の方位を１つ以上のネットワークを通じてデバイスから受信するステップと、デバイスによってキャプチャーされた第２の画像およびデバイスの第２の方位を１つ以上のネットワークを通じてデバイスから受信するステップと、第１の画像に含まれた第１のオブジェクトの第１の位置および第２の画像に含まれた第２のオブジェクトの第２の位置を複数のオブジェクト位置を含んだデータベースから決定するステップと、第１の方位、第２の方位、第１のオブジェクトの第１の位置および第２のオブジェクトの第２の位置に応じてデバイスの位置を決定するステップと、デバイスの位置をデバイスへ送信するステップとを行う命令を備える。
【０００６】
本開示の別の実施形態によれば、コンピュータ・プログラム製品が提供される。本コンピュータ・プログラム製品は、それを以て具現されたプログラム命令を有するコンピュータ可読ストレージ媒体を備え、プログラム命令は、プロセッサに、デバイスによってキャプチャーされた第１の画像およびデバイスの方位を１つ以上のネットワークを通じてデバイスから受信し、デバイスによってキャプチャーされた第２の画像およびデバイスの第２の方位を１つ以上のネットワークを通じてデバイスから受信し、第１の画像に含まれた第１のオブジェクトの第１の位置および第２の画像に含まれた第２のオブジェクトの第２の位置を複数のオブジェクト位置を含んだデータベースから決定し、第１の方位、第２の方位、第１のオブジェクトの第１の位置および第２のオブジェクトの第２の位置に応じてデバイスの位置を決定して、デバイスの位置をデバイスへ送信するようにさせるために、プロセッサによって実行可能である。
【０００７】
本開示の別の実施形態によれば、デバイスに関する位置を返すためのコンピュータ実装方法が提供される。本方法によれば、デバイスによってキャプチャーされた第１の画像およびデバイスの第１の方位が１つ以上のネットワークを通じてサーバへ送信される。デバイスによってキャプチャーされた第２の画像およびデバイスの第２の方位が１つ以上のネットワークを通じてサーバへ送信される。第１の画像に含まれた第１のオブジェクトの第１の位置が１つ以上のネットワークを通じて受信される。第２の画像に含まれた第２のオブジェクトの第２の位置が１つ以上のネットワークを通じて受信される。第１の位置および第２の位置をオブジェクト位置のデータベースを用いて特定できる。デバイスのデバイス位置が第１の方位、第２の方位、第１のオブジェクトの第１の位置および第２のオブジェクトの第２の位置に応じて決定される。
【０００８】
上記の概要は、示された各実施形態または本開示のあらゆる実装を記載することは意図されない。
【０００９】
本出願書に含まれる図面は、明細書に組み込まれて、その一部を成す。それらは、本開示の実施形態を示して、記載と併せて、本開示の原理を説明する役割を果たす。図面は、いくつかの実施形態を説明するに過ぎず、本開示を限定しない。
【図面の簡単な説明】
【００１０】
【図１】本発明のある実施形態によるクラウド・コンピューティング・ノードを図示する。
【図２】本発明のある実施形態によるクラウド・コンピューティング環境を図示する。
【図３】本発明のある実施形態による抽象化モデル層を図示する。
【図４】本開示のある実施形態による環境の例を示す概略図である。
【図５】本開示のある実施形態による座標系の例を示す。
【図６】本開示のある実施形態による座標系の別の例を示す。
【図７】本開示のある実施形態による測位のための方法例のフローチャートである。
【図８】本開示のある実施形態による測位のための別の方法例のフローチャートである。
【発明を実施するための形態】
【００１１】
本発明は、様々な修正および代わりの形態に耐えるが、それらの細部が例として図面に示され、詳細に記載される。しかしながら、記載される特定の実施形態に本発明を限定する意図はないことが理解されるべきである。逆に、本発明の趣旨および範囲内にあるすべての修正、均等物、および選択肢をカバーすることが意図される。
【００１２】
本開示の態様は、測位技術に関し、より詳しい態様は、モバイル・デバイスの位置を決定するステップに関する。本開示は、かかる用途には必ずしも限定されないが、本開示の様々な態様が、この文脈を用いた様々な例の考察を通してよく理解されるであろう。
【００１３】
本開示の好ましい実施形態が示された、添付図面を参照して、いくつかの好ましい実施形態がより詳細に記載される。しかしながら、本開示を様々な仕方で実装することができ、従って、本明細書に開示される実施形態に本開示が限定されると解釈されるべきではない。
【００１４】
理解されるべきは、本開示が、クラウド・コンピューティングについて詳細な記載を含むが、本明細書に列挙される教示の実装がクラウド・コンピューティング環境には限定されないことである。むしろ、本発明の実施形態を現在知られているか、または後に開発される任意の他のタイプのコンピューティング環境と併せて実装することが可能である。
【００１５】
クラウド・コンピューティングは、コンフィギュラブルなコンピューティング・リソース（例えば、ネットワーク、ネットワーク・バンド幅、サーバ、処理、メモリ、ストレージ、アプリケーション、仮想マシンおよびサービス）の共有プールへの便利なオンデマンド・ネットワーク・アクセスを可能にするためのサービス配信のモデルであり、これらのリソースを最小限の管理努力、またはサービス・プロバイダとの相互作用によって迅速にプロビジョンし、かつリリースできる。このクラウド・モデルは、少なくとも５つの特徴、少なくとも３つのサービス・モデル、および少なくとも４つのデプロイメント・モデルを含んでよい。
【００１６】
特徴は、次の通りである。
オンデマンド・セルフサービス：クラウド・コンシューマは、サーバ時間およびネットワーク・ストレージのような、コンピューティング・ケイパビリティをサービス・プロバイダとのヒューマン・インタラクションを要することなく、必要に応じて、自動的、一方向的にプロビジョンできる。
広範なネットワークアクセス：ケイパビリティは、ネットワークを通じて利用可能であり、ヘテロジニアスなシンまたはシック・クライアント・プラットフォーム（例えば、携帯電話、ラップトップ、およびＰＤＡ）による使用を促進する標準的なメカニズムを通してアクセスされる。
リソース・プーリング：プロバイダのコンピューティング・リソースが複数のコンシューマにサービスするためにマルチテナント・モデルを用いてプールされ、要求に応じて、異なる物理および仮想リソースが動的に割り当ておよび再割り当てされる。コンシューマは、一般に、提供されるリソースの正確な位置を制御しえず、またはそれに関する知識を有さないが、より高い抽象化レベルにおいて位置（例えば、国、州、またはデータセンタ）を特定することが可能でありうるという点で位置独立性に意義がある。
迅速な弾力性：速やかにスケールアウトするためにケイパビリティを迅速かつ弾性的に、いくつかのケースでは自動的に、プロビジョンでき、かつ速やかにスケールインするために迅速にリリースできる。コンシューマには、プロビジョニングのために利用可能なケイパビリティがしばしば無制限であるように見え、いつでも任意の量を購入できる。
測定されるサービス：クラウド・システムは、サービスのタイプ（例えば、ストレージ、処理、バンド幅、およびアクティブなユーザ・アカウント）に適したある抽象化レベルで計量ケイパビリティを活用することによって、リソース使用を自動的に制御して最適化する。リソース使用法をモニタリング、制御および報告して、利用されるサービスのプロバイダおよびコンシューマの両方にトランスペアレンシーを提供することができる。
【００１７】
サービス・モデルは、以下の通りである。
ソフトウェア・アズ・ア・サービス（ＳａａＳ：Ｓｏｆｔｗａｒｅ  ａｓ  ａ  Ｓｅｒｖｉｃｅ）：コンシューマへ提供されるケイパビリティは、クラウド・インフラストラクチャ上で実行するプロバイダのアプリケーションを用いることである。アプリケーションは、ｗｅｂブラウザのようなシン・クライアント・インターフェース（例えば、ｗｅｂベースの電子メール）を通して様々なクライアント・デバイスからアクセス可能である。コンシューマは、限られたユーザ固有のアプリケーション構成設定のありうる例外を除いて、ネットワーク、サーバ、オペレーティング・システム、ストレージ、あるいは個別のアプリケーション・ケイパビリティも含む、基礎をなすクラウド・インフラストラクチャを管理または制御しない。
プラットフォーム・アズ・ア・サービス（ＰａａＳ：Ｐｌａｔｆｏｒｍ  ａｓ  ａ  Ｓｅｒｖｉｃｅ）：コンシューマへ提供されるケイパビリティは、プロバイダによってサポートされるプログラミング言語およびツールを用いて生成された、コンシューマにより生成され、または取得されたアプリケーションをクラウド・インフラストラクチャ上へデプロイすることである。コンシューマは、ネットワーク、サーバ、オペレーティング・システム、またはストレージを含む、基礎をなすクラウド・インフラストラクチャを管理または制御しないが、デプロイされたアプリケーション、および場合によってはアプリケーションをホストする環境構成を制御する。
インフラストラクチャ・アズ・ア・サービス（ＩａａＳ：Ｉｎｆｒａｓｔｒｕｃｔｕｒｅ  ａｓ  ａ  Ｓｅｒｖｉｃｅ）：コンシューマへ提供されるケイパビリティは、オペレーティング・システムおよびアプリケーションを含みうる、任意のソフトウェアをコンシューマがデプロイして実行することが可能な、処理、ストレージ、ネットワーク、および、他の基本的なコンピューティング・リソースをプロビジョンすることである。コンシューマは、基礎をなすクラウド・インフラストラクチャを管理または制御しないが、オペレーティング・システム、ストレージ、デプロイされたアプリケーションを制御し、場合によっては選ばれたネットワーキング・コンポーネント（例えば、ホスト・ファイヤウォール）の限られた制御を行う。
【００１８】
デプロイメント・モデルは、以下の通りである。
プライベート・クラウド：クラウド・インフラストラクチャは、専らある組織のために運用される。クラウド・インフラストラクチャは、その組織またはサードパーティによって管理されてよく、オンプレミスまたはオフプレミスに存在してよい。
コミュニティ・クラウド：クラウド・インフラストラクチャは、いくつかの組織によって共有され、共通の関心事（例えば、ミッション、セキュリティ要件、ポリシー、およびコンプライアンス考慮事項）を有する特定のコミュニティをサポートする。コミュニティ・クラウドは、それらの組織またはサードパーティによって管理されてよく、オンプレミスまたはオフプレミスに存在してよい。
パブリック・クラウド：クラウド・インフラストラクチャは、一般の人々または大規模業界団体に利用可能にされて、クラウド・サービスを販売する組織によって所有される。
ハイブリッド・クラウド：クラウド・インフラストラクチャは、２つ以上のクラウド（プライベート、コミュニティ、またはパブリック）の合成体であり、これらのクラウドは、ユニークなエンティティのままであるが、データおよびアプリケーション・ポータビリティ（例えば、クラウド間の負荷バランシングのためのクラウド・バースティング）を可能にする標準化されるかまたは特許で保護された技術によって一緒にまとめられる。
【００１９】
クラウド・コンピューティング環境は、ステートレス、疎結合、モジュール性、およびセマンティック・インターオペラビリティに焦点を絞ったサービス指向型である。クラウド・コンピューティングの核心にあるのは、相互接続されたノードのネットワークを含むインフラストラクチャである。
【００２０】
次に、図１を参照すると、クラウド・コンピューティング・ノードの例の概略図が示される。クラウド・コンピューティング・ノード１０は、適切なクラウド・コンピューティング・ノードの例に過ぎず、本明細書に記載される本発明の実施形態の使用法または機能性の範囲についていかなる限定も示唆するものではない。それでも、クラウド・コンピューティング・ノード１０は、先に提示された機能性のいずれかを実装しもしくは行うこと、またはその両方が可能である。
【００２１】
クラウド・コンピューティング・ノード１０には、コンピュータ・システム／サーバ１２、あるいは多くの他の汎用もしくは専用コンピューティング・システム環境または構成を用いて操作可能な、通信デバイスのような、ポータブル電子デバイスがある。コンピューティング・システム／サーバ１２とともに用いるのに適しうる、よく知られたコンピューティング・システム、環境、もしくは、構成またはそれらのすべての例は、以下に限定されないが、パーソナル・コンピュータ・システム、サーバ・コンピュータ・システム、シン・クライアント、シック・クライアント、ハンドヘルドまたはラップトップ・デバイス、マルチプロセッサ・システム、マイクロプロセッサ・ベースのシステム、セットトップ・ボックス、プログラム可能な家電製品、ネットワークＰＣ、ミニコンピュータ・システム、メインフレームコンピュータ・システム、および上記のシステムまたはデバイスのいずれかを含む分散クラウド・コンピューティング環境、および同様のものを含む。
【００２２】
コンピュータ・システム／サーバ１２は、コンピュータ・システムによって実行される、プログラム・モジュールのような、コンピュータ・システムにより実行可能な命令の一般的な文脈で記載されてよい。一般に、プログラム・モジュールは、特定のタスクを行う、または特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、ロジック、データ構造などを含んでよい。コンピュータ・システム／サーバ１２は、通信ネットワークを通してリンクされたリモート処理デバイスによってタスクが行われる分散クラウド・コンピューティング環境において実行されてよい。分散クラウド・コンピューティング環境では、プログラム・モジュールがメモリ・ストレージ・デバイスを含むローカルおよびリモート・コンピュータ・システム・ストレージ媒体の両方に配置されてよい。
【００２３】
図１に示されるように、クラウド・コンピューティング・ノード１０中のコンピュータ・システム／サーバ１２は、汎用コンピューティング・デバイスの形態で示される。コンピュータ・システム／サーバ１２のコンポーネントは、以下には限定されないが、１つ以上のプロセッサまたは処理ユニット１６、システム・メモリ２８、およびシステム・メモリ２８を含めて様々なシステム・コンポーネントをプロセッサ１６へ結合するバス１８を含んでよい。
【００２４】
バス１８は、メモリ・バスまたはメモリ・コントローラ、周辺バス、アクセラレイティッド・グラフィックス・ポート、および様々なバス・アーキテクチャのいずれかを用いたプロセッサまたはローカル・バスを含めて、いくつかのタイプのバス構造のいずれかの１つ以上を表す。限定ではなく、例として、かかるアーキテクチャは、工業標準アーキテクチャ（ＩＳＡ：Ｉｎｄｕｓｔｒｙ  Ｓｔａｎｄａｒｄ  Ａｒｃｈｉｔｅｃｔｕｒｅ）バス、マイクロ・チャネル・アーキテクチャ（ＭＣＡ：Ｍｉｃｒｏ  Ｃｈａｎｎｅｌ  Ａｒｃｈｉｔｅｃｔｕｒｅ）バス、エンハンストＩＳＡ（ＥＩＳＡ：Ｅｎｈａｎｃｅｄ  ＩＳＡ）バス、ビデオエレクトロニクス規格協会（ＶＥＳＡ：Ｖｉｄｅｏ  Ｅｌｅｃｔｒｏｎｉｃｓ  Ｓｔａｎｄａｒｄｓ  Ａｓｓｏｃｉａｔｉｏｎ）ローカル・バス、およびペリフェラル・コンポーネント・インターコネクト（ＰＣＩ：Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ）バスを含む。
【００２５】
コンピュータ・システム／サーバ１２は、典型的に、様々なコンピュータ・システム可読媒体を含む。かかる媒体は、コンピュータ・システム／サーバ１２によってアクセス可能な任意の利用可能な媒体であってよく、揮発性および不揮発性媒体、リムーバブルおよび非リムーバブル媒体の両方を含む。
【００２６】
システム・メモリ２８は、ランダム・アクセス・メモリ（ＲＡＭ：ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ）３０もしくはキャッシュ・メモリ３２またはその両方のような、揮発性メモリの形態のコンピュータ・システム可読媒体を含むことができる。コンピュータ・システム／サーバ１２は、さらに、他のリムーバブル／非リムーバブル、揮発性／不揮発性コンピュータ・システム・ストレージ媒体を含んでよい。例としてのみ、非リムーバブル、不揮発性磁気媒体（示されず、典型的に、「ハードドライブ」と呼ばれる）から読み取り、それらに書き込むためにストレージ・システム３４を設けることができる。示されないが、リムーバブル、不揮発性磁気ディスク（例えば、「フレキシブルディスク」）から読み取り、それらに書き込むための磁気ディスク・ドライブ、およびＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭまたは他の光媒体のようなリムーバブル、不揮発性光ディスクから読み取り、それらに書き込むための光ディスク・ドライブを設けることができる。かかる事例では、各々を１つ以上のデータ媒体インターフェースによってバス１８へ接続できる。以下にさらに図示され、記載されるように、メモリ２８は、本発明の実施形態の機能を実施するように構成されたプログラム・モジュールのセット（例えば、少なくとも１つ）を有する少なくとも１つのプログラム製品を含んでよい。
【００２７】
プログラム・モジュール４２のセット（少なくとも１つ）、ならびにオペレーティング・システム、１つ以上のアプリケーション・プログラム、他のプログラム・モジュールおよびプログラム・データを有する、プログラム／ユーティリティ４０が、限定ではなく、例として、メモリ２８に記憶されてよい。オペレーティング・システム、１つ以上のアプリケーション・プログラム、他のプログラム・モジュール、およびプログラム・データの各々またはそれらの何らかの組み合わせがネットワーキング環境の実装を含んでもよい。プログラム・モジュール４２は、一般に、本明細書に記載されるような、本発明の実施形態の機能もしくは方法論またはその両方を実施する。
【００２８】
コンピュータ・システム／サーバ１２は、さらに、キーボード、ポインティング・デバイス、ディスプレイ２４などのような１つ以上の外部デバイス１４、ユーザがコンピュータ・システム／サーバ１２と対話することを可能にする１つ以上のデバイス、もしくはコンピュータ・システム／サーバ１２が１つ以上の他のコンピューティング・デバイスと通信することを可能にする任意のデバイス（例えば、ネットワーク・カード、モデムなど）またはそれらのすべてと通信してよい。かかる通信は、入力／出力（Ｉ／Ｏ）インターフェース２２を介して発生することができる。なおさらに、コンピュータ・システム／サーバ１２は、１つ以上のネットワーク、例えば、ローカル・エリア・ネットワーク（ＬＡＮ：ｌｏｃａｌ  ａｒｅａ  ｎｅｔｗｏｒｋ）、一般的なワイド・エリア・ネットワーク（ＷＡＮ：ｗｉｄｅ  ａｒｅａ  ｎｅｔｗｏｒｋ）、もしくは公衆ネットワーク（例えば、インターネット）またはそれらのすべてとネットワーク・アダプタ２０を介して通信できる。図示されるように、ネットワーク・アダプタ２０は、バス１８を介してコンピュータ・システム／サーバ１２の他のコンポーネントと通信する。理解されるべきは、示されないが、他のハードウェアもしくはソフトウェア・コンポーネントまたはその両方をコンピュータ・システム／サーバ１２とともに用いることができるであろうということである。例は、以下には限定されないが、マイクロコード、デバイス・ドライバ、冗長処理ユニット、外部ディスク・ドライブ・アレイ、ＲＡＩＤシステム、テープ・ドライブ、およびデータ・アーカイブ・ストレージ・システムなどを含む。
【００２９】
次に、図２を参照すると、例示的なクラウド・コンピューティング環境５０が図示される。示されるように、クラウド・コンピューティング環境５０は、例えば、携帯情報端末（ＰＤＡ：ｐｅｒｓｏｎａｌ  ｄｉｇｉｔａｌ  ａｓｓｉｓｔａｎｔ）または携帯電話５４Ａ、デスクトップ・コンピュータ５４Ｂ、ラップトップ・コンピュータ５４Ｃ、もしくは自動車コンピュータ・システム５４Ｎまたはそれらのすべてなど、クラウド・コンシューマによって用いられるローカル・コンピューティング・デバイスが通信してよい、１つ以上のクラウド・コンピューティング・ノード１０を含む。ノード１０は、互いに通信してよい。これらのノードは、先に記載されたプライベート、コミュニティ、パブリック、もしくはハイブリッド・クラウド、またはそれらの組み合わせのような、１つ以上のネットワークにおいて、物理的または仮想的にグループ分けされてよい（示されない）。これは、クラウド・コンシューマがそのためのリソースをローカル・コンピューティング・デバイス上に維持する必要がない、インフラストラクチャ、プラットフォームもしくはソフトウェア・アズ・サービスまたはそれらのすべてをクラウド・コンピューティング環境５０が提供することを許容する。理解されるのは、図２に示されるタイプのコンピューティング・デバイス５４Ａ〜Ｎが、例示に過ぎないことが意図され、コンピューティング・ノード１０およびクラウド・コンピューティング環境５０が、任意のタイプのネットワークもしくはネットワークによりアドレス可能な接続またはその両方を通じて（例えば、ｗｅｂブラウザを用いて）、任意のタイプのコンピュータ化デバイスと通信できることである。
【００３０】
次に、図３を参照すると、クラウド・コンピューティング環境５０（図２）によって提供される機能抽象化層のセットが示される。予め理解されるべきは、図３に示されるコンポーネント、層、および機能が例示に過ぎないことが意図され、本発明の実施形態がそれらには限定されないことである。図示されるように、以下の層および対応する機能が提供される。
【００３１】
ハードウェアおよびソフトウェア層６０は、ハードウェアおよびソフトウェア・コンポーネントを含む。ハードウェア・コンポーネントの例は、メインフレーム６１、ＲＩＳＣ（縮小命令セット・コンピュータ：Ｒｅｄｕｃｅｄ  Ｉｎｓｔｒｕｃｔｉｏｎ  Ｓｅｔ  Ｃｏｍｐｕｔｅｒ）アーキテクチャ・ベースのサーバ６２、サーバ６３、ブレード・サーバ６４、ストレージ・デバイス６５、ならびにネットワークおよびネットワーキング・コンポーネント６６を含む。いくつかの実施形態において、ソフトウェア・コンポーネントは、ネットワーク・アプリケーション・サーバ・ソフトウェア６７およびデータベース・ソフトウェア６８を含む。
【００３２】
仮想化層７０は、仮想エンティティの以下の例、すなわち、仮想サーバ７１、仮想ストレージ７２、仮想プライベート・ネットワークを含む、仮想ネットワーク７３、仮想アプリケーションおよびオペレーティング・システム７４、ならびに仮想クライアント７５がそれから提供されてよい抽象化層を提供する。
【００３３】
一例では、管理層８０は、以下に記載される機能を提供してよい。リソース・プロビジョニング８１は、クラウド・コンピューティング環境内でタスクを行うために利用されるコンピューティング・リソースおよび他のリソースの動的な調達を提供する。計量及び料金設定８２は、クラウド・コンピューティング環境内でリソースが利用される際のコスト追跡、およびこれらのリソースの消費に対する課金または請求を提供する。一例では、これらのリソースは、アプリケーション・ソフトウェア・ライセンスを含んでよい。セキュリティは、クラウド・コンシューマおよびタスクについての識別情報検証、ならびにデータおよび他のリソースのための保護を提供する。ユーザ・ポータル８３は、コンシューマおよびシステム・アドミニストレータのためにクラウド・コンピューティング環境へのアクセスを提供する。サービス・レベル管理８４は、要求されるサービス・レベルが満たされるように、クラウド・コンピューティング・リソース割り当ておよび管理を提供する。サービス・レベル・アグリメント（ＳＬＡ：Ｓｅｒｖｉｃｅ  Ｌｅｖｅｌ  Ａｇｒｅｅｍｅｎｔ）計画および履行８５は、それらに対する将来の要求がＳＬＡに従って予期されるクラウド・コンピューティング・リソースのための事前配置およびその調達を提供する。
【００３４】
ワークロード層９０は、クラウド・コンピューティング環境がそのために利用されてよい機能性の例を提供する。この層から提供されてよいワークロードおよび機能の例は、マッピングおよびナビゲーション９１、ソフトウェア開発およびライフサイクル管理９２、仮想教室教育配信９３、データ解析処理９４、取引処理９５、および測位９６を含む。
【００３５】
近頃、測位技術に対するニーズが増加している。例えば、ユーザがタクシーを予約したいと望むときに、タクシーの運転手は、ユーザの位置を知る必要があろう。ユーザの位置を、ユーザによって用いられる携帯電話のような、デバイスを用いて決定できる。デバイスの位置をユーザの位置と見做すことができる。ユーザの位置を決定するためにＧＰＳまたは他の衛星ベースの測位システムを用いることできる。しかしながら、ＧＰＳまたは他の衛星ベースの測位システムは、完全ではなく、いくつかのケースでは安定に作動できない。例えば、ＧＰＳシステムは、測位サービスを提供するために、十分な強度かつ少なくとも３つの測位衛星の衛星信号がモバイル・デバイスによって検出されることを必要とする。そのうえ、ＧＰＳシステムの精度を損なう条件がありうる。
【００３６】
図４は、本開示のある実施形態に従ってデバイス４１０の位置を決定するための環境４００の概略図を示す。デバイス４１０は、モバイル・デバイス、ハンドへルド・デバイス、携帯電話、スマートフォン、カメラ、ラップトップ、タブレット、トランシーバ、携帯情報端末（ＰＤＡ）、または本開示の測位技術を適用するのに適した現在知られているか、また開発されることになる任意の他のタイプのデバイスとすることができる。デバイス４１０をユーザによって運び、または車両中にデプロイできる。デバイス４１０は、画像または写真を取得するのに適した撮影装置を備えることができる。撮影装置は、カメラを備えることができる。デバイス４１０は、デバイス４１０の方位を決定するためのセンサも備えることができる。センサは、デジタル・コンパス、ジャイロスコープ、または現在知られているか、または開発されることになる他の指向性装置とすることができる。
【００３７】
デバイス４１０の位置を決定するために、デバイス４１０の撮影装置を用いて少なくとも２つの画像を取得できる。少なくとも２つの画像を、同じ位置で、または測位システムによって単一の位置と見做されるのに互いに十分に近い２つの位置で取得できる。例えば、第１の画像を取得した後に、デバイスが角度を回転させることができて、その後、第２の画像を取得できる。少なくとも２つの画像は、第１の画像および第２の画像を備えることができる。少なくとも１つの対象を、それぞれ、第１の画像および第２の画像の各々において特定できる。一例では、第１の画像中で特定された第１のオブジェクト４２０をレストランとすることができ、第２の画像中で特定された第２のオブジェクト４３０をホテルとすることができる。
【００３８】
第１の画像を取得するステップに加えて、デバイスの第１の方位４４０を決定できる。第２の画像を取得するステップに加えて、デバイスの第２の方位４５０を決定できる。本開示の様々な実施形態によれば、第１の画像または第２の画像を取得するステップを第１の方位４４０または第２の方位４５０を取得するステップの前、同時、または後に実装できる。一例では、デバイス４１０の撮影装置を用いて第１のオブジェクト４２０および第２のオブジェクト４３０を撮影するステップと並行して、第１の方位４４０および第２の方位４５０を取得できる。
【００３９】
第１の方位４４０は、撮影装置を用いて第１のオブジェクト４２０を撮影するときのデバイスの軸方向と参照方向との間の角度とすることができる。第２の方位４５０は、第２のオブジェクト４３０を撮影するときのデバイスの軸方向と参照方向との間の角度とすることができる。本開示の様々な実施形態によれば、参照方向は、東、あるいはデバイス４１０、ユーザ、デバイス上で実行しているアプリケーション、ローカルもしくはリモート・サーバ、またはサービス・プロバイダなどによって設定もしくは選択される任意の他の方向とすることができる。デバイスの軸方向は、デバイスから、それぞれ、第１のオブジェクト４２０または第２のオブジェクト４３０へ向かう方向とすることができる。
【００４０】
本開示の様々な実施形態によれば、デバイス４１０の撮影装置を用いて画像を撮影する間にマーカまたは識別子をデバイス４１０の表示装置上に示すことができる。一例として、第１のオブジェクト４２０もしくは第２のオブジェクト４３０またはその両方を撮影するためにデバイス４１０を回すことができる。表示装置上に示されるオブジェクト４２０またはオブジェクト４３０が、撮影中に表示装置上に示されたマーカまたは識別子とマッチングすれば、デバイス４１０の軸方向と参照方向との間の角度を、それそれ、第１の方位４４０または第２の方位４５０として記録できる。
【００４１】
本開示の様々な実施形態によれば、デバイス４１０の第１の方位４４０および第２の方位４５０を決定するためにデバイス４１０のセンサも用いることができる。表示装置上に示されるオブジェクト４２０またはオブジェクト４３０が、撮影中に表示装置上に示されたマーカまたは識別子とマッチングすれば、デバイス４１０の方位を決定するためにセンサを用いることができて、センサを用いて取得された方位を、それぞれ、第１の方位４４０または第２の方位４５０として記録できる。
【００４２】
第１のオブジェクト４２０および第２のオブジェクト４３０の位置を取得できる。本開示の様々な実施形態によれば、第１のオブジェクトの位置または第２のオブジェクトの位置を取得するステップを第１の方位４４０または第２の方位４５０を取得するステップの前、同時、または後に実装できる。位置は、オブジェクト位置のデータベース、例えば、複数の実施形態によれば、記憶されたストリートビュー・マップをもつクラウド・サーバから引き出されてもよい。
【００４３】
本開示の様々な実施形態によれば、種々の建物または他のタイプのランドマークの位置を予め取得して、データベース中に記録できる。データベース中の記録は、建物またはランドマークの識別子、建物またはランドマークの画像、あるいはこれらの建物またはランドマークの位置などを備えることができる。データベースは、デバイス自体に記憶されてもよく、またはクラウド・ストレージのようなリモート・ストレージ中にあってもよい。例えば、複数の実施形態において、ストリートビュー・マップがデータベースとしての役割を果たしてもよい。かかる実施形態では、第１のオブジェクトおよび第２のオブジェクトの写真が１つ以上のネットワークを介してサーバへアップロードされてよい。複数の実施形態において、写真は、アップロードする前に白黒へ変換されてよい。第１の画像および第２の画像を取得するステップに応答し、現在知られているか、また開発されることになる様々なタイプの画像特定技術を用いて、第１のオブジェクト４２０および第２のオブジェクト４３０を、それぞれ、第１の画像および第２の画像中で特定できる。第１のオブジェクト４２０および第２のオブジェクト４３０の識別子を決定して、それぞれ、データベース中の記録とマッチングさせることができる。データベース記録は、様々な位置画像および関連する位置データを含んでよい。位置データは、複数の実施形態において、記憶されたＧＰＳデータを含む。対応する記録を発見するステップに応答して、第１のオブジェクト４２０および第２のオブジェクト４３０の位置を、それぞれ対応する記録に基づいて、決定できる。別の例では、第１の画像中の第１のオブジェクト４２０を備える領域をデータベース中の記録の画像と比較できる。
【００４４】
本開示の様々な実施形態によれば、第１のオブジェクト４２０もしくは第２のオブジェクト４３０またはその両方を特定するためにユーザ入力も用いることができる。例えば、ユーザは、撮影された建物またはランドマークをよく知っていれば、第１のオブジェクト４２０もしくは第２のオブジェクト４３０またはその両方の特定に寄与するために建物またはランドマークの名称または他の情報を入力できる。本開示の様々な実施形態によれば、第１のオブジェクト４２０の第１の位置がデータベースから取得されず、または第２のオブジェクト４３０の第２の位置が取得されなければ、デバイス４１０のユーザへ通知を提示することができる。一例として、通知は、デバイス４１０の表示装置上に示された通知メッセージとすることができる。別の例では、サーバからデバイス４１０へ通知メッセージを送り、次に、デバイス４１０の表示装置上に示すことができる。
【００４５】
図５は、本開示のある実施形態に従ってデバイス４１０の位置を決定するための座標系の例５００の概略図を示す。一例では、第１のオブジェクト４２０および第２のオブジェクト４３０の位置を座標系中の第１の点５２０および第２の点５３０へマッピングできる。一例として、座標系の原点５１０として参照位置を選択し、座標系のＸ軸として参照方向を選択し、座標系のＹ軸としてＸ軸（参照方向）に垂直な方向を選択することによって座標系を動的に確立できる。別の例では、参照方向からある角度をもつ方向を座標系のＸ軸として選択することによって座標系を確立できる。
【００４６】
本開示の様々な実施形態によれば、第１のオブジェクト４２０および第２のオブジェクト４３０の位置を経度および緯度、あるいは現在知られているか、または開発されることになる位置を提示するのに適した任意の他のフォーマットで表すことができる。参照位置を選択して、座標系の原点５１０として設定できる。一例では、参照位置は、第１のオブジェクト４２０および第２のオブジェクト４３０の位置に近い位置とすることができる。第１のオブジェクト４２０の（経度１，緯度１）と参照位置の（経度３，緯度３）との間の差を第１の点５２０のｘ座標およびｙ座標として設定できる。第２のオブジェクト４３０の（経度２，緯度２）と参照位置の（経度３，緯度３）との間の差を第２の点５３０のｘ座標およびｙ座標として設定できる。位置と座標との間のマッピングが一例として表１に示される。位置および座標をマッピングするために他のタイプのマッピング方法も用いることができる。例えば、位置の経度および緯度を数で表すことができて、これらの数に座標系中の座標を取得するために予め設定された定数を乗算できる。定数は、座標系の精度要件に合致する任意の値とすることができる。
【００４７】
【表１】
2020528180.tif 000003
【００４８】
座標系中の第１の方位４４０および第２の方位４５０に応じて第１の線および第２の線を決定できる。第１の線は、第１の点５２０を通過し、第１の線と座標系のＸ軸との間の角度５４０は、第１の方位４４０に等しい。第２の線は、第２の点５３０を通過し、第２の線とＸ軸との間の角度５５０は、第２の方位４５０に等しい。第１の線および第２の線は、交点５１０で互いに交わってよい。交点５１０のｘ座標およびｙ座標を決定して、次に、位置へマッピングできる。座標系中の点が位置に対応するので、交点５１０のｘ座標およびｙ座標に応じてデバイス４１０の位置を取得できる。
【００４９】
本開示の様々な実施形態によれば、座標系中の交点５１０のｘ座標およびｙ座標は、以下の式：
Ｘｃ＝（Ｙｂ−ｔａｎθ１・Ｘｂ−Ｙａ＋ｔａｎθ２・Ｘａ）／（ｔａｎθ２−ｔａｎθ１）、
Ｙｃ＝ｔａｎθ２・Ｘｃ＋Ｙａ−ｔａｎθ２Ｘａ
により、ここでＸｃは、交点５１０のｘ座標であり、Ｙｃは、交点５１０のｙ座標であり、Ｘａは、第１の点５２０のｘ座標であり、Ｙａは、第１の点５２０のｙ座標であり、Ｘｂは、第２の点５３０のｘ座標であり、Ｙｂは、第２の点５３０のｙ座標であり、θ１は、デバイスの第１の方位４４０に等しく、θ２は、デバイスの第２の方位４５０に等しい。交点５１０のｘ座標およびｙ座標に応じてデバイス４１０の位置を取得できる。座標と位置との間のマッピングが一例として表２に示される。座標および位置をマッピングするために他のタイプのマッピング方法も用いることができる。
【００５０】
【表２】
2020528180.tif 000004
【００５１】
本開示の様々な実施形態によれば、座標系中の座標を用いて位置を表すことができる。一例では、座標系の原点、Ｘ軸、およびＹ軸を予め設定できて、種々の建物またはランドマークの位置の座標をデータベース中に記録できる。第１のオブジェクト４２０および第２のオブジェクト４３０を特定するステップに応答する際に、第１のオブジェクト４２０および第２のオブジェクト４３０の位置の座標をデータベースから直接に取得できる。図５を参照すると、第１のオブジェクト４２０および第２のオブジェクト４３０の位置が座標系中の第１の点５２０および第２の点５３０に対応する。
【００５２】
座標系中の第１の方位４４０および第２の方位４５０に応じて第１の線および第２の線を決定できる。第１の線は、第１の点５２０を通過し、第１の線と座標系のＸ軸との間の角度５４０は、第１の方位４４０に応じて決定される。第２の線は、第２の点５３０を通過し、第２の線とＸ軸との間の角度５５０は、第２の方位４５０に応じて決定される。
【００５３】
一例では、参照方向は、座標系のＸ軸方向と同じとすることができ、角度５４０が第１の方位４４０と等しく、角度５５０が第２の方位４５０と等しい。別の例では、参照方向とＸ軸方向との間に差があり、角度５４０および角度５５０を取得するためにこの差を第１の方位４４０または第２の方位４５０とともに考慮することができる。例えば、Ｘ軸方向が東方向であり、参照方向が東１０度北であれば、差は１０度であり、角度５４０を取得するためには第１の方位４４０にこの差を加えることができる。別の例では、Ｘ軸方向が東方向であり、参照方向が東１０度南であれば、差は−１０度である。
【００５４】
第１の線および第２の線は、交点５１０で互いに交わってよい。交点５１０のｘ座標およびｙ座標を決定できる。座標系中の点が位置に対応するので、デバイス４１０の位置を決定できる。
【００５５】
本開示の様々な実施形態によれば、座標系中の交点５１０のｘ座標およびｙ座標は、以下の式：
Ｘｃ＝（Ｙｂ−ｔａｎθ１・Ｘｂ−Ｙａ＋ｔａｎθ２・Ｘａ）／（ｔａｎθ２−ｔａｎθ１）、
Ｙｃ＝ｔａｎθ２・Ｘｃ＋Ｙａ−ｔａｎθ２Ｘａ
により、ここでＸｃは、交点５１０のｘ座標であり、Ｙｃは、交点５１０のｙ座標であり、Ｘａは、第１の点５２０のｘ座標であり、Ｙａは、第１の点５２０のｙ座標であり、Ｘｂは、第２の点５３０のｘ座標であり、Ｙｂは、第２の点５３０のｙ座標であり、θ１は、デバイスの第１の方位４４０に応じて決定され、θ２は、デバイスの第２の方位４５０に応じて決定される。一例では、参照方向は、座標系のＸ軸方向と同じとすることができ、θ１は、第１の方位４４０と等しく、θ２は、第２の方位４５０と等しい。別の例では、参照方向とＸ軸方向との間に差があり、θ１およびθ２を取得するためにこの差を第１の方位４４０または第２の方位４５０に加えることができる。
【００５６】
図６は、本開示のある実施形態に従ってデバイス４１０の位置を決定するための別の座標系の例６００の概略図を示す。第１のオブジェクト４２０および第２のオブジェクト４３０の位置を座標系中の第１の点６２０および第２の点６３０へマッピングできる。一例として、座標系の原点５１０として第１の点６２０を選択し、座標系のＸ軸として参照方向を選択し、座標系のＹ軸としてＸ軸（参照方向）に垂直な方向を選択することによって座標系を確立できる。別の例では、参照方向からある角度をもつ方向を座標系のＸ軸として選択することによって座標系を確立できる。
【００５７】
本開示の様々な実施形態によれば、第１のオブジェクト４２０および第２のオブジェクト４３０の位置を経度および緯度、あるいは現在知られているか、または開発されることになる位置を提示するのに適した任意の他のフォーマットで表すことができる。第２のオブジェクト４３０の位置の（経度２，緯度２）と第１のオブジェクト４２０の位置の（経度１，緯度１）との間の差を第２の点６３０のｘ座標およびｙ座標として設定できる。位置と座標との間のマッピングが一例として表３に示される。位置および座標をマッピングするために他のタイプのマッピング方法も用いることができる。例えば、位置の経度および緯度を数で表すことができて、これらの数に座標系中の座標を取得するために予め設定された定数を乗算できる。定数は、必要とされる任意の値とすることができる。
【００５８】
【表３】
2020528180.tif 000005
【００５９】
座標系中の第１の方位４４０および第２の方位４５０に応じて第１の線および第２の線を決定できる。第１の線は、第１の点６２０（座標系の原点）を通過し、第１の線と座標系のＸ軸との間の角度６４０は、第１の方位４４０に等しい。第２の線は、第２の点６３０を通過し、第２の線とＸ軸との間の角度６５０は、第２の方位４５０に等しい。第１の線および第２の線は、交点６１０で互いに交わってよい。交点６１０のｘ座標およびｙ座標を決定して、次に、位置へマッピングできる。交点６１０のｘ座標および座標に応じてデバイス４１０の位置を取得できる。
【００６０】
本開示の様々な実施形態によれば、座標系中の交点６１０のｘ座標およびｙ座標は、以下の式：
Ｘｃ＝（Ｙｂ−ｔａｎθ１・Ｘｂ）／（ｔａｎθ２−ｔａｎθ１）、
Ｙｃ＝ｔａｎθ２・Ｘｃ
により、ここでＸｃは、交点６３０のｘ座標であり、Ｙｃは、交点６３０のｙ座標であり、Ｘｂは、第２の点５２０のｘ座標であり、Ｙｂは、第２の点５２０のｙ座標であり、θ１は、デバイスの第１の方位４４０に等しく、θ２は、デバイスの第２の方位４５０に等しい。
【００６１】
図７は、本開示のある実施形態による測位のための方法例７００のフローチャートである。本開示の様々な実施形態によれば、デバイス４１０、またはデバイス４１０の近くにある別のデバイスによって方法７００を実装できる。別の例では、方法のいくつかのステップをデバイス４１０またはデバイス４１０の近くにある別のデバイスによって実装でき、方法のいくつかのステップをデバイス４１０が１つ以上のネットワークを通じて通信するローカルまたはリモート・サーバにおいて実装できる。いくつかの環境では、方法を１つ以上のデバイス４１０、デバイス４１０の近くにある別のデバイス、およびローカルもしくはリモート・サーバによって共同で実装できる。
【００６２】
ブロック７１０において、デバイスを用いて第１の画像を取得できて、デバイスの第１の方位を決定できる。ブロック７２０において、デバイスを用いて第２の画像を取得できて、デバイスの第２の方位を決定できる。
【００６３】
一例では、デバイスの撮影装置を用いて第１の画像および第２の画像を取得できる。少なくとも２つの画像を、同じ位置で、または測位システムによって単一の位置と見做されるのに互いに概して十分に近い２つの位置で取得できる。第１の方位は、撮影装置を用いて第１のオブジェクトを撮影するときのデバイスの軸方向と参照方向との間の角度とすることができる。第２の方位は、第２のオブジェクトを撮影するときのデバイスの軸方向と参照方向との間の角度とすることができる。
【００６４】
ブロック７３０において、第１の画像に含まれた第１のオブジェクトの第１の位置および第２の画像に含まれた第２のオブジェクトの第２の位置をストリートビュー・データベースから決定できる。ブロック７４０において、第１の方位、第２の方位、第１のオブジェクトの第１の位置および第２のオブジェクトの第２の位置に応じてデバイスの位置を決定できる。
【００６５】
理解されるべきは、これらのステップ（第１の画像を取得するステップ、第２の画像を取得するステップ、第１の方位を決定するステップ、第２の方位を決定するステップ、第１の位置を決定するステップ、第２の位置を決定するステップなど）のシーケンスが随意的なことである。例えば、第１の方位を決定する、または第２の方位を決定するステップを第１の画像を取得する、または第２の画像を取得するステップの前、同時、または後に実装できる。第１の位置を決定する、または第２の位置を決定するステップを第１の方位を取得する、または第２の方位を取得するステップの前、同時、または後に実装することもできる。
【００６６】
本開示のいくつかの実施形態において、デバイスを用いて第３の画像も取得できて、デバイスの第３の方位を決定できる。次に、第３の画像に含まれた第３のオブジェクトの第３の位置を決定できる。本開示の様々な方法を用いて、第１の方位、第２の方位、第１のオブジェクトの第１の位置および第２のオブジェクトの第２の位置に応じてデバイスの第１の位置を決定できる。本開示の様々な方法を用いて、第１の方位、第３の方位、第１のオブジェクトの第１の位置および第３のオブジェクトの第３の位置に応じてデバイスの第２の位置を決定できる。次に、デバイスの第１の位置およびデバイスの第２の位置を用いて、デバイスの位置を取得することができる。例えば、デバイスの第１の位置およびデバイスの第２の位置の中間位置を算出して、デバイスの位置として用いることができる。
【００６７】
図８は、本開示のある実施形態による測位のための別の方法例８００のフローチャートである。本開示の様々な実施形態によれば、方法８００をデバイス４１０、またはデバイス４１０の近くにある別のデバイスによって実行できる。別の例では、方法８００を１つ以上のネットワークを通じてデバイス４１０と通信するローカルまたはリモート・サーバにおいて実行できる。いくつかの環境では、方法を１つ以上のデバイス４１０、デバイス４１０の近くにある別のデバイス、およびローカルもしくはリモート・サーバによって共同で実装できる。
【００６８】
ブロック８１０において、デバイスによってキャプチャーされた、第１の画像をデバイスから受信できる。デバイスの第１の方位も同様にデバイスから受信できる。ブロック８２０において、デバイスによってキャプチャーされた、第２の画像をデバイスから受信できて、デバイスの第２の方位も同様に受信できる。
【００６９】
一例では、デバイスの撮影装置を用いて第１の画像および第２の画像を取得して、１つ以上のネットワークを通じてリモート・サーバへ送信できる。少なくとも２つの画像を、同じ位置で、または測位システムによって単一の位置と見做されるのに互いに概して十分に近い２つの位置で取得できる。第１の方位は、撮影装置を用いて第１のオブジェクトを撮影するときのデバイスの軸方向と参照方向との間の角度とすることができる。第２の方位は、第２のオブジェクトを撮影するときのデバイスの軸方向と参照方向との間の角度とすることができる。
【００７０】
ブロック８３０において、第１の画像に含まれた第１のオブジェクトの第１の位置および第２の画像に含まれた第２のオブジェクトの第２の位置をオブジェクト位置のデータベースから決定できる。ブロック８４０において、第１の方位、第２の方位、第１のオブジェクトの第１の位置および第２のオブジェクトの第２の位置に応じてデバイスの位置を決定できる。１つ以上のネットワークを通じてデバイスの位置をデバイスへ送信できる。
【００７１】
理解されるべきは、これらのステップ（第１の画像を取得、受信するステップ、第２の画像を受信するステップ、第１の方位を決定するステップ、第２の方位を決定するステップ、第１の位置を決定するステップ、第２の位置を決定するステップなど）のシーケンスが随意的なことである。例えば、第１の方位を受信する、または第２の方位を受信するステップを第１の画像を受信する、または第２の画像を受信するステップの前、同時、または後に実装できる。第１の位置を決定する、または第２の位置を決定するステップを第１の方位を受信する、または第２の方位を受信するステップの前、同時、または後に実装することもできる。
【００７２】
本開示の別の実施形態によれば、コンピュータ・システムが提供される。コンピュータ・システムは、プロセッサおよびプロセッサに結合されたコンピュータ可読メモリを備える。メモリは、プロセッサによって実行されたときに、以下の動作、すなわち、デバイスを用いて第１の画像を取得し、デバイスの第１の方位を決定するステップと、デバイスを用いて第２の画像を取得し、デバイスの第２の方位を決定するステップと、第１の画像に含まれた第１のオブジェクトの第１の位置および第２の画像に含まれた第２のオブジェクトの第２の位置を決定するステップと、第１の方位、第２の方位、第１のオブジェクトの第１の位置および第２のオブジェクトの第２の位置に応じてデバイスの位置を決定するステップとを行う命令を備える。
【００７３】
本開示の別の実施形態によれば、コンピュータ・プログラム製品が提供される。コンピュータ・プログラム製品は、それを以て具現されたプログラム命令を有するコンピュータ可読ストレージ媒体を備え、プログラム命令は、プロセッサに、デバイスを用いて第１の画像を取得して、デバイスの第１の方位を決定し、デバイスを用いて第２の画像を取得して、デバイスの第２の方位を決定し、第１の画像に含まれた第１のオブジェクトの第１の位置および第２の画像に含まれた第２のオブジェクトの第２の位置を決定して、第１の方位、第２の方位、第１のオブジェクトの第１の位置および第２のオブジェクトの第２の位置に応じてデバイスの位置を決定するようにさせるために、プロセッサによって実行可能である。
【００７４】
本発明は、集積化の任意の可能な技術的詳細レベルにおけるシステム、方法、もしくはコンピュータ・プログラム製品またはそれらのすべてであってよい。コンピュータ・プログラム製品は、プロセッサに本発明の態様を実施させるためのコンピュータ可読プログラム命令をその上に有する（１つまたは複数の）コンピュータ可読ストレージ媒体を含んでよい。
【００７５】
コンピュータ可読ストレージ媒体は、命令実行デバイスによる使用のための命令を保持して記憶することができる、有形のデバイスとすることができる。コンピュータ可読ストレージ媒体は、例えば、以下には限定されないが、電子ストレージ・デバイス、磁気ストレージ・デバイス、光ストレージ・デバイス、電磁ストレージ・デバイス、半導体ストレージ・デバイス、または前述のものの任意の適切な組み合わせであってよい。コンピュータ可読ストレージ媒体のより具体的な例の非網羅的なリストは、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ（ＲＡＭ）、リード・オンリ・メモリ（ＲＯＭ：ｒｅａｄ−ｏｎｌｙ  ｍｅｍｏｒｙ）、消去可能プログラマブル・リード・オンリ・メモリ（ＥＰＲＯＭ：ｅｒａｓａｂｌｅ  ｐｒｏｇｒａｍｍａｂｌｅ  ｒｅａｄ−ｏｎｌｙ  ｍｅｍｏｒｙまたはフラッシュ・メモリ）、スタティック・ランダム・アクセス・メモリ（ＳＲＡＭ：ｓｔａｔｉｃ  ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ）、ポータブル・コンパクト・ディスク・リード・オンリ・メモリ（ＣＤ−ＲＯＭ：ｐｏｒｔａｂｌｅ  ｃｏｍｐａｃｔ  ｄｉｓｃ  ｒｅａｄ−ｏｎｌｙ  ｍｅｍｏｒｙ）、デジタル多用途ディスク（ＤＶＤ：ｄｉｇｉｔａｌ  ｖｅｒｓａｔｉｌｅ  ｄｉｓｋ）、メモリ・スティック、フレキシブルディスク、パンチ・カードまたはその上に記録された命令を有する溝中の隆起構造など、機械的に符号化されたデバイス、および前述のものの任意の適切な組み合わせを含む。コンピュータ可読ストレージ媒体は、本明細書では、例えば、電波、または他の自由に伝搬する電磁波、導波路もしくは他の送信媒体中を通って伝搬する電磁波（例えば、光ファイバ・ケーブルを通過する光パルス）、またはワイヤを通って送信される電気信号など、それ自体が一時的な信号であると解釈されるべきではない。
【００７６】
本明細書に記載されるコンピュータ可読プログラム命令を、コンピュータ可読ストレージ媒体からそれぞれのコンピューティング／処理デバイスへ、あるいはネットワーク、例えば、インターネット、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワークもしくは無線ネットワークまたはそれらのすべてを介して外部コンピュータまたは外部ストレージ・デバイスへダウンロードできる。ネットワークは、銅送信ケーブル、光送信ファイバ、無線送信、ルータ、ファイヤウォール、スイッチ、ゲートウェイ・コンピュータもしくはエッジ・サーバまたはそれらのすべてを備えてよい。各コンピューティング／処理デバイス中のネットワーク・アダプタ・カードまたはネットワーク・インターフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、それらのコンピュータ可読プログラム命令をそれぞれのコンピューティング／処理デバイス内のコンピュータ可読記憶媒体に記憶するために転送する。
【００７７】
本発明のオペレーションを実施するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ（ＩＳＡ：ｉｎｓｔｒｕｃｔｉｏｎ−ｓｅｔ−ａｒｃｈｉｔｅｃｔｕｒｅ）命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路素子のための構成データ、あるいはＳｍａｌｌｔａｌｋ、Ｃ＋＋などのようなオブジェクト指向プログラミング言語、および「Ｃ」プログラミング言語または同様なプログラミング言語のような、手続き型プログラミング言語を含む、１つ以上のプログラミング言語の任意の組合せで書かれた、ソース・コードまたはオブジェクト・コードのいずれかであってよい。コンピュータ可読プログラム命令は、全体的にユーザのコンピュータ上で、部分的にユーザのコンピュータ上で、スタンド・アロン・ソフトウェア・パッケージとして、部分的にユーザのコンピュータ上かつ部分的にリモート・コンピュータ上で、あるいは全体的にリモート・コンピュータまたはサーバ上で実行してよい。後者のシナリオにおいては、リモート・コンピュータが、ローカル・エリア・ネットワーク（ＬＡＮ）またはワイド・エリア・ネットワーク（ＷＡＮ）を含む、任意のタイプのネットワークを通してユーザのコンピュータへ接続されてよく、あるいは（例えば、インターネット・サービス・プロバイダを用いてインターネットを通して）外部コンピュータへ接続が行われてもよい。いくつかの実施形態では、本発明の態様を行うために、例えば、プログラマブル・ロジック回路素子、フィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ：ｆｉｅｌｄ−ｐｒｏｇｒａｍｍａｂｌｅ  ｇａｔｅ  ａｒｒａｙ）、またはプログラマブル・ロジック・アレイ（ＰＬＡ：ｐｒｏｇｒａｍｍａｂｌｅ  ｌｏｇｉｃ  ａｒｒａｙｓ）を含む、電子回路素子が、コンピュータ可読プログラム命令の状態情報を利用して電子回路素子をパーソナライズすることによって、コンピュータ可読プログラム命令を実行してよい。
【００７８】
本発明の態様が、本発明の実施形態による方法、装置（システム）、およびコンピュータ・プログラム製品のフローチャート説明図もしくはブロック図またはその両方を参照して本明細書に記載される。フローチャート説明図もしくはブロック図またはその両方の各ブロック、およびフローチャート説明図もしくはブロック図またはその両方におけるブロックの組み合わせをコンピュータ可読プログラム命令によって実装できることが理解されるであろう。
【００７９】
これらのコンピュータ可読プログラム命令は、コンピュータまたは他のプログラマブル・データ処理装置のプロセッサを介して実行する、それらの命令が、フローチャートもしくはブロック図またはその両方の１つまたは複数のブロックにおいて指定される機能／動作を実装するための手段を作り出すような、マシンを生成するように汎用コンピュータ、専用コンピュータ、または他のプログラマブル・データ処理装置のプロセッサへ提供されてよい。これらのコンピュータ可読プログラム命令は、コンピュータ可読ストレージ媒体に記憶されてもよく、これらのプログラム命令は、その中に記憶された命令を有するコンピュータ可読ストレージ媒体が、フローチャートもしくはブロック図またはその両方の１つまたは複数のブロックにおいて指定された機能／動作の態様を実装する命令を含んだ製造品を備えるような、特定の仕方で機能するように、コンピュータ、プログラマブル・データ装置、もしくは他のデバイスまたはそれらのすべてに命令することができる。
【００８０】
コンピュータ可読プログラム命令は、コンピュータ、他のプログラマブル装置、または他のデバイス上で実行する命令がフローチャートもしくはブロック図またはその両方の１つまたは複数のブロックにおいて指定される機能／動作を実装するような、コンピュータ実装プロセスを生成するための一連の操作ステップがコンピュータ、他のプログラマブル装置、または他のデバイス上で行われるようにするために、コンピュータ、他のプログラマブル・データ処理装置、または他のデバイス上へロードされてもよい。
【００８１】
図中のフローチャートおよびブロック図は、本発明の様々な実施形態によるシステム、方法、およびコンピュータ・プログラム製品の可能な実装のアーキテクチャ、機能性、およびオペレーションを示す。この点において、フローチャートまたはブロック図中の各ブロックは、指定された論理機能（単数または複数）を実装するための１つ以上の実行可能な命令を備える、モジュール、セグメント、または命令の一部を表してよい。いくつかの代わりの実装では、ブロック中に記された機能が図中に記された順序以外で発生してもよい。例えば、連続して示される２つのブロックが、実際には、実質的に同時に実行されてもよく、または関与する機能性によっては、ブロックがときには逆の順序で実行されてもよい。ブロック図もしくはフローチャート説明図またはその両方の各ブロック、およびブロック図もしくはフローチャート説明図またはその両方におけるブロックの組み合わせを、指定された機能または動作を行う、あるいは専用ハードウェアとコンピュータ命令との組み合わせを実施する専用ハードウェア・ベースのシステムによって実装できることにも気付くであろう。
【００８２】
本開示の様々な実施形態の記載が説明のために提示されたが、これらが網羅的であること、または開示される実施形態を限定することは意図されない。記載された実施形態の範囲および趣旨から逸脱することなく、多くの修正および変更が当業者には明らかであろう。本明細書に用いられる用語法は、実施形態の原理、実用用途または市場に見られる技術を超える技術的改良を説明するために、あるいは本明細書に開示される実施形態を当業者が理解できるようにするために選ばれた。
【図１】
2020528180.tif 000006
【図２】
2020528180.tif 000007
【図３】
2020528180.tif 000008
【図４】
2020528180.tif 000009
【図５】
2020528180.tif 000010
【図６】
2020528180.tif 000011
【図７】
2020528180.tif 000012
【図８】
2020528180.tif 000013
【国際調査報告】
2020528180.tif 000014
2020528180.tif 000015