(57)【特許請求の範囲】
【請求項１】
オンラインオンデマンドサービスプラットフォームを動作するように構成されるシステムであって、
バスと、
前記バスと電気的に接続され、ポイントオブインタレスト（ＰＯＩ）を決定する一連の命令を含む記憶媒体と、
前記バスを介して前記記憶媒体と通信するロジック回路とを備え、前記一連の命令を実行したときに、前記ロジック回路は、前記システムに、
ユーザと関連付けられた対象位置に関する情報を含む電気信号を、端末から、受信させ、
前記対象位置に関する対象ジオコード値を決定させ、
ＰＯＩを決定するために、前記対象ジオコード値に基づいてジオコード構造を横断させ、前記ジオコード構造は複数のジオコード値を格納し、前記複数のジオコード値の各々は複数のＰＯＩに関連付けられており、
前記ジオコード構造及び前記対象ジオコード値に基づいて、前記対象位置に関する少なくとも１つのＰＯＩを決定させる、
ように構成される、
システム。
【請求項２】
前記対象位置に関する対象ジオコード値を決定するために、前記ロジック回路は、前記システムに、
前記ユーザに関連付けられた前記対象位置に関する情報に基づいて、前記対象位置の対象経度値及び前記対象位置の対象緯度値を決定させ、
エンコーディング技術を用いることにより、前記対象位置の前記対象経度値及び前記対象位置の前記対象緯度値に基づいて、前記対象位置に関する前記対象ジオコード値を決定させる、
ように更に構成される、請求項１に記載のシステム。
【請求項３】
前記エンコーディング技術は、ジオハッシュ技術を含む、請求項２に記載のシステム。
【請求項４】
前記ジオコード構造は、ジオコードツリー構造を含み、
前記ジオコード構造及び前記対象ジオコード値に基づいて前記対象位置に関する少なくとも１つのＰＯＩを決定するために、前記ロジック回路は、前記システムに、
探索半径を取得させ、
前記探索半径に基づいてサーチングコーディング長を決定させ、
サーチ技術を用いることにより、前記対象ジオコード値及び前記サーチングコーディング長に基づいて前記ジオコードツリー構造において少なくとも１つの関連ジオコード値を決定させ、
前記少なくとも１つの関連ジオコード値に少なくとも部分的に基づいて前記少なくとも１つのＰＯＩを決定させる、
ように更に構成される、請求項１に記載のシステム。
【請求項５】
前記サーチ技術は、ハッシュサーチを含む、請求項４に記載のシステム。
【請求項６】
前記ジオコード構造は、ジオコード構造を生成する処理によって生成され、前記処理は、
ストレージデバイスから複数のサンプル位置を取得することと、
前記複数のサンプル位置の各々に対してサンプル経度値及びサンプル緯度値を決定することと、
前記複数のサンプル位置の各々の前記サンプル経度値及び前記複数のサンプル位置の各々の前記サンプル緯度値に基づいて、前記複数のサンプル位置の各々に対するサンプルジオコード値を決定することと、
サンプルジオコードに基づいて前記ジオコード構造の複数のノードを生成することと、
前記ジオコード構造を前記ストレージデバイスに保存することと、
を含む、請求項１に記載のシステム。
【請求項７】
前記ジオコード構造を生成するための前記処理は、前記ジオコード構造において前記サンプルジオコード値の各々へ１以上のサンプルＰＯＩを関連付けることを更に含む、請求項６に記載のシステム。
【請求項８】
前記ジオコード構造を生成するための前記処理は、前記ジオコード構造の前記複数のノードに対するハッシュインデックスを決定することを更に含む、請求項６に記載のシステム。
【請求項９】
前記ジオコード構造は、トライツリー構造を含む、請求項１に記載のシステム。
【請求項１０】
前記ロジック回路は、前記システムに、
前記対象位置に対応する近傍位置ジオコード値を決定させ、
前記近傍位置ジオコード値に少なくとも部分的に基づいて前記対象位置に関する前記少なくとも１つのＰＯＩを決定させる、
ように更に構成される、請求項１に記載のシステム。
【請求項１１】
ＰＯＩを決定するためにコンピューティングデバイスにおいて実装される方法であって、
第１のロジック回路によって、ユーザと関連付けられた対象位置に関する情報を含む電気信号を、端末から、受信することと、
前記第１のロジック回路によって、前記対象位置に関する対象ジオコード値を決定することと、
前記第１のロジック回路によって、ＰＯＩを決定するために、前記対象ジオコード値に基づいてジオコード構造を横断することであって、前記ジオコード構造は複数のジオコード値を格納し、前記複数のジオコード値の各々は複数のＰＯＩに関連付けられている、横断することと、
前記第１のロジック回路によって、前記ジオコード構造及び前記対象ジオコード値に基づいて、前記対象位置に関する少なくとも１つのＰＯＩを決定することと、
を備える方法。
【請求項１２】
前記第１のロジック回路によって、前記対象位置に関する前記対象ジオコード値を決定することは、
前記ユーザに関連付けられた前記対象位置に関する情報に基づいて、前記対象位置の対象経度値及び前記対象位置の対象緯度値を決定することと、
エンコーディング技術を用いることにより、前記対象位置の前記対象経度値及び前記対象位置の前記対象緯度値に基づいて、前記対象位置に関する前記対象ジオコード値を決定することと、
を備える、請求項１１に記載の方法。
【請求項１３】
前記エンコーディング技術は、ジオハッシュ技術を含む、請求項１２に記載の方法。
【請求項１４】
前記ジオコード構造は、ジオコードツリー構造を含み、
前記第１のロジック回路により、前記ジオコード構造及び前記対象ジオコード値に基づいて前記対象位置に関する少なくとも１つのＰＯＩを決定することは、
探索半径を取得することと、
前記探索半径に基づいてサーチングコーディング長を決定することと、
前記対象ジオコード値及び前記サーチングコーディング長に基づいて前記ジオコードツリー構造において少なくとも１つの関連ジオコード値を決定することと、
前記少なくとも１つの関連ジオコード値に少なくとも部分的に基づいて前記少なくとも１つのＰＯＩを決定することと、
を含む、請求項１１に記載の方法。
【請求項１５】
前記ジオコード構造は、ジオコード構造を生成する処理によって生成され、前記処理は、
第２のロジック回路によって、ストレージデバイスから複数のサンプル位置を取得することと、
前記第２のロジック回路によって、前記複数のサンプル位置の各々に対してサンプル経度値及びサンプル緯度値を決定することと、
前記第２のロジック回路によって、前記複数のサンプル位置の各々の前記サンプル経度値及び前記複数のサンプル位置の各々の前記サンプル緯度値に基づいて、前記複数のサンプル位置の各々に対するサンプルジオコード値を決定することと、
前記第２のロジック回路によって、サンプルジオコードに基づいて前記ジオコード構造の複数のノードを生成することと、
前記第２のロジック回路によって、前記ジオコード構造を前記ストレージデバイスに保存することと、
を含む、請求項１１に記載の方法。
【請求項１６】
前記第１のロジック回路と前記第２のロジック回路は異なっている、請求項１５に記載の方法。
【請求項１７】
前記ジオコード構造を生成するための前記処理は、前記第２のロジック回路によって、前記ジオコード構造において前記サンプルジオコード値の各々へ１以上のサンプルＰＯＩを関連付けることを更に含む、請求項１５に記載の方法。
【請求項１８】
前記ジオコード構造を生成するための前記処理は、
前記第２のロジック回路によって、前記ジオコード構造の前記複数のノードに対するハッシュインデックスを決定することを更に含む、請求項１５に記載の方法。
【請求項１９】
前記第１のロジック回路によって、前記対象位置に対応する近傍位置ジオコード値を決定することと、
前記第１のロジック回路によって、前記近傍位置ジオコード値に少なくとも部分的に基づいて前記対象位置に関する前記少なくとも１つのＰＯＩを決定することと、
を更に備える、
請求項１１に記載の方法。
【請求項２０】
コンピュータプログラム製品を具現化する非一時的コンピュータ可読記憶媒体であって、前記コンピュータプログラム製品は、コンピューティングデバイスに、
ユーザと関連付けられた対象位置に関する情報を含む電気信号を、端末から、受信させ、
前記対象位置に関する対象ジオコード値を決定させ、
ＰＯＩを決定するために、前記対象ジオコード値に基づいてジオコード構造を横断させ、前記ジオコード構造は複数のジオコード値を格納し、前記複数のジオコード値の各々は複数のＰＯＩに関連付けられており、
前記ジオコード構造及び前記対象ジオコード値に基づいて、前記対象位置に関する少なくとも１つのＰＯＩを決定させる、
ように構成される命令を備える、非一時的コンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本願は、２０１６年４月１２日に出願された中国特許出願第２０１６１０２２９１４４．３号の優先権を主張し、その内容全体が参照により本明細書に援用される。
【０００２】
本願は、概して、データを探索するためのシステム及び方法に関し、より具体的には、位置の周囲のポイントオブインタレスト（ｐｏｉｎｔ  ｏｆ  ｉｎｔｅｒｅｓｔ（ＰＯＩ））を探索するためのシステム及び方法に関する。
【背景技術】
【０００３】
情報技術の発達により、電子製品はより一般的になってきており、必要とされるデータの量は、より膨大になってきている。したがって、膨大なデータのユーザのニーズを満たすために、データ探索の速度がより重要である。
【発明の概要】
【０００４】
本開示の一態様によれば、システムは、１以上のストレージメディアと、前記１以上のストレージメディアと通信するように構成されるプロセッサと、を含んでもよい。前記１以上のストレージメディアは、ポイントオブインタレスト（ＰＯＩ）を決定するための一連の命令を含んでもよい。前記一連の命令を実行したときに、前記プロセッサは、以下の動作の１以上を実行するように指示されてもよい。前記プロセッサは、ユーザと関連付けられた対象位置に関する情報を、端末から、受信してもよい。前記プロセッサは、前記対象位置に関する対象ジオコード値を決定してもよい。前記プロセッサは、ＰＯＩを決定するためにジオコード構造を取得してもよい。前記プロセッサは、前記ジオコード構造及び前記対象ジオコード値に基づいて、前記対象位置に関する少なくとも１つのＰＯＩを決定してもよい。
【０００５】
本開示の別の態様によれば、ＰＯＩを決定する方法は、以下の動作の１以上を含んでもよい。第１のプロセッサは、ユーザと関連付けられた対象位置に関する情報を、端末から、受信してもよい。前記第１のプロセッサは、前記対象位置に関する対象ジオコード値を決定してもよい。前記第１のプロセッサは、ＰＯＩを決定するためにジオコード構造を取得してもよい。前記第１のプロセッサは、前記ジオコード構造及び前記対象ジオコード値に基づいて、前記対象位置に関する少なくとも１つのＰＯＩを決定してもよい。
【０００６】
本開示の更に別の態様によれば、コンピュータプログラム製品を具現化する非一時的コンピュータ可読媒体であって、前記コンピュータプログラム製品は、コンピューティングデバイスに、ユーザと関連付けられた対象位置に関する情報を、端末から、受信させるように構成される命令を備える。前記コンピュータプログラム製品は、前記コンピューティングデバイスに、前記対象位置に関する対象ジオコード値を決定させるようにも構成される命令を含む。前記コンピュータプログラム製品は、ＰＯＩを決定するためにジオコード構造を取得させ、前記ジオコード構造及び前記対象ジオコード値に基づいて、前記対象位置に関する少なくとも１つのＰＯＩを決定させる、ように構成される命令を更に備える。
【０００７】
一部の実施形態では、前記第１のプロセッサは、前記ユーザに関連付けられた前記対象位置に関する情報に基づいて、前記対象位置の対象経度値及び前記対象位置の対象緯度値を決定し、エンコーディング技術を用いることにより、前記対象位置の前記対象経度値及び前記対象位置の前記対象緯度値に基づいて、前記対象位置に関する前記対象ジオコード値を決定してもよい。
【０００８】
一部の実施形態では、前記エンコーディング技術は、ジオハッシュ技術を含む。
【０００９】
一部の実施形態では、前記ジオコード構造は、ジオコードツリー構造を含む。
【００１０】
一部の実施形態では、前記第１のプロセッサは、前記ジオコード構造及び前記対象ジオコード値に基づいて前記対象位置に関する少なくとも１つのＰＯＩを決定してもよい。
【００１１】
一部の実施形態では、前記第１のプロセッサは、探索半径を取得してもよい。前記第１のプロセッサは、前記探索半径に基づいてコーディング長を決定し、前記対象ジオコード値及び前記サーチングコーディング長に基づいて前記ジオコードツリー構造において少なくとも１つの関連ジオコード値を決定し、前記少なくとも１つの関連ジオコード値に少なくとも部分的に基づいて前記少なくとも１つのＰＯＩを決定してもよい。
【００１２】
一部の実施形態では、前記第１のプロセッサが前記少なくとも１つの関連ジオコード値を決定することは、ハッシュサーチを含む。
【００１３】
一部の実施形態では、前記第１のプロセッサは、前記対象位置に対応する近傍位置ジオコード値を決定し、前記近傍位置ジオコード値に少なくとも部分的に基づいて前記対象位置に関する前記少なくとも１つのＰＯＩを決定してもよい。
【００１４】
本開示の別の態様によれば、ジオコード構造を生成するための方法は、以下の動作の１以上を含んでもよい。第２のプロセッサは、ストレージデバイスから複数のサンプル位置を取得してもよい。前記第２のプロセッサは、前記複数のサンプル位置の各々に対してサンプル経度値及びサンプル緯度値を決定し、前記複数のサンプル位置の各々の前記サンプル経度値及び前記複数のサンプル位置の各々の前記サンプル緯度値に基づいて、前記複数のサンプル位置の各々に対するサンプルジオコード値を決定してもよい。前記第２のプロセッサは、前記サンプルジオコードに基づいて前記ジオコード構造の複数のノードを生成してもよい。前記第２のプロセッサは、前記ジオコード構造を前記ストレージデバイスに保存してもよい。
【００１５】
一部の実施形態では、前記第２のプロセッサは、前記ジオコード構造において前記サンプルジオコード値の各々へ１以上のサンプルＰＯＩを関連付けてもよい。
【００１６】
一部の実施形態では、前記第２のプロセッサは、前記ジオコードツリー構造の前記複数のノードに対するハッシュインデックスを決定してもよい。
【００１７】
一部の実施形態では、前記ジオコード構造は、トライツリー構造を含む。
【００１８】
一部の実施形態では、前記第１のプロセッサと前記第２のプロセッサは異なっていてもよい。
【００１９】
更なる特徴は、部分的には以下の説明において述べられることになり、部分的には後記及び添付の図面を検証することにより当業者には明白となろう、又は実施例の製品又は動作から習得することができよう。本開示の特徴は、以下に説明する詳細な例で述べる方法、手段、及び組み合せの様々な態様の実践又は使用によって認識し、習得することができよう。
【図面の簡単な説明】
【００２０】
本開示は、例示的な実施形態について更に説明される。これらの例示的な実施形態は、図面を参照してより詳細に説明される。これらの実施形態は、同様の参照番号が図面のいくつかの図を通じて同様の構造を表す非限定的な例示的実施形態である。
【００２１】
【図１】図１は、本開示の一部の実施形態に係るＰＯＩを決定する例示的なシステムのブロック図である。
【図２】図２は、本開示の一部の実施形態に係る図１に示されるシステムにおいて例示的なコンピューティングデバイスのブロック図である。
【図３】図３は、本開示の一部の実施形態に係る例示的なプロセッサのブロック図である。
【図４】図４は、本開示の一部の実施形態に係るＰＯＩを決定するための例示的な処理のフローチャートである。
【図５】図５は、本開示の一部の実施形態に係るＰＯＩを決定するための別の例示的な処理のフローチャートである。
【図６】図６は、本開示の一部の実施形態に係るジオコード構造を構築するための例示的な処理のフローチャートである。
【図７】図７は、本開示の一部の実施形態に係るＰＯＩを決定するための探索結果を示す。
【発明を実施するための形態】
【００２２】
以下の詳細な説明は、本開示を当業者が製造及び使用することを可能にするように提示され、特定の用途及びその要件の文脈で提供される。開示される実施形態に対する様々な変更は、当業者にとって明示的に明らかであり、本明細書に定義される一般概念は、本開示の趣旨及び範囲から逸脱しないで他の実施形態及び用途に適用されてもよい。よって、本開示は、示される実施形態には限定されないが、特許請求の範囲と一致する最も広い範囲を与えられるべきである。
【００２３】
本明細書で用いられる専門用語は、特定の例の実施形態のみを説明する目的のためのものであり、限定的には意図されない。本明細書で用いられるように、単数形「一つ」及び「前記」は、文脈が他に明らかに示さない限り、複数形も含むことが意図される。用語「備える」、「備えている」及び／又は「含み」、「含む」及び／又は「含んでいる」は、この詳細な説明で用いられるとき、述べられた特徴、整数、ステップ、動作、要素及び／又は構成要素の存在を特定するが、１以上の他の特徴、整数、ステップ、動作、要素、構成要素及び／又はそのグループの存在又は追加を除外しないことが更に理解されるであろう。
【００２４】
これら及び他の特徴、並びに本開示の特徴は、構造の関連要素の動作及び機能の方法並びに部分の組み合わせ及び製造経済と共に、その全てが本開示の一部を形成する添付の図面を参照して以下の詳細な説明を考慮してより明らかとなる。しかし、図面は、単なる図示及び説明のためのものであり、本開示の範囲を限定するように意図されないことが明示的に理解される。図面は寸法通りではないことが理解される。
【００２５】
本開示で用いられるフローチャートは、本開示の一部の実施形態に係るシステム実装の動作を示す。フローチャートの動作は、順番に実装されなくても良いことが明示的に理解されるべきである。逆に、動作は、逆の順序又は同時に実装されてもよい。また、１以上の他の動作は、フローチャートに追加されてもよい。１以上の他の動作は、フローチャートから除去されてもよい。
【００２６】
また、本開示におけるシステム及び方法は、主に、対象位置に関連付けられたＰＯＩを決定することについて記載されるが、これは、一つの単なる例示的な実施形態であるとも理解されるべきである。本開示のシステム又は方法は、別の種類のオンデマンドサービスに適用されてもよい。例えば、システム又は方法は、ナビゲーションシステムに適用されてもよい。ユーザは、位置（例えば、ユーザの位置、ユーザによって指定された位置）に関連付けられたＰＯＩのためのリクエストを開始してもよい。別の例では、本開示のシステム又は方法は、陸地、海、航空宇宙又は同様のもの又はそれらの任意の組み合わせを含む異なる環境の輸送システムに適用されてもよい。輸送システムの乗り物は、タクシー、自家用車、ヒッチハイク、バス、電車、超特急列車、高速鉄道、地下鉄、船舶、航空機、宇宙船、熱気球、無人車又は同様のもの又はそれらの任意の組み合わせを含んでもよい。輸送システムは、また、管理及び／又は配送のための輸送システム、例えば、速達を送る及び／又は受けるためのシステムを含んでもよい。本開示のシステム又は方法の用途は、ウェブページ、ブラウザのプラグイン、クライアント端末、カスタムシステム、内部分析システム、人工知能ロボット又は同様のもの又はそれらの任意の組み合わせを含んでもよい。
【００２７】
本開示において、用語「ユーザ」は、個人、サービスをリクエストする、サービスをオーダーする、サービスを提供する又はサービスの提供を促進する企業を指す。例えば、ユーザは、乗客、運転手、オペレーター又は同様のもの又はそれらの任意の組み合わせであってもよい。本開示において、用語「ユーザ端末」は、サービスをリクエスト又はオーダーする、若しくはサービスに対応する結果を受け取るためにユーザによって用いられるツールを指す。例えば、ユーザが位置の周囲の一部のＰＯＩに対してリクエストするとき、システムは、結果（例えば、複数のＰＯＩ）をユーザ端末へ送信してもよい。一部の実施形態では、ユーザ端末は、乗客端末又は運転手端末を含んでもよい。例えば、乗客が乗り物に対してリクエストするとき、乗客は、開始位置及び行先を含むオーダーを開始してもよい。乗客が乗客端末により開始位置を入力すると、システムは、乗客によって入力された行先を受け取ることなく、開始位置に基づいて行先を決定してもよい。更に、システムは、行先の周囲の複数のＰＯＩを乗客端末により乗客へ提供してもよい。別の例では、運転手がオーダーを終了した、又はある位置でオーダーを待っているとき、システムは、運転手の位置の周囲の複数のＰＯＩを提供し、運転手は、ＰＯＩに基づいて新たなオーダーを容易に受けるために次の場所へ行くことを決定してもよい。一部の実施形態では、ＰＯＩは、位置に関する情報を含んでもよい。位置に関する情報は、位置の名称、位置の座標（例えば、経度値又は緯度値）、位置の住所（例えば、州、省、市、区、通り、番地）、位置に関する電話番号、宣伝活動、又は病院、学校、公園、道路、橋、川、湖、山、鉄道駅、空港、企業、住宅地域、ホテル景観、スポット又は同様のもの又はそれらの任意の組み合わせを含んでもよい。
【００２８】
本開示において用語「サービスリクエスト」及び「注文（オーダー）」は、乗客、要求者（リクエスタ）、サービス要求者、消費者、運転手、提供者、サービス提供者、供給者又は同様のもの又はそれらの組み合わせによって開始されるリクエストを指すために区別しないで用いられる。サービスリクエストは、乗客、要求者、サービス要求者、消費者、運転手、提供者、サービス提供者又は供給者のいずれかによって受け付けられてもよい。サービスリクエストは、有料又は無料であってもよい。
【００２９】
本開示で用いられる位置決め（ポジショニング）技術は、グローバルポジショニングシステム（ＧＰＳ）、グローバルナビゲーションサテライトシステム（ＧＬＯＮＡＳＳ）、コンパスナビゲーションシステム（ＣＯＭＰＡＳＳ）、ガリレオポジショニングシステム、準天頂衛星システム（ｑｕａｓｉ−ｚｅｎｉｔｈ  ｓａｔｅｌｌｉｔｅ  ｓｙｓｔｅｍ（ＱＺＳＳ））、ｗｉｒｅｌｅｓｓ  ｆｉｄｅｌｉｔｙ（ＷｉＦｉ）ポジショニングシステム、又は同様のもの又はそれらの任意の組み合わせを含んでもよい。上記の位置決めシステムの１以上は、本開示において区別しないで用いられてもよい。
【００３０】
本開示の一態様は、位置に関連付けられるポイントオブインタレストを決定するオンラインシステム及び方法に関する。この目的に向けて、オンラインオンデマンドサービスプラットフォームは、先ず、ユーザに関連付けられた対象位置を取得し、そして、対象位置の周囲のＰＯＩを決定するためにジオコード構造を横断してもよい。ジオコード構造における各ジオコードが、複数のＰＯＩに関連付けられているため、ユーザは、対象位置の周囲のＰＯＩを容易に得ることができる。
【００３１】
オンデマンドサービス用の位置情報サービス（Ｌｏｃａｔｉｏｎ  Ｂａｓｅｄ  Ｓｅｒｖｉｃｅ（ＬＢＳ））は、ポストインターネット時代にのみ定着したサービスの新たな形態であることが留意されるべきである。これは、ポストインターネット時代にのみ生じうるユーザへの技術的ソリューションを提供する。インターネット以前の時代では、ＧＰＳ又はナビゲーション技術は利用できなかった。サービスリクエスタが、位置の周囲のＰＯＩを知ることが必要な場合、サービスリクエスタは、個人的に又は他者へ尋ねて当該位置へ行っている。位置の周囲のＰＯＩは、ＧＰＳ又はナビゲーション技術なしに、サービスリクエスタを探索することは困難である。しかし、オンラインオンデマンドサービス向けのＬＢＳは、サービスリクエスタがＰＯＩをより容易に探索することを可能にする。したがって、インターネットを介して、オンラインオンデマンドサービス向けのＬＢＳは、サービスリクエスタにとってより効率的なサービスを提供することができ、これは、従来のインターネット以前の時代には決して生じない。
【００３２】
図１は、一部の実施形態に係る例示的なオンデマンドサービスシステム１００のブロック図である。オンデマンドサービスシステム１００は、位置の周囲の１以上のＰＯＩを決定するためのオンラインナビゲーションサービスプラットフォームであってもよい。オンデマンドサービスシステム１００は、サーバ１１０と、ネットワーク１２０と、ユーザ端末１３０と、ストレージ１４０と、を含むオンラインプラットフォームであってもよい。
【００３３】
一部の実施形態では、サーバ１１０は、単一サーバ又はサーバ群であってもよい。サーバ群は、集中型又は分散型であってもよい（例えば、サーバ１１０は分散型システムであってもよい）。一部の実施形態では、サーバ１１０は、ローカル又はリモートであってもよい。例えば、サーバ１１０は、情報及び／又はユーザ端末１３０に格納されたデータ及び／又はネットワーク１２０を介したストレージ１４０にアクセスしてもよい。別の例では、サーバ１１０は、格納された情報及び／又はデータにアクセスするために、ユーザ端末１３０及び／又はストレージ１４０に接続してもよい。一部の実施形態では、サーバ１１０は、クラウドプラットフォーム上に実装されてもよい。例にすぎないが、クラウドプラットフォームは、プライベートクラウド、パブリッククラウド、ハイブリッドクラウド、コミュニティクラウド、分散型クラウド、インタークラウド、マルチクラウド又は同様のもの又はそれらの任意の組み合わせを含んでもよい。一部の実施形態では、サーバ１１０は、本開示の図２に示される１以上の構成要素を有するコンピューティングデバイス２００上に実装されてもよい。
【００３４】
一部の実施形態では、サーバ１１０は、プロセッシングエンジン１１２を含んでもよい。プロセッシングエンジン１１２は、本開示に記載されたサーバ１１０の１以上の機能を行うためのサービスリクエストに関する情報及び／又はデータを処理してもよい。例えば、プロセッシングエンジン１１２は、ジオコード構造を横断する対象位置と関連付けられたＰＯＩ（例えば、対象位置の周囲のＰＯＩ）を決定してもよい。一部の実施形態では、プロセッシングエンジン１１２は、１以上のプロセッサ（例えば、シングルコアプロセッサ又はマルチコアプロセッサ）を含んでもよい。例にすぎないが、プロセッシングエンジン１１２は、中央演算ユニット（ＣＰＵ）、特定用途向け集積回路（ＡＳＩＣ）、特定用途向け命令セットプロセッサ（ＡＳＩＰ）、グラフィック演算ユニット（ＧＰＵ）、物理演算ユニット（ＰＰＵ）、デジタル信号プロセッサ（ＤＳＰ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、プログラマブルロジックデバイス（ＰＬＤ）、コントローラ、マイクロコントローラユニット、縮小命令セットコンピュータ（ＲＩＳＣ）、マイクロプロセッサ又は同様のもの又はそれらの任意の組み合わせを含んでもよい。
【００３５】
ネットワーク１２０は、オンデマンドサービスシステム１００の構成要素間で情報及び／又はデータの交換を容易にしてもよい。一部の実施形態では、オンデマンドサービスシステム１００（例えば、サーバ１１０、ユーザ端末１３０及びストレージ１４０）において１以上の構成要素は、ネットワーク１２０を介してオンデマンドサービスシステム１００において他の構成要素へ情報及び／又はデータを送信してもよい。例えば、サーバ１１０は、ネットワーク１２０を介してユーザ端末１３０からサービスリクエストを受信してもよい。一部の実施形態では、ネットワーク１２０は、有線又は無線ネットワーク又はそれらの組み合わせのいずれかの種類であってもよい。例にすぎないが、ネットワーク１２０は、ケーブルネットワーク、ワイヤラインネットワーク、光ファイバーネットワーク、テレコミュニケーションネットワーク、イントラネット、インターネット、ローカルエリアネットワーク（ＬＡＮ）、ワイドエリアネットワーク（ＷＡＮ）、ワイヤレスローカルエリアネットワーク（ＷＬＡＮ）メトロポリタンエリアネットワーク（ＭＡＮ）、ワイドエリアネットワーク（ＷＡＮ）、パブリックテレフォンスイッチドネットワーク（ＰＳＴＮ）、ブルートゥース（登録商標）ネットワーク、ＺｉｇＢｅｅネットワーク、近距離通信（ＮＦＣ）ネットワーク又は同様のもの又はそれらの任意の組み合わせを含んでもよい。一部の実施形態では、ネットワーク１２０は、１以上のネットワークアクセスポイントを含んでもよい。例えば、ネットワーク１２０は、それを通じてオンデマンドサービスシステム１００の１以上の構成要素がそれらの間でデータ及び／又は情報を交換するためにネットワーク１２０と接続する基地局及び／又はインターネット交換ポイント１２０−１，１２０−２、等のような有線又は無線ネットワークアクセスポイントを含んでもよい。
【００３６】
一部の実施形態では、ユーザ端末１３０は、モバイルデバイス１３０−１、タブレットコンピュータ１３０−２、ラップトップコンピュータ１３０−３、自動車における組み込み装置１３０−４又は同様のもの又はそれらの任意の組み合わせを含んでもよい。一部の実施形態では、モバイルデバイス１３０−１は、スマートホームデバイス、ウェアラブルデバイス、スマートモバイルデバイス、バーチャルリアリティデバイス、拡張現実デバイス又は同様のもの又はそれらの任意の組み合わせを含んでもよい。一部の実施形態では、スマートホームデバイスは、スマートライティングデバイス、インテリジェント電気機器の制御デバイス、スマートモニタリングデバイス、スマートテレビジョン、スマートビデオカメラ、インターフォン又は同様のもの又はそれらの任意の組み合わせを含んでもよい。一部の実施形態では、ウェアラブルデバイスは、スマートブレスレット、スマートフットギア、スマートグラス、スマートヘルメット、スマートウォッチ、スマートクロージング、スマートバックパック、スマートアクセサリ又は同様のもの又はそれらの任意の組み合わせを含んでもよい。一部の実施形態では、スマートモバイルデバイスは、スマートフォン、パーソナルデジタルアシスタント（ＰＤＡ）、ゲーミングデバイス、ナビゲーションデバイス、ポイントオブセール（ＰＯＳ）デバイス又は同様のもの又はそれらの任意の組み合わせを含んでもよい。一部の実施形態では、バーチャルリアリティデバイス及び／又は拡張現実デバイスは、バーチャルリアリティヘルメット、バーチャルリアリティグラス、バーチャルリアリティパッチ、拡張現実ヘルメット、拡張現実グラス、拡張現実パッチ又は同様のもの又はそれらの任意の組み合わせを含んでもよい。例えば、バーチャルリアリティデバイス及び／拡張現実デバイスは、Ｇｏｏｇｌｅ  Ｇｌａｓｓ、Ｏｃｕｌｕｓ  Ｒｉｆｔ、Ｈｏｌｏｌｅｎｓ、Ｇｅａｒ  ＶＲ等を含んでもよい。一部の実施形態では、自動車における組み込み装置１３０−４は、オンボードコンピュータ、オンボードテレビジョン等を含んでもよい。一部の実施形態では、ユーザ端末１３０は、サービスリクエスター及び／又はユーザ端末１３０の位置を見つけるための位置決め技術を有するデバイスであってもよい。
【００３７】
ストレージ１４０は、データ及び／又は命令を格納してもよい。一部の実施形態では、ストレージ１４０は、ユーザ端末１３０及び／又はネットワーク１２０から取得されたデータを格納してもよい。一部の実施形態では、ストレージ１４０は、サーバ１１０が本開示に記載の例示的な方法を使用又は実行するデータ及び／又は命令を格納してもよい。一部の実施形態では、ストレージ１４０は、マスストレージ、リムーバブルストレージ、揮発性リードアンドライトメモリ、リードオンリーメモリ（ＲＯＭ）又は同様のもの又はそれらの任意の組み合わせを含んでもよい。例示的なマスストレージは、磁気ディスク、光学ディスク、ソリッドステートドライブ等を含んでもよい。例示的なリムーバブルストレージは、フラッシュデバイス、フロッピーディスク、光学ディスク、メモリカード、ジップディスク、磁気テープ等を含んでもよい。例示的な揮発性リードアンドライトメモリは、ランダムアクセスメモリ（ＲＡＭ）を含んでもよい。例示的なＲＡＭは、ダイナミックＲＡＭ（ＤＲＡＭ）、ｄｏｕｂｌｅ  ｄａｔｅ  ｒａｔｅ  ｓｙｎｃｈｒｏｎｏｕｓ  ｄｙｎａｍｉｃ  ＲＡＭ（ＤＤＲ  ＳＤＲＡＭ）、スタティックＲＡＭ（ＳＲＡＭ）、サイリスタＲＡＭ（Ｔ−ＲＡＭ）、及びゼロキャパシタＲＡＭ（Ｚ−ＲＡＭ）等を含んでもよい。例示的なＲＯＭは、マスクＲＯＭ（ＭＲＯＭ）、プログラマブルＲＯＭ（ＰＲＯＭ）、消去可能プログラマブルＲＯＭ（ＥＰＲＯＭ）、電気的消去可能プログラマブルＲＯＭ（ＥＥＰＲＯＭ）、コンパクトディスクＲＯＭ（ＣＤ−ＲＯＭ）、デジタルバーサタイルディスクＲＯＭ等を含んでもよい。一部の実施形態では、ストレージ１４０は、クラウドプラットフォームに実装されてもよい。例にすぎないが、クラウドプラットフォームは、プライベートクラウド、パブリッククラウド、ハイブリッドクラウド、コミュニティクラウド、分散型クラウド、インタークラウド、マルチクラウド又は同様のもの又はそれらの任意の組み合わせを含んでもよい。
【００３８】
一部の実施形態では、ストレージ１４０は、オンデマンドサービスシステム１００の１以上の構成要素（例えば、サーバ１１０、ユーザ端末１３０）と通信するためにネットワーク１２０と接続してもよい。オンデマンドサービスシステム１００の１以上の構成要素は、ネットワーク１２０を介してストレージ１４０に格納されたデータ又は命令にアクセスしてもよい。一部の実施形態では、ストレージ１４０は、オンデマンドサービスシステム１００の１以上の構成要素（例えば、サーバ１１０、ユーザ端末１３０）と通信又は接続してもよい。一実施形態では、ストレージ１４０は、サーバ１１０の一部であってもよい。
【００３９】
一部の実施形態では、オンデマンドサービスシステム１００の１以上の構成要素（例えば、サーバ１１０、ユーザ端末１３０）は、ストレージ１４０にアクセスするために許諾を有する。一部の実施形態では、オンデマンドサービスシステム１００の１以上の構成要素は、ユーザに関する情報を読み出す及び／又は変更してもよい。例えば、サーバ１１０は、サービス後の１以上のユーザの情報を読み出す及び／又は変更してもよい。
【００４０】
一部の実施形態では、オンデマンドサービスシステム１００の構成要素間の情報交換は、サービスをリクエストすることにより実現されてもよい。サービスリクエストの対象は、任意の製品であってもよい。一部の実施形態では、製品は、有形製品又は無形製品であってもよい。有形製品は、食品、医薬品、日用品、化学製品、電気製品、衣服、車、家屋、高級品又は同様のもの又はそれらの任意の組み合わせを含んでもよい。無形製品は、サービス製品、金融製品、知識製品、インターネット製品又は同様のもの又はそれらの任意の組み合わせを含んでもよい。インターネット製品は、個人ホスト製品、ウェブ製品、モバイルインターネット製品、コマーシャルホスト製品、埋め込み製品又は同様のもの又はそれらの任意の組み合わせを含んでもよい。モバイルインターネット製品は、モバイル端末のソフトウェア、プログラム、システム又は同様のもの又はそれらの任意の組み合わせで用いられてもよい。モバイル端末は、タブレットコンピュータ、ラップトップコンピュータ、モバイルフォン、パーソナルデジタルアシスタント（ＰＤＡ）、スマートウォッチ、ポイントオブセール（ＰＯＳ）デバイス、オンボードコンピュータ、オンボードテレビジョン、ウェアラブルデバイス又は同様のもの又はそれらの任意の組み合わせを含んでもよい。例えば、製品は、任意のコンピュータ又はモバイルフォンで用いられるソフトウェア及び／又はアプリケーションであってもよい。ソフトウェア及び／又はアプリケーションは、ソーシャライジング、ショッピング、輸送、エンターテインメント、学習、調査又は同様のもの又はそれらの任意の組み合わせに関連してもよい。一部の実施形態では、輸送に関するソフトウェア及び／又はアプリケーションは、トラベリングソフトウェア及び／又はアプリケーション、乗り物スケジューリングソフトウェア及び／又はアプリケーション、マッピングソフトウェア及び／又はアプリケーション等を含んでもよい。乗り物は、馬、馬車、人力車（例えば、一輪車、二輪車、三輪車）、車（例えば、タクシー、バス、自家用車）、列車、地下鉄、船舶、航空機（例えば、飛行機、ヘリコプタ、スペースシャトル、ロケット、熱気球）又は同様のもの又はそれらの任意の組み合わせを含んでもよい。
【００４１】
図２は、サーバ１１０、ユーザ端末１３０及び／ストレージ１４０が本開示の一部の実施形態に基づいて実装されるコンピューティングデバイス２００の例示的なハードウェア及びソフトウェア構成要素を示す概略図である。例えば、プロセッシングエンジン１１２は、コンピューティングデバイス２００に実装され、本開示で開示されるプロセッシングエンジン１１２の機能を実行するように構成されてもよい。
【００４２】
コンピューティングデバイス２００は、汎用コンピュータ又は特殊用途コンピュータであってもよく、双方は本開示のためのオンデマンドシステムを実装するために用いられてもよい。コンピューティングデバイス２００は、本明細書に記載されるようにオンデマンドサービスの構成要素を実装するために用いられてもよい。例えば、プロセッシングエンジン１１２は、そのハードウェア、ソフトウェアプログラム、ファームウェア又はそれらの組み合わせを介して、コンピューティングデバイス２００で実装されてもよい。便宜上、１つのみのこのようなコンピュータが示されるが、本明細書に記載されるオンデマンドサービスに関するコンピュータ機能は、処理負荷を分散するために、複数の同様のプラットフォーム上で分散型に実装されてもよい。
【００４３】
コンピューティングデバイス２００は、例えば、データ通信を容易にするために、そこに接続されたネットワークに接続された、又はそこに接続されたネットワークからのＣＯＭポート２５０を含んでもよい。コンピューティングデバイス２００は、また、プログラム命令を実行するために、１以上のプロセッサの形態の、プロセッサ２２０を含んでもよい。例示的なコンピューティングデバイスは、コンピューティングデバイスにより処理及び／又は送信されるべき各種データファイルに対して、内部通信バス２１０、例えばディスク２７０、ＲＯＭ２３０又はＲＡＭ２４０を含む異なる形式のプログラムストレージ及びデータストレージを含んでもよい。例示的なコンピューティングデバイスは、また、ＲＯＭ２３０、ＲＡＭ２４０、及び／又はプロセッサ２２０によって実行されるべき他の種類の非一時的ストレージ媒体に格納されたプログラム命令を含んでもよい。本開示の方法及び／又は処理は、プログラム命令として実装されてもよい。コンピューティングデバイス２００は、また、コンピュータと、ユーザインターフェース要素２８０等のようなコンピュータ内の他の構成要素との入力／出力をサポートするＩ／Ｏ構成要素２６０を含む。コンピューティングデバイス２００は、また、ネットワーク通信を介してプログラミング及びデータを受信してもよい。
【００４４】
コンピューティングデバイス２００は、また、ハードディスクと通信されるハードディスクコントローラ、キーパッド／キーボードと通信されるキーパッド／キーボードコントローラ、シリアル周辺機器と通信されるシリアルインターフェースコントローラ、パラレル周辺機器と通信されるパラレルインターフェースコントローラ、ディスプレイと通信されるディスプレイコントローラ又は同様のもの又はそれらの任意の組み合わせを含んでもよい。
【００４５】
単に例示のために、１つのみのＣＰＵ及び／又はプロセッサが図２に示される。複数のＣＰＵ及び／又はプロセッサも検討される；よって、本開示で説明されるような１つのＣＰＵ及び／又はプロセッサによって行われる動作及び／又は方法ステップは、複数のＣＰＵ及び／又はプロセッサによって共同で又は別々に行われてもよい。例えば、本開示において、コンピューティングデバイス２００のＣＰＵ及び／又はプロセッサがステップＡ及びステップＢの両方を実行する場合、ステップＡ及びステップＢは、コンピューティングデバイス２００において２つの異なるＣＰＵ及び／又はプロセッサによって共同又は別々に行われてもよい（例えば、第１のプロセッサはステップＡを実行し、第２のプロセッサはステップＢを実行する、又は第１及び第２のプロセッサは共同でステップＡ及びＢを実行する）。
【００４６】
図３は、本開示の一部の実施形態に係る例示的なプロセッサのブロック図である。プロセッサ３００は、本開示の一部の実施形態に係るサーバ１１０、ユーザ端末１３０及び／又はストレージ１４０に適合されてもよい。一部の実施形態では、プロセッサ３００は、位置取得モジュール３１０と、位置分析モジュール３２０と、位置エンコーディングモジュール３３０と、ルックアップモジュール３４０と、ＰＯＩ決定モジュール３５０と、ＰＯＩ取得モジュール３６０と、分類モジュール３７０と、ソーティングモジュール３８０と、を含んでもよい。
【００４７】
一般的に、本明細書で用いられる文言「モジュール」は、ハードウェア又はソフトウェアに埋め込まれるロジック、又はソフトウェア命令の集合を指す。本明細書で説明されるモジュールは、ソフトウェア及び／又はハードウェアモジュールとして実装されてもよく、いずれかの種類の非一時的なコンピュータ可読媒体又は他のストレージデバイスに格納されてもよい。一部の実施形態では、ソフトウェアモジュールは、実行可能プログラムにコンパイル及びリンクされてもよい。ソフトウェアモジュールは、他のモジュール又はそれ自体から呼び出し可能であることができる、及び／又は検出されたイベント又はインタラプトに応じて呼び出されることができることが理解されるであろう。コンピューティングデバイス（例えば、プロセッサ３００）で実行するために構成されるソフトウェアモジュールは、コンパクトディスク、デジタルビデオディスク、フラッシュドライブ、磁気ディスク又は他の有形媒体等のようなコンピュータ可読媒体又はデジタルダウンロードとしてで提供されることができる（及び実行前に、インストレーション、展開又は復号化を必要とする圧縮又はインストール可能なフォーマットで本来格納されることができる）。このようなソフトウェアコードは、コンピューティングデバイスによって実行するために、実行コンピューティングデバイスのメモリデバイスに部分的又は完全に格納されうる。ソフトウェア命令は、ＥＰＲＯＭ等のようなファームウェアに埋め込まれうる。ハードウェアモジュールは、ゲート及びフリップフロップ等のような接続されたロジックユニットに含まれることができる、及び／又はプログラマブルゲートアレイ又はプロセッサ等のようなプログラマブルユニットに含まれることができることが更に理解されるであろう。本明細書で説明されるモジュール又はコンピューティングデバイス機能は、好ましくはソフトウェアモジュールとして実装されるが、ハードウェア又はファームウェアで表されることができる。一般に、本明細書で説明されるモジュールは、それらの物理組織又はストレージにかかわらず、他のモジュールと組み合わせられうる又はサブモジュールに分割されうる論理的なモジュールを指す。
【００４８】
位置取得モジュール３１０は、ネットワーク１２０を介してユーザ端末１３０及び／又はストレージ１４０から位置を取得してもよい。位置は、ユーザと関連付けられた対象位置を含んでもよい。例えば、位置は、ユーザによって保持又は操作されたユーザ端末１３０の位置を含んでもよい。位置は、ユーザ端末１３０を通じてユーザの入力によって指定された位置を含んでもよい。位置は、また、ジオコード構造を構築するために用いられる複数の位置を含んでもよい（本明細書ではサンプル位置とも呼ばれる）。
【００４９】
位置分析モジュール３２０は、位置取得モジュール３１０から位置を受け付けてもよい。位置分析モジュール３２０は、位置が、位置の座標情報を含まないとき、位置の経度値及び緯度値を決定してもよい。
【００５０】
位置エンコーディングモジュール３３０は、エンコーディング技術を用いて位置のジオコード値を決定するために、位置の経度値及び緯度値を受け付けてもよい。エンコーディング技術は、ジオハッシュ技術、モートンコード技術、ヒルベルト曲線技術又は同様のもの又はそれらの組み合わせを含んでもよい。
【００５１】
ルックアップモジュール３４０は、少なくとも１つの関連ジオコード値を決定するために、位置のジオコード値に基づいてジオコード構造を横断してもよい。関連ジオコード値は、位置のジオコード値に関する共通プレフィックスを有してもよい。
【００５２】
ＰＯＩ決定モジュール３５０は、位置のジオコード値に基づいて位置に関連付けられる複数のＰＯＩを決定してもよい。複数のＰＯＩは、関連ジオコード値と関連付けられてもよい。
【００５３】
ＰＯＩ取得モジュール３６０は、データソースから複数のサンプルＰＯＩを取得してもよい（例えば、ディスク２７０、ＲＯＭ２３０、ＲＡＭ２４０又はストレージ１４０）。サンプルＰＯＩは、位置の各々と関連付けられてもよい。サンプルＰＯＩは、位置の名称（例えば、サンプル位置、サンプル位置の周囲の位置）、位置の座標（例えば、経度値及び／又は緯度値）、位置の住所（例えば、州、省、市、区、通り、番地）、位置に関する電話番号、宣伝活動、又は病院、学校、公園、道路、橋、川、湖、山、鉄道駅、空港、企業、住宅地域、ホテル景観、スポット又は同様のもの又はそれらの組み合わせのような他の種類の位置の周囲を含んでもよい。データソースは、データベース、ネットワークリソース、リモートサーバ又は同様のもの又はそれらの任意の組み合わせを含んでもよい。
【００５４】
分類モジュール３７０は、複数のサンプル位置の各々の経度値及び緯度値に基づいて、複数のサンプル位置を分類してもよい。サンプル位置は、データソースに格納された地理的位置であってもよい。分類モジュール３７０は、異なるサーバにおいて複数のサンプル位置を格納してもよく、同一種類のサンプル位置は、同一サーバに格納されてもよい。例えば、分類モジュール３７０は、第１のサーバにおいて第１の管理領域の複数のサンプル位置を格納し、第２のサーバにおいて第２の管理領域の複数のサンプル位置を格納してもよい。管理領域は、国、省、市、区、国、通り等を表してもよい。
【００５５】
ソーティングモジュール３８０は、ＰＯＩ決定モジュール３５０から複数のＰＯＩを受け付け、ソートルールに基づいて複数のＰＯＩをソートしてもよい。例えば、ソーティングモジュール３８０は、対象位置と複数のＰＯＩの各々に対応する位置との間の距離に基づいて、昇順で複数のＰＯＩをソートしてもよい。
【００５６】
図４は、本開示の一部の実施形態に係る対象位置と関連付けられたポイントオブインタレスト（ＰＯＩ）を決定するための例示的な処理を示すフローチャートである。一部の実施形態では、処理４００は、図１に示されるようなオンデマンドサービスシステム１００で実装されてもよい。例えば、処理４００は、１以上の命令のセットとして実装されてもよく、ストレージ１４０又はプロセッサ３００に格納され、プロセッサ３００によって呼び出し及び／又は実行されてもよい。
【００５７】
４１０において、プロセッサ３００（例えば、位置取得モジュール３１０）は、ユーザと関連付けられた対象位置を取得してもよい。一部の実施形態では、ユーザは、個人又はサービスを要求又は依頼する企業であってもよい。例えば、ユーザは、乗務員、運転手、オペレーター又は同様のもの又はそれらの任意の組み合わせであってもよい。一部の実施形態では、対象位置は、（例えば、ユーザによって保持又は操作されたユーザ端末１３０を介して）位置決め技術によって決定された（例えば、ユーザによって保持又は操作された端末を介して）ユーザの現在位置を含んでもよい。位置決め技術は、グローバルポジショニングシステム（ＧＰＳ）、グローバルナビゲーションサテライトシステム（ＧＬＯＮＡＳＳ）、コンパスナビゲーションシステム（ＣＯＭＰＡＳＳ）、ガリレオポジショニングシステム、準天頂衛星システム（ｑｕａｓｉ−ｚｅｎｉｔｈ  ｓａｔｅｌｌｉｔｅ  ｓｙｓｔｅｍ（ＱＺＳＳ））、ｗｉｒｅｌｅｓｓ  ｆｉｄｅｌｉｔｙ（ＷｉＦｉ）ポジショニングシステム、又は同様のもの又はそれらの任意の組み合わせを含んでもよい。一部の実施形態では、対象位置は、ユーザ入力によって指定された位置を含んでもよい。例えば、ユーザは、対象位置を決定するために、ユーザ端末１３０にインストールされたマップ上のポイント選択アイコンをドラッグすることによってユーザの位置を示してもよく、これは、ネットワーク１２０を介して、位置取得モジュール３１０へ、ユーザ端末１３０によって送信されてもよい。対象位置は、テキスト、イメージ、音声、動画又は同様のもの又はそれらの任意の組み合わせの形態であってもよい。
【００５８】
４２０において、プロセッサ３００（例えば、位置エンコーディングモジュール３３０）は、エンコーディング技術を用いることによって、対象位置に関するジオコード値（本明細書で対象位置ジオコード値とも呼ばれる）を決定してもよい。本明細書で用いられるように、用語「ジオコード値」は、一般的に、コードを用いて地理的位置の提示を指し、これは、エンコーディング技術を用いることによって、決定される。一部の実施形態では、対象ジオコード値は、対象位置の経度値（本明細書では対象経度値とも呼ばれる）及び対象位置の緯度値（本明細書では対象緯度値とも呼ばれる）に基づいて生成されてもよい。位置に対応するジオコード値を決定するためのエンコーディング技術は、ジオハッシュ技術、モートンコード（Ｍｏｒｔｏｎ  ｃｏｄｅ）技術、ヒルベルト曲線技術、又は同様のもの又はそれらの組み合わせを含んでもよい。ジオハッシュ技術は、二次元位置値（例えば、経度値及び緯度値を含む）を一次元値（例えば、ジオハッシュ値）に変換するエンコーディング方法である。例にすぎないが、対象ジオコード値は、ジオハッシュ値（本明細書では対象ジオハッシュ値としても呼ばれる）であってもよい。対象ジオハッシュ値は、対象経度値及び対象緯度値のビットをインターリーブし、その後、ビット表現をｂａｓｅ−３２表現に変換することによって、生成されてもよい。
【００５９】
４３０において、プロセッサ３００（例えば、ルックアップモジュール３４０）は、対象ジオコード値に基づいてジオコード構造を横断してもよい。一部の実施形態では、ジオコード構造は、図６に示される処理６００に基づいて生成される構造であってもよい。ジオコード構造は、複数のジオコード値を格納してもよい。一部の実施形態では、ジオコード構造は、ジオコードツリー構造を含んでもよい。一部の実施形態では、ジオコード構造は、トライツリー（Ｔｒｉｅ  ｔｒｅｅ）構造を含んでもよい。一部の実施形態では、ジオコード構造を横断するために用いられる技術は、シーケンシャルサーチ、バイナリサーチ、インデックスサーチ、ブロッキングサーチ、ハッシュサーチ又は同様のもの又はそれらの任意の組み合わせを含んでもよい。
【００６０】
ジオコード構造を横断した後に、４４０において、プロセッサ３００（例えば、ＰＯＩ決定モジュール３５０）は、対象位置の対象ジオコード値に基づいて対象位置と関連付けられた少なくとも１つのＰＯＩを決定してもよい。一部の実施形態では、ジオコード値は、複数のＰＯＩと関連付けられてもよい。ジオコード値が決定されたとき、ジオコード値と関連付けられた複数のＰＯＩも決定されてもよい。プロセッサ３００（例えば、ＰＯＩ決定モジュール３５０）は、対象位置のジオコード値に基づいて対象位置の周囲のＰＯＩ（複数又は単数）を決定してもよい。対象位置に関するＰＯＩは、位置の名称（例えば、サンプル位置、サンプル位置の周囲の位置）、位置の座標（例えば、経度値及び／又は緯度値）、位置の住所（例えば、州、省、市、区、通り、番地）、位置に関する電話番号、宣伝活動、又は病院、学校、公園、道路、橋、川、湖、山、鉄道駅、空港、企業、住宅地域、ホテル景観、スポット又は同様のもの又はそれらの組み合わせを含んでもよい。
【００６１】
一部の実施形態では、ＰＯＩ決定モジュール３５０は、対象位置の周囲の複数のポインツオブインタレスト（ＰＯＩｓ）を決定してもよい。一部の実施形態では、プロセッサ３００におけるソーティングモジュール３８０は、ソートルールに基づいて複数のＰＯＩｓをソートしてもよい。例にすぎないが、ソーティングモジュール３８０は、対象位置と複数のＰＯＩｓの各々に対応する位置との間の距離に基づいて昇順で複数のＰＯＩｓをソートしてもよい。ＰＯＩ決定モジュール３５０は、ソート結果に基づいてユーザ端末１３０を介してユーザへＰＯＩ決定モジュール３５０によってリコール（又は決定）された複数のＰＯＩｓの一部のみを提供してもよい。
【００６２】
処理４００についての上記説明は、単に一例であり、限定的であると意図されないことを留意すべきである。一部の実施形態では、処理４００は、他の動作を含んでもよい。例えば、４１０において、対象位置を取得した後、プロセッサ３００（例えば、位置分析モジュール３２０）は、対象位置が対象位置の座標を含んでいるかを判定してもよい。対象位置が位置座標を含まない場合（例えば、対象位置は、位置のテキスト記述である、又はマップ上のポイントである、又はユーザ端末１３０でユーザによって入力又は選択されたＰＯＩである場合）、位置分析モジュール３２０は、対象位置と関連付けられた対象経度値及び対象緯度値を決定してもよい。
【００６３】
図５は、本開示の一部の実施形態に係る、ＰＯＩを決定するための例示的な処理を示すフローチャートである。一部の実施形態では、処理５００は、図１に示されるようなオンデマンドサービスシステム１００で実装されてもよい。例えば、処理４００は、ストレージ１４０又はプロセッサ３００に格納された、１以上の命令のセットとして実装されてもよい、及びプロセッサ３００によって呼び出し及び／又は実行されてもよい。
【００６４】
５１０において、プロセッサ３００（例えば、位置取得モジュール３１０）は、ユーザと関連付けられた対象位置を取得してもよい。対象位置は、テキスト、イメージ、音声、動画又は同様のもの又はそれらの任意の組み合わせの形式であってもよい。一部の実施形態では、対象位置は、二次元位置値（例えば、緯度及び経度対）で位置情報を表してもよい。
【００６５】
一部の実施形態では、プロセッサ３００（例えば、位置分析モジュール３２０）は、対象位置が対象位置の座標を含んでいるかを判定してもよい。対象位置が位置座標を含まない場合（例えば、対象位置は、位置のテキスト記述である、又はマップ上のポイントである、又はユーザ端末１３０でユーザによって入力又は選択されたＰＯＩである場合）、位置分析モジュール３２０は、５２０において、対象位置と関連付けられた経度値（本明細書では対象経度値とも呼ばれる）及び緯度値（本明細書では対象緯度値とも呼ばれる）を決定してもよい。一部の実施形態では、処理３００がイメージ、音声又は動画の形態の対象位置を受け付けた場合、プロセッサ３００は、先ずそれをテキスト記述へ変換し、テキスト記述を位置座標へ変換してもよい。一部の実施形態では、プロセッサ３００は、イメージ、音声又は動画の形態の対象位置を位置座標へ変換してもよい。プロセッサ３００が、対象位置が対象位置の座標を含むと判定した場合、処理５００は、５２０をスキップし、５３０へ進む。
【００６６】
５３０において、プロセッサ３００（例えば、位置エンコーディングモジュール３３０）は、エンコーディング技術を用いることによって、対象位置経度値及び対象緯度値に基づいて対象位置に関する対象ジオコード値を決定してもよい。一部の実施形態では、対象ジオコード値は、一次元フォーマットで位置情報を表してもよい。
【００６７】
一部の実施形態では、位置エンコーディングモジュール３３０は、対象経度値及び対象緯度値の各々を二進数へ変換することによって対象ジオコード値を決定し、２つの二進数を組み合わせてもよい。例えば、対象位置は、位置座標対（６，８）として表されてもよい。位置座標対における第１の項は、対象経度値を表し、位置座標対における第２の項は、対象緯度値を表す。プロセッサ３００は、対象経度値及び対象緯度値を、二進数、八進数又は十六進数又は同様のものへ変換してもよい。説明の簡素化のために、二進数が一例として以下に用いられる。二進数の長さは、対象経度値及び／又は対象緯度値の実数に基づいて決定されてもよい。上記の例では、対象経度値の二進数は、「０１１０」であり、対象緯度値の二進数は、「１０００」である。そして、位置エンコーディングモジュール３３０は、２つの二進数を共に組み合わせて、対象ジオコード値を生成してもよい。組み合わせの手法は、任意であってもよい。一部の実施形態では、位置エンコーディングモジュール３３０は、対象経度値の二進数を超える対象緯度値の二進数を設定してもよい（例えば、この場合、対象ジオコード値は「０１１０１０００」）。一部の実施形態では、プロセッサ３００は、対象緯度値の二進数を超える対象経度値の二進数を設定してもよい（例えば、対象ジオコード値は「１００００１１０」）。
【００６８】
一部の実施形態では、プロセッサ３００は、ジオハッシュエンコーディング技術を用いることによって、対象ジオコード値を決定してもよい。対象ジオコード値は、ジオハッシュ値を含んでもよい（本明細書では対象ジオハッシュ値とも呼ばれる）。位置エンコーディングモジュール３３０は、対象経度値及び対象緯度値のビットをインターリーブすることによって対象ジオハッシュ値を生成し、ビット表現をｂａｓｅ−３２表現に変換してもよい。例えば、位置エンコーディングモジュール３３０は、先ず、対象経度値及び対象緯度値を二進数表現にそれぞれ変換してもよい。位置エンコーディングモジュール３３０は、また、対象経度値及び対象緯度値の二進数表現をインターリーブしてもよい。位置エンコーディングモジュール３３０は、インターリーブの結果をｂａｓｅ−３２表現へ更に変換してもよい。
【００６９】
一部の実施形態では、プロセッサ３００は、５４０において、付加的に、探索半径を取得してもよい。プロセッサ３００は、デフォルト設定又は他の要因（例えば、マップのスケール又はユーザの好み）に基づいて探索半径を決定されてもよい。例えば、プロセッサ３００は、位置の周囲のＰＯＩのためのリクエストを受け付け、プロセッサ３００は、所定の範囲値内の位置の周囲のＰＯＩを自動的に決定してもよい。所定の範囲値は、０から１０キロメートル、１０．１から２０キロメートル、２０．１から３０キロメートル、３０．１から４０キロメートル、４０．１から５０キロメートルの特定の値であってもよい。一部の実施形態では、所定の範囲値は、１から１００メートル、１０１から２００メートル、２０１から３００メートル、３０１から４００メートル、４０１から５００メートル、５０１から６００メートル、６０１から７００メートル、７０１から８００メートル、８０１から９００メートル、９０１から１０００メートルであってもよい。一部の実施形態では、所定の範囲値は、０から１０メートル、１１から２０メートル、２１から３０メートル、３１から４０メートル、４１から５０メートル、５１から６０メートル、６１から７０メートル、７１から８０メートル、８１から９０メートル、９１から１００メートルであってもよい。
【００７０】
それに代えて又は追加して、探索半径は、ユーザ端末１３０を介してユーザによって設定されてもよい。例えば、ユーザが、ユーザ端末１３０を介してユーザにより指定された位置の周囲のいくつかのＰＯＩを取得しようとするとき、ユーザ端末１３０のユーザインターフェース上に探索半径のための選択アイコン又は入力ボックスが存在し、ユーザは、探索半径を選択する又は入力ボックスに探索半径を入力してもよい。そして、プロセッサ３００は、ユーザによって指定された探索半径を、例えばネットワーク１２０を介してユーザ端末１３０から受け付け、探索半径の範囲によりＰＯＩを決定してもよい。一部の実施形態では、探索半径は、オンデマンドサービスシステム１００のデフォルト設定であってもよい。
【００７１】
それに代えて又は追加して、プロセッサ３００は、異なる位置に対する探索半径の異なる値を決定してもよい。例えば、プロセッサ３００は、都市の中心における位置に関する探索半径の相対的に小さい値と関連し、都市の郊外区域における位置に関する探索半径の相対的に大きな値と関連してもよい。
【００７２】
探索半径は、０から５０キロメートル又は５０キロメートルを超える値を含んでもよい。一部の実施形態では、探索半径は、０から１０キロメートル、１０．１から２０キロメートル、２０．１から３０キロメートル、３０．１から４０キロメートル、４０．１から５０キロメートルであってもよい。一部の実施形態では、探索半径は、１から１００メートル、１０１から２００メートル、２０１から３００メートル、３０１から４００メートル、４０１から５００メートル、５０１から６００メートル、６０１から７００メートル、７０１から８００メートル、８０１から９００メートル、９０１から１０００メートルであってもよい。一部の実施形態では、探索半径は、０から１０メートル、１１から２０メートル、２１から３０メートル、３１から４０メートル、４１から５０メートル、５１から６０メートル、６１から７０メートル、７１から８０メートル、８１から９０メートル、９１から１００メートルであってもよい。
【００７３】
探索半径に基づいて、プロセッサ３００は、探索半径の範囲内の対象位置と関連付けられた１以上のＰＯＩを決定してもよい。
【００７４】
一部の実施形態では、プロセッサ３００は、５５０において、探索半径に基づいてサーチングコーディング長を決定してもよい。サーチングコーディング長は、探索半径に対応するサーチング範囲を反映してもよい。コーディング長が短くなると、サーチング範囲が長くなる。対象ジオコード値を「０１１０１０００」、対象ジオコード値の長さを８、及び探索半径と関連付けられた第１のコーディング長を２と仮定し、探索半径が５０メートルのとき、プロセッサ３００は、第１のコーディング長及び対象ジオコード値の長さに基づいて、サーチングコーディング長を６（つまり、８−２＝６）と決定してもよい。
【００７５】
５６０において、プロセッサ３００（例えば、ルックアップモジュール３４０）は、対象ジオコード値及びサーチングコーディング長に基づいてジオコード構造を横断し、少なくとも１つの関連ジオコード値を決定してもよい。関連ジオコード値は、対象位置の範囲（例えば、探索半径）内の位置に対応してもよい。一部の実施形態では、５６０において用いられるジオコード構造は、図６に示される処理６００に基づいて生成されてもよい。ジオコード構造は、複数のジオコード値を格納してもよい。一部の実施形態では、ジオコード構造は、ジオコードツリー構造を含んでもよい。一部の実施形態では、ジオコード構造は、トライツリー構造を含んでもよい。関連ジオコード値は、対象ジオコード値についての共通プレフィックスを有してもよい。共通プレフィックスは、２以上のジオコード値により共有される１以上の文字を含んでもよい。例えば、第１のジオコード値の少なくとも第１の文字及び第２のジオコード値の第１の文字は、実質的に同一であってもよい。一部の実施形態では、ジオコード値のプレフィックスは、ジオコード値の少なくとも第１の文字を含むジオコード値の一連の連続文字であってもよい。ジオコード値のサフィックスは、プレフィックスとして選択されていない一連の連続文字の残りの部分である（例えば、プレフィックス後の文字）。共通プレフィックスの長さは、探索半径に少なくとも部分的に基づいて決定されてもよい。例えば、対象ジオコード値が「０１１０１０００」であり、探索半径が５０メートルであり、探索半径と関連付けられた第１のコーディング長が２である場合、共通プレフィックスの長さは、６（すなわち、８−２＝６）と決定され、共通プレフィックスは、「０１１０１０」である。関連ジオコード値は、プレフィックス「０１１０１０」を有する少なくとも１つのジオコード値を含んでもよい。
【００７６】
一部の実施形態では、プロセッサ３００の構築モジュール（図３には図示せず）は、ジオコードツリー構造において各コードに対してハッシュインデックスを決定してもよい。ルックアップモジュール３４０は、ハッシュインデックスに基づいてノードを決定してもよい。ハッシュインデックスは、一般的に、ノードに関連付けられたキーと、ノードの位置とのマップ関係を指す。例えば、対象ジオコード値が「０１１０１０００」である場合、サーチングコーディング長は６であり、ルックアップモジュール３４０は、ハッシュインデックスに基づいて文字列（例えば、「０１１０１０」）に関連付けられたノードの位置を決定してもよい。ノードの全ての派生（本明細書では葉ノード又は子ノードとも呼ばれる）は、ノードに関連付けられた文字列の共通プレフィックス（例えば、「０１１０１０」）を有する。その後、少なくとも関連するジオコード値は、ノードの派生に関連付けられた文字列であってもよい。
【００７７】
５７０において、プロセッサ３００（例えば、ＰＯＩ決定モジュール３５０）は、少なくとも１つの関連ジオコード値に関連付けられた少なくとも１つのＰＯＩを決定してもよい。プロセッサ３００は、対象位置に関連付けられたＰＯＩとして少なくとも１つのＰＯＩを決定してもよい。ＰＯＩは、特定位置の名称、特定位置の座標（例えば、経度値及び／又は緯度値）、特定位置の住所（例えば、州、省、市、区、通り、番地）、特定位置に関連する電話番号、宣伝活動又は同様のもの又はそれらの任意の組み合わせを含んでもよい。
【００７８】
処理５００についての上記説明は、単なる一例であり、限定的であることが意図されるものではないことを留意すべきである。一部の実施形態では、処理５００は、他の動作を含んでもよい。例えば、対象位置に関する対象ジオコード値の決定後、プロセッサ３００（例えば、位置エンコーディングモジュール３３０）は、５３０において、対象位置に対応する近傍位置ジオコード値を取得してもよい。近傍位置ジオコード値は、対象位置の周囲の地理的位置に関連してもよい。近傍位置ジオコード値は、１以上のＰＯＩと関連付けられてもよい。近傍位置ジオコードを取得した後、ルックアップモジュール３４０は、近傍位置ジオコード値、対象ジオコード値及びサーチングコーディング長に基づいて、少なくとも１つのＰＯＩを決定してもよい。一部の実施形態では、対象位置及び近傍位置の周囲の複数のＰＯＩを決定した後、プロセッサ３００のソーティングモジュール３８０は、ソートルールに基づいて複数のＰＯＩをソートしてもよい。例にすぎないが、ソーティングモジュール３８０は、対象位置と複数のＰＯＩの各々に対応する位置との間の距離に基づいて、昇順で複数のＰＯＩをソートしてもよい。それに代えて又は加えて、ＰＯＩ決定モジュール３５０は、ユーザ端末１３０へ複数のＰＯＩを送信してもよく、これは、ユーザ端末１３０のユーザインターフェースに表示されてもよい（例えば、図７に示されるポインタとして表示される）。
【００７９】
図６は、本開示の一部の実施形態に係るジオコード構造を生成する例示的な処理を示すフローチャートである。処理６００に基づいて生成されたジオコード構造は、本開示のいずれかに記載されるようなＰＯＩを決定するために処理４００のステップ４３０及び処理５００のステップ５６０において用いられてもよい。
【００８０】
一部の実施形態では、処理６００は、図１に示されるようなオンデマンドサービスシステム１００に実装されてもよい。処理６００は、サーバ１１０、ユーザ端末１３０又はストレージ１４０に実装されてもよい。例えば、処理６００は、１以上の命令のセットとして実装され、ストレージ１４０又はプロセッサ３００に格納され、プロセッサ３００によって呼び出される及び／又は実行されてもよい。一部の実施形態では、処理６００、処理４００及び／又は処理５００の全ては、サーバ１１０においてプロセッサ３００によって呼び出される及び／又は実行されてもよい。一部の実施形態では、処理６００は、サーバ１１０又はストレージ１４０に実装されてもよく、処理４００及び／又は処理５００は、ユーザ端末１３０においてプロセッサ３００によって呼び出される及び／又は実行されてもよい。
【００８１】
６１０において、プロセッサ３００（例えば、位置取得モジュール３１０）又は異なるプロセッサは、複数の位置（本明細書ではサンプル位置とも呼ばれる）を取得してもよい。一部の実施形態では、サンプル位置は、データソースに格納された地理的位置であってもよい。データソースは、データベース、ネットワークリソース、リモートサーバ又は同様のもの又はそれらの任意の組み合わせを含んでもよい。サンプル位置は、テキスト、画像、音声、動画又は同様のもの又はそれらの任意の組み合わせの形態であってもよい。
【００８２】
一部の実施形態では、複数のサンプル位置を取得する前に、分類モジュール３７０は、複数のサンプル位置の各々の経度値及び緯度値に基づいて複数のサンプル位置を分類してもよい。分類モジュール３７０は、異なるサーバにおいて複数のサンプル位置を格納してもよく、同一種類のサンプル位置は、同一サーバに格納されてもよい。一部の実施形態では、同一地理的領域におけるサンプル位置は、同一種類であるとみなされてもよい。例えば、分類モジュール３７０は、第１のサーバにおいて第１の管理領域の複数のサンプル位置を格納し、第２のサーバにおいて第２の管理領域の複数のサンプル位置を格納してもよい。管理領域は、国、省、市、区、国、通り等を表してもよい。
【００８３】
一部の実施形態では、６１０において取得されたサンプル位置は、位置座標値を含んでもよい。一部の実施形態では、６１０において取得されたサンプル位置は、位置座標値を含まなくてもよく、プロセッサ３００は、サンプル位置を位置座標値へ変換してもよい。
【００８４】
６２０において、プロセッサ３００（例えば、位置分析モジュール３２０）又は異なるプロセッサは、複数のサンプル位置の各々に関連する経度値（本明細書ではサンプル経度値とも呼ばれる）及び複数のサンプル位置の各々に関連する緯度値（本明細書ではサンプル緯度値とも呼ばれる）を決定してもよい。
【００８５】
６３０において、プロセッサ３００（例えば、位置エンコーディングモジュール３３０）又は異なるプロセッサは、サンプル経度値及びサンプル緯度値に基づいて複数のサンプル位置の各々に対するサンプルジオコード値を決定してもよい。複数のサンプル位置の各々に対するサンプルジオコード値を決定する処理は、（例えば、処理５００のステップ５３０に関連して前述されたような）例えば、ジオハッシュ技術を用いることによって、対象位置に関連する対象ジオコード値を決定する処理と同様であってもよい。
【００８６】
６４０において、プロセッサ３００（例えば、構築モジュール）又は異なるプロセッサは、サンプルジオコード値に基づいてジオコード構造の複数のノードを決定してもよい。一部の実施形態では、ジオコード構造は、ジオコードツリー構造を含んでもよい。一部の実施形態では、ジオコード構造は、トライツリー構造を含んでもよい。ジオコード構造は、複数のサンプルジオコード値を格納する複数のノードを含んでもよい。一部の実施形態では、ジオコードツリー構造のノードは、複数のサンプルジオコード値と関連付けられてもよい。一部の実施形態では、ジオコードツリー構造のノードは、１つのサンプルジオコード値と関連付けられてもよい。
【００８７】
６５０において、プロセッサ３００（例えば、構築モジュール）又は異なるプロセッサは、サンプルジオコード値の各々への１以上のサンプルＰＯＩと関連してもよい。ＰＯＩ取得モジュール３６０は、データソースから複数のサンプルＰＯＩを取得してもよい。ＰＯＩは、サンプル位置の各々と関連付けられてもよい。サンプルＰＯＩは、位置の名称（例えば、サンプル位置、サンプル位置の周囲の位置）、位置の座標（例えば、経度値及び／又は緯度値）、位置の住所（例えば、州、省、市、区、通り、番地）、位置に関する電話番号、宣伝活動、又は病院、学校、公園、道路、橋、川、湖、山、鉄道駅、空港、企業、住宅地域、ホテル景観、スポット又は同様のもの又はそれらの任意の組み合わせを含んでもよい。一部の実施形態では、サンプルジオコード値は、１以上のサンプルＰＯＩと関連付けられてもよい。ジオコード値が決定された場合、ジオコード値と関連付けられた１以上のＰＯＩも決定されてもよい。
【００８８】
一部の実施形態では、処理６００は、ジオコード構造の各ノードに対するハッシュインデックスを決定することを更に含んでもよい。６６０において、プロセッサ３００（例えば、構築モジュール）又は異なるプロセッサは、各ノードに対するハッシュインデックスを決定してもよい。ハッシュインデックスは、ノードに関連付けられたキーとノードの位置とのマップ関係であってもよい。一部の実施形態では、プロセッサ３００は、ジオコードツリー構造においてノードの各々に対するハッシュ値を演算することによってハッシュインデックスを生成してもよい。ノードのハッシュ値は、ルートノードからノードへの経路を表してもよい。各ノードのハッシュ値は、与えられたサーチキーによりジオコードツリー構造においてノードの位置を素早く位置付けてもよい。
【００８９】
基本的な概念が説明されてきたが、前述した詳細な開示が例示によって示されることが意図されており、限定的ではないことがこの詳細な開示を読んだ後の当業者には明らかである。本明細書には明確に述べられていないが、各種変更、改善及び修正が生じてもよく、各種変更、改善及び修正が当業者には意図される。これらの変更、改善及び修正は、本開示によって提案されるように意図され、本開示の例示的な実施形態の趣旨及び範囲内である。
【００９０】
また、特定の用語は、本開示の実施形態を説明するために用いられている。例えば、文言「一実施形態」、「実施形態」及び「一部の実施形態」は、実施形態に関して説明された特定の特徴、構造又は特性が本開示の少なくとも１つの実施形態に含まれることを意味する。したがって、この詳細な説明の様々な部分において「実施形態」、「一実施形態」又は「別の実施形態」への２以上の参照は、同一の実施形態に対して全て言及する必要がないことが強調される、及び理解されるべきである。更に、特定の特徴、構造又は特性は、本開示の１以上の実施形態において適切に組み合わせられてもよい。
【００９１】
更に、当業者には当然のことながら、本開示の態様は、一切の新規及び有用な工程、機械、製造、若しくは合成物、又はこれらの一切の新規及び有用な改良を含め、多くの特許可能なクラス又はコンテキストのいずれかとして、本明細書中に例示し説明することが可能である。したがって、本開示の態様は、全体をハードウェアで、全体をソフトウェア（ファームウェア、常駐ソフトウェア、マイクロコードなどを含む）で、又は、本明細書では全てが一般的に「モジュール」、「ユニット」、「コンポーネント」、「デバイス」、又は「システム」と称される、ソフトウェア及びハードウェア実装の組み合せによって実装することができる。更に、本開示の態様は、具現化されたコンピュータ可読プログラムコードを有する、１つ以上のコンピュータ可読媒体中に具現化されたコンピュータプログラム製品の形を取ることもできる。
【００９２】
コンピュータ可読信号媒体は、例えば、ベースバンド中に又は搬送波の部分として、具現化されたコンピュータ可読プログラムコードを備える伝搬データ信号を含み得る。このような伝搬信号は、電磁気、光など、又はこれらの任意の適切な組み合せを含め、様々な形の任意の形を取ってよい。コンピュータ可読信号媒体は、コンピュータ可読ストレージ媒体ではなく、命令実行システム、装置、又はデバイスによって、又はこれらに関連させて使用するためのプログラムを通信、伝搬、又は搬送することが可能な任意のコンピュータ可読媒体であってよい。コンピュータ可読信号媒体上に具現化されたプログラムコードは、ワイヤレス、ワイヤライン、光ファイバケーブル、ＲＦ等、又は前述の任意の適切な組み合せを含め、任意の適切な媒体を用いて送信することができる。
【００９３】
本開示の態様のオペレーションを実行するためのコンピュータプログラムコードは、Ｊａｖａ（登録商標）、Ｓｃａｌａ、Ｓｍａｌｌｔａｌｋ、Ｅｉｆｆｅｌ、ＪＡＤＥ、Ｅｍｅｒａｌｄ、Ｃ＋＋、Ｃ＃、ＶＢ．ＮＥＴ、Ｐｙｔｈｏｎなどのオブジェクト指向プログラミング言語、「Ｃ」プログラミング言語、Ｖｉｓｕａｌ  Ｂａｓｉｃ、Ｆｏｒｔｒａｎ２００３、Ｐｅｒｌ、ＣＯＢＯＬ２００２、ＰＨＰ、ＡＢＡＰ等の従来式手続き型プログラミング言語、Ｐｙｔｈｏｎ、Ｒｕｂｙ、及びＧｒｏｏｖｙ等のダイナミックプログラミング言語、又は他のプログラミング言語を含め、１つ以上のプログラミング言語の任意の組み合せで記述することができる。このプログラムコードは、スタンドアロン・ソフトウェア・パッケージとしてユーザのコンピュータで専ら実行することも、ユーザのコンピュータで部分的に実行することもでき、一部をユーザのコンピュータで一部をリモートコンピュータで実行することもでき、あるいは遠隔のコンピュータ又はサーバで専ら実行することもできる。後者のシナリオの場合は、ローカルエリアネットワーク（ＬＡＮ）もしくは広域ネットワーク（ＷＡＮ）を含む任意の種類のネットワークを介して、遠隔コンピュータをユーザのコンピュータに接続することもでき、又は（例えばインターネットサービスプロバイダを使いインターネットを介し）、あるいはクラウドコンピューティング環境中で、又はサービスとしてのソフトウェア（ＳａａＳ：Ｓｏｆｔｗａｒｅ  ａｓ  ａ  Ｓｅｒｖｉｃｅ）などのサービスとして提供されて、外部のコンピュータへの接続を行うことも可能である。
【００９４】
更に、処理要素又はシーケンスの記載された順序、又は数、文字若しくは他の記号の使用は、特許請求の範囲に明示されているものを除き、請求対象のプロセス及び方法をいかなる順序に限定することも意図されていない。前述の開示では、本開示の有用な実施形態の種類と現時点で考えられる様々な例を介して説明をしているが、当然のことながら、このような詳細は単に前述の目的のためであり、添付の特許請求の範囲は、これら開示の実施形態に限定されるものでなく、それとは逆に、開示された実施形態の趣意及び範囲内にある変更及び等価の変形を網羅するように意図されている。例えば、前述の様々なコンポーネントの実装はハードウェアデバイスで具現化できるが、同様に、ソフトウェアだけのソリューション、例えば、既存のサーバ又は携帯デバイスへのインストールとしての実装が可能である。
【００９５】
同様に、本開示の実施形態の前述の説明では、当然のことながら、本開示を簡潔にし、１つ以上の様々な実施形態の理解を助力する目的で、様々な特徴が場合によって単一の実施形態、図、又はその説明に一緒にまとめられている。但し、この開示方法が、請求されている主題が各請求項中に明示で記載されているよりも多くの特徴を必要とする、との意図を反映していると解釈されるべきではない。むしろ、請求の主題は、前述で開示された単一の実施形態の全ての特徴よりも少ない特徴の中にある。
【図１】
0006571801.tif 000002
【図２】
0006571801.tif 000003
【図３】
0006571801.tif 000004
【図４】
0006571801.tif 000005
【図５】
0006571801.tif 000006
【図６】
0006571801.tif 000007
【図７】
0006571801.tif 000008