地表上の移動体の地理的位置に関する情報を収集し、使用するための技術
地表上の移動体の位置を示す情報を取得、伝達、保存、処理、配布、使用するための方法と装置。より詳細には、移動体の現在位置の緯度、経度と高度が測定され、その位置のデータが補助情報と共に中央基地局に定期的に伝達され、サーバー内にデータを永続的に保存する。これによって、このように保存されたデータは移動体の移動に関する情報を得るために各種のコンピュータアプリケーションによって使用するために移動体の過去および現在の位置について利用可能になる。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は一般的に、地表上の移動体の位置を示す情報を取得、伝達、保存、処理、配布、使用するための方法と装置に関するものである。より詳細には、移動体の現在位置の緯度、経度と高度を採取または獲得し、そのデータと補助情報をサーバー内にデータを永続的に保存するために中央基地局に定期的に伝達する技術に関するものであり、アプリケーション・プログラマー・インターフェイスが各種のコンピュータアプリケーションによって使用するために移動体の過去および現在の位置について情報を利用可能にする。
【背景技術】
【0002】
発明の背景
所与の時間における地表上の移動体(例えば、人、車、ペット)の位置の追跡は数多くの、周知の理由のうちのいずれか一つから所望される。この必要を満たすために数多くの技術が開発された。おそらく、もっともよく知られている技術のうちの二つは、全地球測位システム(GPS)とセルラー無線通信網の一部である移動電話に関わるものである。GPSは軌道を回る衛星に搭載された発信器を使用する。追跡される移動体の上に搭載された受信器は衛星によって伝達された信号をポーリングして該衛星からのその距離を計算する。受信器は三基以上のGPS衛星からの信号を検出して三角測量を応用し、地表上のその緯度と経度を求めるか、あるいは四基以上のGPS衛星からその緯度、経度と高度を求める。セルラー無線通信網において、ネットワークによって覆われた全サービスエリアは「セル」と呼ばれる複数個の受信可能区域に分割される。移動電話のおよその位置が分かるのはそれが位置する「セル」が分かっているからである。さらに、セル内の移動体の位置を求めることによってもっと正確な測定を得るために各種の技術が開発された。
【0003】
これらの既知の追跡技術に共通な特徴は関心のある情報が移動体の現在位置であることである。現在位置が求められ、その情報がすぐに使用されると、情報のそれ以上の必要性はもはや存在しない。結果として、位置データは相当の時間の間保存されることはない(すなわちデータの永続的保存はない)。また、移動体の位置に意味があるのは、特定の時点であるが、移動体の位置が必要になるかもしれない次の時点は典型的にはかなり後になる。したがって、移動体がどこに位置するかのデータは短い時間間隔で収集されず、またこのように継起的に収集された位置データが保存されることもない。結果として、いくつかの有益な機能に用いるために移動体の現在位置を求めるためにそれを追跡することは周知であるが、かなり長い時間にわたって移動体の位置の履歴に基づく情報が必要なとき、先行技術の方法の価値は限定されている。先行技術では短い時間間隔で収集された移動体の位置データのかかる履歴を収集(すなわち、取得し保存)しない、また各種のコンピュータアプリケーションのプログラマーによる保存されたデータの使用を容易にするためのかかる位置データの処理も行わない。
【発明の開示】
【発明が解決しようとする課題】
【0004】
本発明の一つの目的は、地表上の移動体の位置に関するデータを取得し、かなりの時間の間かかる位置データを保存すること(すなわち、位置データの永続的保存)である。
【0005】
本発明のもう一つの目的は、移動体のあった場所の位置データ履歴を、短い時間間隔で自動的に取得し、すべてのかかる位置データを保存することである。
【0006】
本発明のもう一つの目的は、要求情報を提供するために保存データを使用するタスクを容易にすることを目的として短い時間間隔で採取されたかかる位置データを処理することである。
【0007】
本発明の一つの別の目的は、位置データを取得、伝達、保存、処理、配布、使用するための新規な方法と装置を提供することである。
【0008】
本発明のさらに別の目的は、移動体の所在と動きの履歴に関する情報を提供する、もっと迅速で、信頼性が高く、範囲が広く、もっと確実な方法を可能にすることである。
【課題を解決するための手段】
【0009】
これらおよびその他の目的は、地表に沿って複数個の位置のそれぞれについて移動体の移動についての情報を提供する技術に向けられた本発明の一つの側面にしたがって達成される。複数個の位置のそれぞれに関連する位置データが取得され、複数個の位置についての位置データが移動体の移動についての情報を提供するために要求に応じてそこから選択的に検索するための永続的データベースに保存される。
【0010】
本発明のもう一つの側面は、地表に沿って複数個の位置のそれぞれについて移動体の移動についての情報を提供するための技術に向けられる。複数個の位置のそれぞれに関する位置データは永続的データベース内に収集される。特定の時間および/または位置に関する要求に応じて、永続的データベース内に保存された複数個の位置についての位置データにアクセスして特定の時間および/または位置に対応する移動体の移動についての情報が提供される。
【0011】
本発明のさらに別の側面は、複数個の位置のそれぞれについての位置データを取得して地表に沿って複数個の位置のそれぞれについて移動体の移動についての情報を提供するための技術に向けられる。複数個の位置についての位置データは、要求に応じて情報を提供するためにアクセス可能な複数個の関連位置クラスターに分割される。
【0012】
本発明のさらに別の側面は、複数個の位置のそれぞれについての位置データを取得し、複数個の位置のそれぞれについての個別マップを位置データに基づいて導き出して、地表に沿って複数個の位置のそれぞれについて移動体の移動についての情報を提供するための技術に向けられる。移動体の移動は前記複数個の個別マップの組み合わせによって動いて表示される。
【発明を実施するための最良の形態】
【0013】
図1は本発明を実施するために配置された構成部品の概略的ブロック図である。
図2は本発明にしたがってサーバーが実行する演算を図示するフローチャートである。
図3は図2に示したLOGIN演算の詳細を示している。
図4は図2に示したLOGOUT演算の詳細を示している。
図5A―5Cは図2に示したLOCATION演算の詳細を示している。
図6は図2に示したDISTANCE演算の詳細を示している。
図7A−7Cは図2に示したHISTORY演算の詳細を示している。
図8A−8Bは図2に示したMAP演算の詳細を示している。
図9は図2に示したANIMATION演算の詳細を示している。
図10は図2に示したPROXIMITY演算の詳細を示している。
図11Aは図2に示したOBSERVATION演算の詳細を示している。
図11Bは凸閉包と境界ボックスを示している。
図12Aと12Bは、サーバー内に保存され、地表上の移動体の移動に関連する位置情報から演繹された情報の表1から3Bを示している。
【0014】
図面の詳細な説明
本書に示す本発明の説明に用いられる用語は次のように定義する:
位置:緯度/経度/高度データの組である、対応するデータポイントを有する地表に対する三次元の地理的地点。
観測:対象物に付けられた特定の携帯型装置について得られた位置の順番付け。
場所:位置の領域(単一の点、クラスター、街路アドレス、都市、凸閉包、など)。
【0015】
本発明はサーバー・クライアント構成で組織されている。クライアントはハードウェアあるいはソフトウェアのいずれかとすることができ、また対象の場所に関する情報を提供し、対象の場所に関する情報を要求するか、あるいはその両方が可能である。サーバーは多数の対象についての場所データを同時に保存し、そのデータをサーバーからの情報を要求するクライアントからコンピュータアプリケーションによってすぐに利用できる情報に加工する。
【0016】
図1はGPS技術を用いる本発明の一つの実施例を示している。なおここで理解しなければならないのは、本発明がGPS技術に限定されず、この特定の配置が例示に過ぎないことである。サーバー3は、一つのタイプのクライアント、すなわち対象A上の携帯装置1と対象B上の携帯装置2、ならびに別のタイプのクライアント、すなわちコンピュータアプリケーションAPP1とAPP2で動作するように構成されている。第一のタイプのクライアントは、後述のごとく、対象の位置についてAPI5を介してサーバー3にデータを提供する。第二のタイプのクライアントは、同じく後述のごとく、API5を介してサーバー3から対象の位置について情報を要求する。
【0017】
ここで理解しなければならないことは、本発明に用いられる、移動体のような、クライアントの数は設計選択の問題である、ことである。二つの対象だけが示されていることは、複数個の対象の使用が可能であることを指摘しながら、本発明の説明を明瞭にするためにだけに行われたのである。以下の説明において、ただ一つの対象とそれに関連する携帯装置が詳細に説明されるが、かかる説明は全ての対象とそれらの関連する携帯装置とに当てはまるものとする。同様に、容易に理解されるだろうが、本発明に用いられる、コンピュータアプリケーションなどの、その他のタイプのクライアントの数も設計選択の問題であり、二つだけが示されているのは、複数個のかかるアプリケーションの使用が可能であることを指摘しながら、本発明の説明を明瞭にするためにだけに行われたのである。
【0018】
図1に戻って、位置採集携帯装置(「クライアント」)を担持または密閉する対象(人、車、ペットが含まれるが、それに限定されない)が示されている。携帯装置(以下、「装置」と称する)は、例えば、車または荷物の内部におくことができるか、あるいは自転車に装着したり、人の身に付けることができる。装置は、複数個のGPS衛星7からの信号をポーリングし、地表(これには、もちろん、高層建物、高木、なども含まれる)上の装置の位置や、また推論によって、対象の位置もそこから決定するために(図示されていない)周知の回路を含んでいる。装置によって発生した位置データは特定の時点における対象の特定位置を(すなわち、緯度、経度と高度によって)識別する。本発明で用いられる時間データは(後述のごとく)GPS衛星(およびセルタワー)によって継続的に伝達される時間情報に基づいて装置によって発生する。装置はさらに、GPS信号を検出し、対象の位置を決定するための過程の連続を予め選択した時間間隔で自動的に引き起こすために(図示されていない)制御回路も含んでいる。このような予め選択した時間間隔も設計選択の問題であり、要求データの保存および電池の寿命に対する時間の関数としての対象の位置の解像度との兼ね合いになる。制御回路は位置データをすぐにサーバー3に伝達するか、あるいは所定の数の位置について位置データを保存し、ついでバッチ伝送の一部として全てのかかる位置のデータを伝達するように設計することができる。推奨実施態様において、装置は適切なデータベース9を備えたサーバー3に定期的間隔でバッチメッセージを無線で伝達する。このメッセージは一連の位置のデジタルエンコーディングである。
【0019】
推奨実施態様において、携帯装置はNextel i88sまたはi95s移動電話であり、その中で上述の制御回路がJ2MEプログラミング環境で実装されたソフトウェアプログラムを実行している。このプログラムは対象の現在の緯度、経度と高度を計算して現在位置データを求めるためにGPS衛星をポーリングして、局所に(すなわち電話のメモリ内に)位置データを保存する。プログラムに従って、装置は、位置データと、その中に予め保存されていた、装置の全地球同定識別子(「GUID」)とを通信網6を介してリモートサーバーに中継する。位置データ送信の後(またTCPプロトコルを使用しているときは、例えば、サーバーがその受領を肯定応答した後に)局所保存された位置データは削除され、これらの過程が反復される。くわえて、位置計算の正確さ、対象の速度と方向、およびポーリングのときに「見えている」GPS衛星の数などのその他いくつものパラメータの値も求められる。保存パラメータのリストは次の通りである:
GUID
緯度
経度
現在観測時間
緯度/経度精度
直前観測時間
直前緯度
直前経度
セル緯度
セル経度
速度
速度不確実性
方向
高度
高度不確実性
衛星の数
支援GPS使用の有無。
【0020】
本発明を目的として、GUID、時間、緯度、経度と高度のパラメータの使用だけに関する議論が必要である。したがって、その他のパラメータの詳細は不必要とみなされる。
【0021】
プログラムは現在位置データを電話のメモリ内に保存し、(ラン・レングス符号化アルゴリズムを用いて)定期的に圧縮し、つぎにデータをGPRS(汎用パケット無線サービス、詳細はhttp://www.gsmworld.comから入手できる)を用いる通信網6を介してサーバーに伝達する。J2MEプログラムは、ユーザー(すなわち装置の所有者)がGPSポーリング周波数およびサーバーへの中継頻度、プロトコルがUDPであるかTCPであるかを制御することを可能にするメニューを提供する。
【0022】
サーバー3は、Linux(登録商標)オペレーティング・システムと、GUID、時間、緯度、経度と高度を含むそれぞれの位置の属性を永続的な記憶手段に記録するMySQLデータベースエンジン9(http://www.mysql.comから無料で入手できる)とを実行しているコンピュータである。複数個の位置についてのこの位置データは対象の移動を表す生データであり、かかる生データは、磁気ディスク、光ディスク、または非揮発性RAMなどの適切な永続的記憶媒体9に好適には永続的に保存される。生データは、後述のごとく、API5を介してアクセスできるもっとすぐに利用可能な情報に本発明に従って変換される。
【0023】
つぎに、API5の説明を提供する。APIは外部コンピュータアプリケーションのためにサーバー内に保存された位置データへのアクセスを可能にするインターフェイスである。該インターフェイスはXML−RPCプロトコルを介してかかる外部コンピュータアプリケーションからの要求を処理する。サーバーはPerl RPC::XML::サーバーモジュールを用いて要求を処理する。クライアントアプリケーションは、Perl RPC::XML::クライアントモジュールなどの、任意のXML−RPCインプリメンテーションを用いてもよい。
【0024】
パラメータは、“Compilers: Principles, Techniques, and Tools”(by Alfred V. Aho, Ravi Sethi, and Jeffrey D. Ullman, Addison Wesley, 1986)という書籍に記載の拡張Backus−Naur書式の、下記の定義を用いて定義される。縦の棒は代替を分離し、アステリスクは「0回以上」を意味し、プラスの符号は「1回以上」を意味する。
【0025】
OBJECT::=(GUID|LOCATION|HULL)
LOCATION_TYPE::=(“street address”|“street”|“postal code”|“city”|“state”|“country”|“cluster”|“mark”|“position”)
MAP_TYPE::=(“street”|“terrain”|“satellite”)
PLOT_TYPE::=(“point”|“trail”|“stipple”|“vector”)
GUID::=HEXDIGIT+
SESSION::=HEXDIGIT+
LOCATION::=(COUNTRY|STATE|POSTAL_CODE|CITY|ADDRESS)
ADDRESS::=STREET_ADDRESS [URBANIZATION] CITY STATE [POSTAL_CODE]COUNTRY
STREET_ADDRESS::=NAME
HULL::=POSITION+
POSITION::=LATITUDE LONGITUDE ALTITUDE
LATITUDE::=[“−”]NONZERO_DIGIT[DIGIT][DIGIT][“.”DIGIT*]
LONGITUDE::=[“−”]NONZERO_DIGIT[DIGIT][DIGIT][“.”DIGIT*]
ALTITUDE::=[“−”]DIGIT*[“.”DIGIT*]
INTERPOLATION::=BOOLEAN
STREAM::=BOOLEAN
SORT_METHOD::=(“chronological”|“reverse_chronological”|“ascending”|“descending”)
START_TIME::=TIME
END_TIME::=TIME
DURATION::=TIME
TIME::=NONZERO_DIGIT DIGIT*
TIME_STEP::=NONZERO_DIGIT DIGIT*
FRAME_RATE::=NONZERO_DIGIT DIGIT*
COUNTRY::=NAME
STATE::=NAME
POSTAL_CODE::=NAME
CITY::=NAME
PASSPHRASE::=NAME
NAME::=(LETTER|DIGIT|“”)+
IDENTIFIER::=(LETTER|DIGIT)+
HEXDIGIT::=(DIGIT|“A”|“B”|“C”|“D”|“E”|“F”)
LETTER::=(“A”|“B”|“C”|“D”|“E”|“F”|“G”|“H”|“I”|“J”|“K”|“L”|“M”|“N”|“O”|“P”|“Q”|“R”|“S”|“T”|“U”|“V”|“W”|“X”|“Y”|“Z”|“a”|“b”|“c”|“d”|“e”|“f”|“g”|“h”|“i”|“j”|“k”|“l”|“m”|“n”|“o”|“p”|“q”|“r”|“s”|“t”|“u”|“v”|“w”|“x”|“y”|“z”)
DIGIT::=(“0”|NONZERO_DIGIT)
NONZERO_DIGIT::=(“1”|“2”|“3”|“4”|“5”|“6”|“7”|“8”|“9”)
BOOLEAN::=(“0”|“1”)
【0026】
図2は、本発明に従ってサーバー3によって実行される演算を説明するのに有益なフローチャートである。クライアントの一つ一つは要求を送り、それはステップ10で、API5を介してサーバーによって受信される。サーバーはどの要求が受信されたかの決定と適切な応答に進む。以下の議論において、演算の最初の記述はそれが使用するパラメータを括弧内に指定する。随意のパラメータは角括弧内にある。
【0027】
クライアントがサーバー3と通信するために、LOGIN要求12{[LOGIN(GUID,PASSPHRASE)]}が処理される。この演算はクライアントのGUIDおよび予め割り当てられたPASSPHRASEに基づいてアプリケーション要求を取り扱う。図3に示したごとく、サーバーは、ユーザーによって入力された暗号化PASSPHRASEを、14によって、受信する。そのGUIDのためにサーバー内に予め保存されていたPASSPHRASEが、16で、検索され、18によって、受信PASSPHRASEと比較される。それらが一致しないとき、20で、適切なエラーメッセージが装置に返される(すなわち、伝達される)。それらが一致したとき、22で、サーバーは現在のセッションに固有の、SESSION IDと呼ばれる、コードを発生する。SESSION IDはサーバー内に記憶され、後で説明するように、他のクライアント要求を認証するのにその後必要になったときに、その後のエントリのためにクライアントに知られるように、24によって、やはりクライアントに返される。
【0028】
サーバーが取り扱うことのできるもう一つの要求はOBSERVATION要求26で、その詳細は図11Aに示されている。OBSERVATION要求に対する応答は装置から受信した生位置データを処理する。それは、装置から受信したSESSION IDがサーバー内に記憶されたSESSION IDと一致するか否かに基づいて、26で、ユーザーを認証することから始まる。認証に成功すると、28で、サーバーは生データを受信し保存する。30で、TCPプロトコルが装置からの伝達に用いられていることが判明したら、サーバーは、32で、肯定応答を装置に返す。UDPなどの、別のプロトコルが使用されていたとき、一切の肯定応答は無用である。もちろん、認証26に失敗したとき、34で、適切なエラーメッセージが装置に返される。
【0029】
上述の生位置データは、先に説明したとおり、生位置データのそれぞれのデータポイントが特定位置を(すなわち特定の時点でのその緯度、経度と高度によって)識別するようにステップ28によって保存されるが、かなりの処理をしない限り、このデータはコンピュータアプリケーションによってすぐには利用できない。もっとすぐに利用可能な形式にするために、位置データは地表の三次元領域(例えば、街路の交差点または都市)を特定する場所情報に変換される。以下にさらに詳細に説明するごとく、ある位置データは、例えば、街路名、家屋番号、都市、州などによって指定された完全な街路アドレスに変換される。
【0030】
サーバー3内(実際にはデータベース9内)に保存された生位置データの表からのサンプルエントリは図12Aの表No.1に示した。16進法(16ベース)が時間、緯度、経度と高度フィールドを除いて用いられる。GUID87F3はクライアントを一意的に同定し、一つの例において、クライアントは対象Aによって担持された装置1とすることができる。「時間」フィールドに入力したデータは1970年1月1日から数えた秒数である。もちろん、他の時間指標を用いることもできる。緯度、経度および高度は自明である。表1は、GUID87F3が割り当てられた対象についての二つの観測と、GUID5EA5が割り当てられた対象についての三つの観測とを示している。
【0031】
図11Aのステップ36は、ステップ28で保存された生位置データを街路アドレスなどの場所情報に変換する。このプロセスはリバース・ジオコーディングとして知られている。リバース・ジオコーディングを実行するための推奨ソフトウェア製品はSpatialFXと呼ばれ、ObjectFX社から入手できる。いくつものwebサービスもリバース・ジオコーディングを実施している。保存データのサンプルエントリは図12Aの表2Aと2Bに示されている。(印書したページの紙面の制約のため表2は図12Aの表2Aと2Bに分離されている。表2Bは表2Aのデータへの連結を示すだけのために 「GUID」フィールドと「観測」フィールドの反復を含むように示されている。)「観測」フィールドは観測の配列を示す識別子である。それは時間フィールドから演繹できるが、表内にそれが明示的に含まれていることによりいくつかの共通計算、例えば、「私の車の最近100の位置を示しなさい」などのユーザーによる要求、が容易になる。表2A内のその他のフィールドは、フィールドの表題から自明である。表2B内のフィールドは以下に詳細に説明する。その結果は、コンピュータアプリケーションが対象の場所を効率的に問い合わせ、後述のごとく、最寄りの街路アドレスとしてそれを返すことを可能にするデータベース内の表である。
【0032】
ステップ38は36で得られたアドレスをいくつもの逆索引に変換する。例えば、一つの逆索引は完全な街路アドレスをステップ36がかかるアドレスに変換した全ての観測位置に変換する。これが全てのアドレスについて行われる。したがって、あるユーザーが「私が[address]に最後にいたのはいつか?」を知りたいとき、解答は逆索引から迅速かつ効率的に作成することができる。逆索引がなければ、サーバーはデータベース9内の全ての保存された位置データを処理しなければならないだろう。都市、郵便番号、州および国についても同様な逆索引が作られる。
【0033】
それぞれの観測された位置についてステップ36によってアドレスが導かれる。同様に、ステップ36からそれぞれのアドレスについて逆索引内にエントリが作成される。しかしながら、ある観測にだけ対応するエントリは好適には一時間後に削除される。
【0034】
ステップ40はステップ36によって得られたそれぞれの街路アドレスを街路アドレスの近傍を示す街路図に変換する。これはマイクロソフト社のMapPointなどの製品を用いて達成される。全ての鍵となる場所(例えば、後述のごとくサーバーによって場所IDを割り当てられたもの)についての街路図は永久に保持される。鍵とならない場所の街路図はメモリ内にスペースを確保するために一時間後に好適には削除される。この情報は図12Aの表2Bの「街路図」フィールド内に保存される。それがデータベース内のかかる地図が保存されるところへのパスを構成して、コンピュータアプリケーションが対象の場所の街路図を効果的に発生するのを可能にする。
【0035】
かかる街路図は数多くの用途を有することができる。例えば、ユーザーは装置1を自分の犬に取り付けることができる。ユーザーが自分の犬がどこにいるかを知りたいと思えば、本発明は犬がどこで見つかるかを示す街路図を(後述のごとく)発生することができる。別の例において、装置1がユーザーに取り付けられているとき、ユーザーが他の人に電子的に送信することができる街路図を発生するために本発明を用いてどこであれ自分が現在いる場所への指示を誰にでも与えることができる。
【0036】
ステップ40はさらに、ステップ28によって保存された生位置データを衛星地図に変換する。これはKeyhole社からのEarthViewerなどの製品を用いて達成される。この情報は図12A内の表2Bの「衛星図」フィールド内に保存される。これはかかる地図が保存されるところへのパスを構成して、コンピュータアプリケーションが対象の場所の衛星地図を効率的に発生することを可能にする。例えば、ユーザーが興味のある区域がどのように見えるかの「俯瞰」観測を得たいと思うとき、衛星地図を発生するために本発明を使用することができるだろう。街路図はどこで左右に曲がるかについて二次元支援を提供することができる、しかし衛星地図は三次元であり、例えば、関心のある区域がどのように見えるか、その周囲の建物はどのように見えるか、また道路の広さはどのくらいか、についてはるかに詳細に見せることができる。
【0037】
ANIMATION要求230に応じて、本発明は「動画」街路図、地形図および/または衛星地図を発生することもできるが、これはビデオで、対象の動きを、それぞれ、街路、地形および/または衛星地図上に重ねることによって対象の動きを見せる。
【0038】
ステップ40はさらに、ステップ28によって保存された生位置データを地形図に変換する。これはMaptech社からのMapServerなどの製品を用いて達成される。この情報は図12Aの表2Bの「地形図」フィールド内に保存される。それはかかる地図が保存されたところへのパスを構成して、コンピュータアプリケーションが対象の場所の地形図を効果的に発生するのを可能にする。例えば、ユーザーが山で遭難したとき、本発明を用いて地形図を発生し、それを移動電話で救助者に向けることができるだろう。地形図は地勢の特徴を示して手掛かりを提供するが、これは緯度、経度と高度だけではできないことである。
【0039】
ステップ42はステップ28によって保存された生位置データをクラスター化された位置に変換する。全ての位置特定技術には、GPSをはじめとして、固有の不正確さが在るので、位置測定は対象の真の位置の周囲で変動することが多い。さらに、意味のある場所(街路アドレスなど)は明確な境界が示されないことが多い。これらの問題を解決するために、また重要区域を決定するために、近隣位置が一緒にまとめられ、それぞれ、単一の地理的場所として処理される。一緒にまとめるべき位置を識別する技術はクラスター化と呼ばれ、本発明はISODATAクラスター化アルゴリズムを用いてこれを達成する。このアルゴリズムはTherrien,C.W. “Decision, Estimation and Classification”, John Wiley & Sons, 1999に開示され、そこに含まれているこのアルゴリズムの説明は、参照として本書に含めた。結果はデータベース内の(以下に詳しく述べる)表であり、アプリケーションが対象の頻繁に訪れる場所を効率的に決定するのを可能にする。クラスター化によって得られたサンプルエントリは図12Bの表No.3に示されている。(表No.3は印書したページ上の紙面の制約のために図12Bの表3Aと3Bに分離されている。表3Bが「GUID」フィールドと「場所ID」フィールドの反復を含むように示されているのは、ただそれが表3Aのデータに連結されていることを示すためである。)場所IDはサーバーによって次の領域に割り当てられる:クラスター、街路アドレス、都市、郵便番号、州、国および(割当て半径とともに)クライアントによって特に指定された任意の位置。
【0040】
地球がほぼ球形であることを計算に入れるために、ISODATAには予備処理過程と後処理過程が要求される。緯度のそれぞれの一度は同じ距離であるが、経度はそうではない。経度の一度の地理的距離は極よりも赤道の方が大きい。例えば、北極においては、旋回するだけで経度の360゜を移動することができるが、赤道では、経度の360゜を踏破するには地球の円周の周りを旅行しなければならない。予備および後処理過程がなければ結果ははるかに不正確になるだろう、とくに対象の動きが大きな南北距離を踏破したときにはそうである。
【0041】
したがって、予備処理過程を適用して、緯度と経度を(経度が原因であるこの非線形性の影響を受けない)ユニバーサル横メルカトル座標系に「ゆがめ」、それをISODATAへの入力として使用する。後処理過程ではゆがみを戻す、すなわちユニバーサル横メルカトル位置を元の緯度と経度に変換する。緯度/経度とユニバーサル横メルカトルの間の変換は直接的である。この方法についての情報はhttp://www.uwgb.edu/dutchs/UsefulData/UTMFormulas.HTMで入手可能であり、それを印刷した参照はページの終わりにある。
【0042】
ISODATAは(多数のことがある)多くの位置について位置データを処理し、それらをクラスターに分割する。その結果は点の集合(そこから凸閉包が後述のごとく計算される)とセントロイドである。図11Aから明らかなように、クラスター化はそれぞれの新しいデータポイントについて実行される。しかしながら、これによって処理負荷が高くなるときは、クラスター化アルゴリズムは、毎時のように、選択した時間間隔でのみ実施される。
【0043】
今説明したように、クラスター化過程42はクラスターにまとめられた位置を決定する。凸閉包アルゴリズム44はつぎにそのクラスターの場所を定義する点の最小数を決定する。例えば、ユーザーの家の中、および周囲に散在した50000の観測があるとき、クラスター化は(ISODATAアルゴリズムを介して)これら全ての位置を一つのクラスターにまとめる。凸閉包アルゴリズムはそのクラスターの境界の位置を識別する。もっと具体的には、ステップ44は、全ての位置が境界内またはその上に来るように、一つのクラスターに区分された位置についてステップ28によって保存された生位置データから境界を決定する。もちろん、それぞれの異なるクラスターについて異なる境界がある可能性がある。凸閉包アルゴリズムの直感的説明は次のように提供することができる。多数の釘を無作為に板に打ち込み、つぎにゴムバンドを全ての釘の周囲に掛けると、何本かの釘はゴムバンドの内側になり、他のものはゴムバンドに接触するだろう。ゴムバンドに接触している釘が凸閉包を構成する。この項の数学的定義は「凸閉包」が対象の一集合を含む最小凸サブセットであるというものである。図11Bは凸閉包を黒い円で示し、白い円は凸閉包内の位置を示している。
【0044】
凸閉包は、いったん凸閉包がある対象について保存されたら、新しいデータポイントが到着するたびに、反復して拡大または縮小することができるという変更を加えて、参照として本書に含めたOrwant et al., “Mastering Algorithms with Perl”, O’Reilly & Associates, 1999, p.454に記載のPerlのサブルーチンで、好適には発生される。図11Aから明らかなように、凸閉包は全ての新しいデータポイントについて実行される。しかしながら、これによって処理負荷が高くなるときは、凸閉包アルゴリズムは、毎時のように、選択した時間間隔でのみ実施される。
【0045】
凸閉包を定義するデータポイントは図12Bに示した表No.3A内の「ポイント」フィールド内に秩序だった対(すなわち、緯度と経度)として保存される。例えば、場所IDフィールド内に16進数CB018によって識別されたクラスターが「ゴムバンド」の形状を定義するのに15本の「釘」を必要とする凸閉包を有するとき、「#ポイント」フィールドはその中に数15を有するであろう、また「ポイント」フィールドは、それぞれ、これらの「釘」に対応する15の秩序だった対を有するであろう。特殊な例として、表3AはそのGUIDとして87F3を有する対象のための場所IDとして16進数CB018を挙げている。このクラスターのセントロイドは緯度42.44680396、経度−71.22544954、高度14.10348にあるものとして決定される。凸閉包アルゴリズムはこのクラスターの形状が円であると決定した(これは、一つのだけの点、すなわちセントロイドと、それにくわえて5.1066の平均半径が形状の定義に要求されることを示す「#ポイント」フィールド内の「1」のエントリから明らかである)。反対に、場所ID CB9A4はその凸閉包の形状を特定するために3つの位置(または点)を要求し、これらについての秩序だった対は「ポイント」フィールド内に見つかる。
【0046】
場所ID CB018についてのセントロイドの位置、したがって、クラスターの場所はステップ36の結果から得られた15 Dalton Rd., Boston, MA. 02149 USAの住所に対応する。
【0047】
凸閉包が入手できると、ある位置がその中にあるかの判定は電子計算機的にきわめて容易である。凸閉包はこの目的のために特に設計されている。もちろん、対象が訪問した実際の場所に対応しないような仮想線によって囲まれた/定義された領域としてクラスターを表示することも可能である。
【0048】
サーバーが取り扱うことができるもう一つの要求はLOGOUT要求46{logout(SESSION)}である。これはセッションを終結する要求である。図4に示したごとく、認証ステップ48に成功した後、保存されたSESSION IDは、50によって、データベース9から削除され、52によって、適切な成功メッセージが装置に返される。サーバーがセッションのLOGOUT要求を受信したとき、サーバーはクライアントのSESSION IDを無効にして、クライアントが再度ログインするまで他の呼び出しを禁止する。
【0049】
サーバー3はLOCATION要求54{location(SESSION, OBJECT, LOCATION_TYPE, [TIME], [INTERPOLATION])}を取り扱うこともできる。この演算は「場所」方法を介して対象の場所を決定するためにアプリケーション要求を取り扱う。クライアントは認証のためにSESSION IDを提供し、場所を同定する対象を指定し、所望の出力形式を特定するために場所タイプを指定する。追加として、クライアントは、場所観測の所望時間と、できる限り正確に時間に合わせる試みにおいて対象の場所をシステムが推定するべきかを指示するブール補間ビットとを指定することもできる。
【0050】
図5A―5Cに示したごとく、認証56に成功すると、ステップ58はユーザーが指定された時間における場所を要求しているかを点検する。その場合、つぎにステップ60は位置データが正確な時間を有するかを検査する。該当する場合、つぎにステップ62が実行される(下記参照)。該当しない場合、ステップ64は補間が許可されたかを検査する。該当する場合、つぎにステップ66がデータベース内に保存された二つの時間の間で補間された位置を計算する。補間がOFFの場合、つぎにステップ68が指定された時間に一番近いいずれかの保存された時間に対するいずれかの位置データを選択する。
【0051】
ステップ58がどんな時間も指定されていないことを明らかにしたとき、つぎにステップ70は最後の既知の位置についての位置データを検索する。72によって、補間がONのとき、つぎにステップ74は位置を現在時間に外挿する。72によって、補間がOFFのときは、最後の既知の位置データがそのまま単に使用される。
【0052】
このように、ユーザーが場所を要求したとき、ステップ62への入力はその要求に応えるために必要な位置である。ステップ62はユーザーがこの情報を生位置データの形で所望するか否かを判定する。該当する場合、そのデータがステップ76によって提供され、フローはつぎに、図2に示すごとく、要求判定の最初の段階に回帰する。該当しないときは、ステップ78で場所タイプが街路アドレスであるか否かを判定する。該当する場合は、ステップ80で、その街路アドレスがステップ38で獲得した街路アドレス逆索引内にあるかを判定する。該当する場合は、ステップ82でそのアドレスをユーザーに提供する。該当しないときは、84で、リバース・ジオコーディング・プロセスを実行し、86で、情報を将来利用するために索引内に保存し、82で、ユーザーに返す。
【0053】
郵便番号のためのステップ88、90、92、94と96は、それぞれ、上述のステップ78、80、82、84と86に対応する。同様に、対応は都市については98、100、102、104、106、州については108、110、112、114、116、また国については118、120、122、124と126に適用される。
【0054】
128で、指定された場所タイプがクラスターであるときは、ステップ130で、指定された位置が既存のクラスター内であるか否かが判定される。該当する場合、132で、凸閉包が返される。該当しない場合は、134でクラスター化が実行され、136で、凸閉包アルゴリズムが実行され、132で結果がクライアントに返される。
【0055】
サーバーによって扱われるもう一つの要求はDISTANCE要求140{distance(SESSION,OBJECT,OBJECT)}である。サーバーは二つの対象の間の距離を決定するためにアプリケーション要求を取り扱う。クライアントはSESSION IDと二つの対象を提供する。結果は、適切なステップを使用してそれぞれの対象の10進数緯度と経度を決定し、ついでこれらの場所のセントロイドの間の球面距離(すなわち、ほぼ地球の表面にそった距離)を計算して求められる。
【0056】
図6に示したごとく、ステップ142と144は指定された各対象についてのそれぞれのGUIDをデータベースから検索する。ステップ146は第一の対象の最後の既知の位置を決定し、ステップ148は第二の対象について同様に決定する。ついでステップ150はそれらの間の球面距離を計算する。計算結果は、152で、クライアントに伝達される。
【0057】
サーバーによって扱われるもう一つの要求はHISTORY要求154{history(SESSION, OBJECT, LOCATION_TYPE, [TIME_STEP], [INTERPOLATION], [START_TIME], [END_TIME])}である。サーバーはHISTORY要求を取り扱って対象の移動の履歴を求める。クライアントはSESSION ID、対象、場所タイプと、随意に、時間ステップ、補間ビット、開始時間、および終了時間を提供する。
【0058】
時間ステップが提供されたとき、サーバーは固定間隔で観測を、例えば、その時刻の場所を返す。補間ビットが設定されているとき、所与の時間における位置を求めるために推定値が用いられる。そうでなければ、最も近い現実の観測が用いられる。結果は一連のタイムスタンプ付きの観測として返される。観測は、提供されていれば開始時間に、いなければ第一の観測で始まる。観測は、提供されていれば終了時間に、いなければ最後の観測で終わる。
【0059】
図7Aから7Cに示したごとく、認証が成功した後、ステップ156は対象のGUIDを決定する。つぎにステップ160(図7B参照)はクライアント要求が開始時間を指定しているかを検査する。該当しない場合は、ステップ162はその対象について記録された第一の観測を使用する。いずれにしても、つぎにステップ164は終了時間が提供されたか否かを検査する。そうでない場合は、ステップ166はその対象について記録された最後の観測を使用する。したがって、ステップ160−166の終わりに、このHISTORY演算の処理に要した開始および終了時間が分かる。
【0060】
ついで、ステップ170(図7C参照)はクライアント要求が時間ステップを指定しているかを検査する。該当する場合、ステップ172で、補間がONであれば(すなわち補間ビットが提供された)、ステップ174は時間ステップを括弧に入れる時間の間を補間する。例えば、もし時間ステップが5分であれば。しかしながら、5分間隔で位置が検出されないで、4分32秒に一つの位置、7分15秒にもう一つの位置あれば、ステップ174はかかる二つの位置についてのデータを用いて5分間隔の補間位置データを提供することになる。他方で、補間がOFFのとき、ステップ176は4分32秒に得られた位置データを選択することになる。なぜなら、それが5分間隔の時間に一番近いからである。
【0061】
図7Aに示した関数158は図7Bに示した全てのステップを表している。同様に、図7Cに示した全てのステップは図7Bの関数168によって表される。関数158と168の結論で、特定の位置についてのデータポイントはステップ174または176から知られ、HISTORY演算に従ってその後の処理に利用できる。
【0062】
図7Aに示したごとく、その既知の部分が図5Aのステップ62に入力される。したがって、クライアント要求が街路アドレスとして提供されるべき移動についてのものであるとき、そのアドレスはステップ78によって決定され、上述の既知の位置(すなわちステップ174または176から)に対応する街路アドレスがステップ82によってクライアントに返されることになる。
【0063】
HISTORY演算のためのこの一連のステップは全ての位置が処理されるまで(すなわち、終了時間まで)169で(図7A参照)、ループに従う。
【0064】
サーバー3によって取り扱われるもう一つの要求はMAP要求178{map(SESSION, OBJECT, MAP_TYPE, PLOT_TYPE, [START_TIME], [END_TIME], [INTERPOLATION])}である。サーバーは対象の場所の地図を発生してこの要求を取り扱う。クライアントはSESSION ID、対象、地図タイプ、プロットタイプと、随意に、開始時間、終了時間、および補間ビットを提供する。サーバーは、表2Bから入手可能なときはデータベースから地図を検索し、そうでないときは地図を作製する。
【0065】
地図タイプは「街路」、「地形」、または「衛星」タイプのいずれか一つである。プロットタイプは「点」、「軌跡」、または「ベクトル」のいずれか一つであり、発生した地図の中で対象のパスがどのように線描されるかを設定する。開始時間が提供されているとき、その時間からはじめて対象の場所が使用され、そうでなければ、システムによって記録された第一の観測になる。終了時間が提供されているとき、その時間に終わる対象の場所が使用され、そうでなければ、システムによって記録された最後の観測になる。補間ビットが設定されているとき、システムは従来の補間アルゴリズムを用いて現実の観測の間のデータを埋める。つぎに、地図イメージがクライアントに返される。
【0066】
図8Aと8Bに示すごとく、180での、GUIDへの変換が続く通常の認証ステップがうまく完了したとき、上述の関数158のステップは、上述のごとく、開始時間と終了時間を決定する。ついで、上述の関数168のステップが、先に説明したように、処理される観測位置を決定する。
【0067】
この段階で、作製される地図は「境界ボックス」を有する必要がある、なぜなら(上述のMapPointなどの)地図サービスは何を地図にするかを知る必要があるからである。例えば、43緯度、−71経度で地図を要求するだけでは十分ではない、なぜなら地図サービスは縮尺を知らないからである:それは平方ヤードであるべきか?平方マイルであるべきか?したがって、地図サービスが用いられるとき、本発明の場合がそれだが、地図の長方形の周辺を定義する「境界ボックス」が提供されなければならない。
【0068】
本発明は閉包内の点の全てをとおってループを作り、最小緯度、最大緯度、最小経度、および最大経度を計算して場所の凸閉包から境界ボックスを計算する。境界ボックスはこのときその左上角が最小緯度と最小経度の点にあり、その右下角が最大緯度と最大経度の点にある長方形になる。図11Bにおいて、角の括弧は凸閉包に対する境界ボックスを示している。
【0069】
図8Aのステップ182は上述のアルゴリズムに従って境界ボックスを計算する。
【0070】
境界ボックスが計算されると、MAP演算178は、詳細を図8Bに示した、図8Aに関数184として表示されているものを実行する。この図に戻る前に述べておかなければならないが、サーバーはマッピングサービスのために(街路図に一つ、地形図に一つ、衛星地図に一つの)三つのURI(Uniform Resource Identifiers)待ち行列を維持する。それぞれの待ち行列はシステムの寿命期間(すなわち、経験的に、マッピングサービスを使用する直前の試みの成功または失敗から)にわたって観測された信頼性の順に配置される。これらの待ち行列は一つ以上のマッピングサービスが利用できない事象の際に維持される。したがって、一つのマッピングサービスが応答しないとき、サーバーは次のマッピングサービスを選択するために待ち行列にアクセスする。
【0071】
ステップ186はクライアント要求に指定された地図タイプが地形図であるか否かを判定する。該当する場合は、ステップ188は地形待ち行列から第一のURIの抽出に着手し、190で、地図が検索される。192で、検索に成功すると、情報は要求されたプロットタイプに重ねられる。どのプロットタイプを使用するかはステップ216、220と224で決定され、ステップ218、222と226の中から適切なものが地図オバーレイを実施する。192で、地図検索に成功しなかったとき、ステップ194は待ち行列の中の次のURIに移行して、ステップ190から192までを再度ループする。
【0072】
ステップ196、198、200、202と204は衛星地図のために実行され、それぞれ上述のステップ186、188、190、192と194に対応している。
【0073】
同様に、街路図のためのステップ206、208、210、212と214はそれぞれ上述のステップ186、188、190、192と194に対応している。
【0074】
URI抽出ステップ188、198と208はURIによって指名されたサービスからマップを抽出するユティリティを用いる。かかるユティリティの一つがhttp://search.cpan.orgから入手できるPerl WWW::Mechanizeモジュールである。システムは該ユティリティを用いてステップ182で計算した境界ボックスのある地図を検索し、185で地図はクライアントに返される。
【0075】
もう一つの可能なクライアント要求はANIMATION要求230{animation(SESSION, OBJECT, MAP_TYPE, PLOT_TYPE, DURATION, FRAME_RATE, [STREAM], [START_TIME], [END_TIME])}である。この方法は対象の動きの動画を発生するためにアプリケーション要求を取り扱う。クライアントはSESSION ID、対象、地図タイプ、プロットタイプ、持続、フレームレートと、随意に、ストリームビット、開始時間、終了時間を提供する。最初の四つのパラメータについては前のステップで論じた。持続は動画が継続するべき時間の長さである。フレームレートは毎秒あたりのフレーム数である。ストリームビットはクライアントが動画全体をダウンロードしたいのか、あるいは発生の都度フレーム単位で受信したいのかを示すブーリアンである。開始時間は対象の最初の観測の時間である。終了時間は対象の最後の観測の時間である。サーバーは双線形補間を介して代表的観測の一集合を決定し、それぞれのかかる観測について地図を発生し、マップの配列を組み合わせて動画にして、ストリームビットが設定されているときは結果をクライアントにストリーミングし、その他の場合は動画全体を送信する。
【0076】
図9に示したごとく、認証とGUIDへの変換はステップ232で最初に行われる。ついで、上述の関数158を実行して開始および終了時間を決定する。ステップ234はフレームレートがクライアント要求に含まれているかを判定する。含まれていないとき、このパラメータは1フレーム/秒に設定される。(フレームレートが指定されているときは)234からの、(指定されていないときは)236からのフレームレートがステップ238に入力され、円滑な動画のために観測が要求される時間を決定する。これは指定フレームレートパラメータの値(またはフレームレートが指定されていないときは1)をDURATIONパラメータの値に分割して行われる(あるいは、DURATIONが省略されているときは、終了時間パラメータの値から開始時間パラメータの値を引いて、終了時間のデフォルトは最後に記録された観測で、開始時間のデフォルトは最初に記録された観測である)。もちろん、DURATIONは動画シーケンスの所望の時間長さである。このステップの結果は対象の位置が動画に現れるべき均等に配分された時間の配列である。
【0077】
ステップ240は必要な補間を実行し、ステップ242は位置のそれぞれの対について境界ボックスを計算する。ついで、演繹された情報を上述の関数184(図8B参照)に用いて要求プロットタイプを使用する要求地図タイプで地図を作製する。
【0078】
ステップ244はANIMATION演算の処理が位置の最後の対に到達したかを判定する。該当しない場合、この演算の処理は位置の最後の対に到達するまで関数184を通って反復ループする。なお、この段階で、関数184を通るループによって導き出された全ての地図は個別にサーバーに局所的に保存される。ステップ246はこれら全ての地図をGIF画像フォーマットに変換するユティリティを使用する。かかるユティリティの一つがpbmplusであり、http://www.acme.com/software/pbmplus/から入手できる。
【0079】
つぎに、ステップ248は、得られた各GIF画像を組み合わせて、フレームレートパラメータで指定されたフレームレートで動画gifにするユティリティを使用する。かかるユティリティの一つがMultiGIFで、http://www.kfs.org/〜abw/code/multigif.htmlから入手できる。結果は地図動画で、つづいてクライアントに返送されるものである。
【0080】
動画は、ステップ250、252と254に基づいて、ファイルまたはストリームとしてクライアントに返される。ストリーミングは、Quicktime(登録商標)(Apple, Inc.; http://developer.apple.com/quicktime)またはRealVideo(登録商標)(RealNetworks, Inc.; http://www.real.com)によって提供されているような、任意の従来のインターネット・ビデオ・ストリーミング技術を用いて達成できる。
【0081】
図2に示された最後の要求はPROXIMITY256要求{proximity(SESSION, OBJECT, OBJECT, SORT_METHOD, [START_TIME], [END_TIME], [TIME_STEP], [INTERPOLATION])}である。この方法は二つの対象の間の距離のリストを作成するためにアプリケーション要求を取り扱う。クライアントはSESSION ID、二つの対象、前方または後方のいずれかへの距離または時間を指定するデータの順序を提供する。クライアントは、前のステップで解釈されたような、随意の開始時間、終了時間、時間ステップ、または、補間ビットを提供してもよい。
【0082】
図10に示したごとく、二つの対象はステップ270と272によってそれらのそれぞれのGUIDに変換される。関数158は開始時間と終了時間を決定する。上述の関数168と同じ機能を有する関数168aは、第一の対象の位置を提供する。同様に、関数168bは他方の対象の位置を提供する。この演算のためのそれぞれのステップは、第一の対象について一つの位置を、第二の対象について一つの位置を有することになる。ステップ274は二つの対象のこれらの位置の間の球面距離を計算する。つぎにこれがそれぞれの時間ステップについて行われる。二つの対象が静止しているとき、それらの間の距離は明らかに同じままである。一方の対象が移動し、他方が静止しているとき、両対象の間の距離は動いている対象の運動にだけ依存する。両方の対象が移動しているとき、距離はそれらの組み合わせた運動に応じて変動することになる。
【0083】
PROXIMITY演算の結果を表すのにいくつかの分類方法が利用可能である。両対象の間の距離は、時系列で、あるいは逆時系列で時間関数として表すことができる。また、結果は両対象の間の距離の大きさについて表し、距離を昇順または降順で表すことができる。クライアント要求がこれらの分類方法のどれにも対応しないとき、ステップ290でエラーメッセージが返される。
【0084】
ステップ276−279はどの分類方法がクライアント要求に含まれたかを判定する。ステップ280−283はそれぞれ要求された分類方法を実行し、ステップ284−287は要求された情報をクライアントに返す。
【0085】
以上のように本発明の推奨実施態様を詳細に述べたが、当業者には自明のごとくさまざまな変更を加えることができる。例えば、本発明はハードウェアもしくはソフトウェアに、または両者の組み合わせに実装しても良い。また、ISODATAアルゴリズムは場所決定のためのいくつもの技術のうちの一つである。ファジー・クラスター化、階層クラスター化、およびコホーネンの自己組織地図などの、他の技術も可能である。HSCSDおよび802.11プロトコル・ファミリーのような、GPRSの使用への代案もある。さらに、MultiGIFを使う代わりに、GIFフォーマットの地図は、http://www.ulead.comから入手可能なUleadなどのソフトウェア製品をスクリプトしてGIF89a動画に変換することができる。また、Cell ID、BluetoothまたはRFIDなどの、位置決め技術としてのGPSの使用への代案もある。これらおよびその他の変更をもって請求の範囲に定義された本発明の範囲を逸脱できないものとする。
【図面の簡単な説明】
【0086】
【図1】本発明を実施するために配置された構成部品の概略的ブロック図
【図2】本発明にしたがってサーバーが実行する演算を図示するフローチャート
【図3】図2に示したLOGIN演算の詳細を示す図
【図4】図2に示したLOGOUT演算の詳細を示す図
【図5A】図2に示したLOCATION演算の詳細を示す図
【図5B】図2に示したLOCATION演算の詳細を示す図
【図5C】図2に示したLOCATION演算の詳細を示す図
【図6】図2に示したDISTANCE演算の詳細を示す図
【図7A】図2に示したHISTORY演算の詳細を示す図
【図7B】図2に示したHISTORY演算の詳細を示す図
【図7C】図2に示したHISTORY演算の詳細を示す図
【図8A】図2に示したMAP演算の詳細を示す図
【図8B】図2に示したMAP演算の詳細を示す図
【図9】図2に示したANIMATION演算の詳細を示す図
【図10】図2に示したPROXIMITY演算の詳細を示す図
【図11A】図2に示したOBSERVATION演算の詳細を示す図
【図11B】凸閉包と境界ボックスを示す図
【図12A】地表上の移動体の移動に関連する位置情報のサンプリエントリの表1〜2Bを示す図
【図12B】地表上の移動体の移動に関連する位置情報のサンプリエントリの表3A〜3Bを示す図
【符号の説明】
【0087】
1 携帯装置
2 携帯装置
3 サーバー
6 通信網
7 GPS衛星
9 データベース
【技術分野】
【0001】
本発明は一般的に、地表上の移動体の位置を示す情報を取得、伝達、保存、処理、配布、使用するための方法と装置に関するものである。より詳細には、移動体の現在位置の緯度、経度と高度を採取または獲得し、そのデータと補助情報をサーバー内にデータを永続的に保存するために中央基地局に定期的に伝達する技術に関するものであり、アプリケーション・プログラマー・インターフェイスが各種のコンピュータアプリケーションによって使用するために移動体の過去および現在の位置について情報を利用可能にする。
【背景技術】
【0002】
発明の背景
所与の時間における地表上の移動体(例えば、人、車、ペット)の位置の追跡は数多くの、周知の理由のうちのいずれか一つから所望される。この必要を満たすために数多くの技術が開発された。おそらく、もっともよく知られている技術のうちの二つは、全地球測位システム(GPS)とセルラー無線通信網の一部である移動電話に関わるものである。GPSは軌道を回る衛星に搭載された発信器を使用する。追跡される移動体の上に搭載された受信器は衛星によって伝達された信号をポーリングして該衛星からのその距離を計算する。受信器は三基以上のGPS衛星からの信号を検出して三角測量を応用し、地表上のその緯度と経度を求めるか、あるいは四基以上のGPS衛星からその緯度、経度と高度を求める。セルラー無線通信網において、ネットワークによって覆われた全サービスエリアは「セル」と呼ばれる複数個の受信可能区域に分割される。移動電話のおよその位置が分かるのはそれが位置する「セル」が分かっているからである。さらに、セル内の移動体の位置を求めることによってもっと正確な測定を得るために各種の技術が開発された。
【0003】
これらの既知の追跡技術に共通な特徴は関心のある情報が移動体の現在位置であることである。現在位置が求められ、その情報がすぐに使用されると、情報のそれ以上の必要性はもはや存在しない。結果として、位置データは相当の時間の間保存されることはない(すなわちデータの永続的保存はない)。また、移動体の位置に意味があるのは、特定の時点であるが、移動体の位置が必要になるかもしれない次の時点は典型的にはかなり後になる。したがって、移動体がどこに位置するかのデータは短い時間間隔で収集されず、またこのように継起的に収集された位置データが保存されることもない。結果として、いくつかの有益な機能に用いるために移動体の現在位置を求めるためにそれを追跡することは周知であるが、かなり長い時間にわたって移動体の位置の履歴に基づく情報が必要なとき、先行技術の方法の価値は限定されている。先行技術では短い時間間隔で収集された移動体の位置データのかかる履歴を収集(すなわち、取得し保存)しない、また各種のコンピュータアプリケーションのプログラマーによる保存されたデータの使用を容易にするためのかかる位置データの処理も行わない。
【発明の開示】
【発明が解決しようとする課題】
【0004】
本発明の一つの目的は、地表上の移動体の位置に関するデータを取得し、かなりの時間の間かかる位置データを保存すること(すなわち、位置データの永続的保存)である。
【0005】
本発明のもう一つの目的は、移動体のあった場所の位置データ履歴を、短い時間間隔で自動的に取得し、すべてのかかる位置データを保存することである。
【0006】
本発明のもう一つの目的は、要求情報を提供するために保存データを使用するタスクを容易にすることを目的として短い時間間隔で採取されたかかる位置データを処理することである。
【0007】
本発明の一つの別の目的は、位置データを取得、伝達、保存、処理、配布、使用するための新規な方法と装置を提供することである。
【0008】
本発明のさらに別の目的は、移動体の所在と動きの履歴に関する情報を提供する、もっと迅速で、信頼性が高く、範囲が広く、もっと確実な方法を可能にすることである。
【課題を解決するための手段】
【0009】
これらおよびその他の目的は、地表に沿って複数個の位置のそれぞれについて移動体の移動についての情報を提供する技術に向けられた本発明の一つの側面にしたがって達成される。複数個の位置のそれぞれに関連する位置データが取得され、複数個の位置についての位置データが移動体の移動についての情報を提供するために要求に応じてそこから選択的に検索するための永続的データベースに保存される。
【0010】
本発明のもう一つの側面は、地表に沿って複数個の位置のそれぞれについて移動体の移動についての情報を提供するための技術に向けられる。複数個の位置のそれぞれに関する位置データは永続的データベース内に収集される。特定の時間および/または位置に関する要求に応じて、永続的データベース内に保存された複数個の位置についての位置データにアクセスして特定の時間および/または位置に対応する移動体の移動についての情報が提供される。
【0011】
本発明のさらに別の側面は、複数個の位置のそれぞれについての位置データを取得して地表に沿って複数個の位置のそれぞれについて移動体の移動についての情報を提供するための技術に向けられる。複数個の位置についての位置データは、要求に応じて情報を提供するためにアクセス可能な複数個の関連位置クラスターに分割される。
【0012】
本発明のさらに別の側面は、複数個の位置のそれぞれについての位置データを取得し、複数個の位置のそれぞれについての個別マップを位置データに基づいて導き出して、地表に沿って複数個の位置のそれぞれについて移動体の移動についての情報を提供するための技術に向けられる。移動体の移動は前記複数個の個別マップの組み合わせによって動いて表示される。
【発明を実施するための最良の形態】
【0013】
図1は本発明を実施するために配置された構成部品の概略的ブロック図である。
図2は本発明にしたがってサーバーが実行する演算を図示するフローチャートである。
図3は図2に示したLOGIN演算の詳細を示している。
図4は図2に示したLOGOUT演算の詳細を示している。
図5A―5Cは図2に示したLOCATION演算の詳細を示している。
図6は図2に示したDISTANCE演算の詳細を示している。
図7A−7Cは図2に示したHISTORY演算の詳細を示している。
図8A−8Bは図2に示したMAP演算の詳細を示している。
図9は図2に示したANIMATION演算の詳細を示している。
図10は図2に示したPROXIMITY演算の詳細を示している。
図11Aは図2に示したOBSERVATION演算の詳細を示している。
図11Bは凸閉包と境界ボックスを示している。
図12Aと12Bは、サーバー内に保存され、地表上の移動体の移動に関連する位置情報から演繹された情報の表1から3Bを示している。
【0014】
図面の詳細な説明
本書に示す本発明の説明に用いられる用語は次のように定義する:
位置:緯度/経度/高度データの組である、対応するデータポイントを有する地表に対する三次元の地理的地点。
観測:対象物に付けられた特定の携帯型装置について得られた位置の順番付け。
場所:位置の領域(単一の点、クラスター、街路アドレス、都市、凸閉包、など)。
【0015】
本発明はサーバー・クライアント構成で組織されている。クライアントはハードウェアあるいはソフトウェアのいずれかとすることができ、また対象の場所に関する情報を提供し、対象の場所に関する情報を要求するか、あるいはその両方が可能である。サーバーは多数の対象についての場所データを同時に保存し、そのデータをサーバーからの情報を要求するクライアントからコンピュータアプリケーションによってすぐに利用できる情報に加工する。
【0016】
図1はGPS技術を用いる本発明の一つの実施例を示している。なおここで理解しなければならないのは、本発明がGPS技術に限定されず、この特定の配置が例示に過ぎないことである。サーバー3は、一つのタイプのクライアント、すなわち対象A上の携帯装置1と対象B上の携帯装置2、ならびに別のタイプのクライアント、すなわちコンピュータアプリケーションAPP1とAPP2で動作するように構成されている。第一のタイプのクライアントは、後述のごとく、対象の位置についてAPI5を介してサーバー3にデータを提供する。第二のタイプのクライアントは、同じく後述のごとく、API5を介してサーバー3から対象の位置について情報を要求する。
【0017】
ここで理解しなければならないことは、本発明に用いられる、移動体のような、クライアントの数は設計選択の問題である、ことである。二つの対象だけが示されていることは、複数個の対象の使用が可能であることを指摘しながら、本発明の説明を明瞭にするためにだけに行われたのである。以下の説明において、ただ一つの対象とそれに関連する携帯装置が詳細に説明されるが、かかる説明は全ての対象とそれらの関連する携帯装置とに当てはまるものとする。同様に、容易に理解されるだろうが、本発明に用いられる、コンピュータアプリケーションなどの、その他のタイプのクライアントの数も設計選択の問題であり、二つだけが示されているのは、複数個のかかるアプリケーションの使用が可能であることを指摘しながら、本発明の説明を明瞭にするためにだけに行われたのである。
【0018】
図1に戻って、位置採集携帯装置(「クライアント」)を担持または密閉する対象(人、車、ペットが含まれるが、それに限定されない)が示されている。携帯装置(以下、「装置」と称する)は、例えば、車または荷物の内部におくことができるか、あるいは自転車に装着したり、人の身に付けることができる。装置は、複数個のGPS衛星7からの信号をポーリングし、地表(これには、もちろん、高層建物、高木、なども含まれる)上の装置の位置や、また推論によって、対象の位置もそこから決定するために(図示されていない)周知の回路を含んでいる。装置によって発生した位置データは特定の時点における対象の特定位置を(すなわち、緯度、経度と高度によって)識別する。本発明で用いられる時間データは(後述のごとく)GPS衛星(およびセルタワー)によって継続的に伝達される時間情報に基づいて装置によって発生する。装置はさらに、GPS信号を検出し、対象の位置を決定するための過程の連続を予め選択した時間間隔で自動的に引き起こすために(図示されていない)制御回路も含んでいる。このような予め選択した時間間隔も設計選択の問題であり、要求データの保存および電池の寿命に対する時間の関数としての対象の位置の解像度との兼ね合いになる。制御回路は位置データをすぐにサーバー3に伝達するか、あるいは所定の数の位置について位置データを保存し、ついでバッチ伝送の一部として全てのかかる位置のデータを伝達するように設計することができる。推奨実施態様において、装置は適切なデータベース9を備えたサーバー3に定期的間隔でバッチメッセージを無線で伝達する。このメッセージは一連の位置のデジタルエンコーディングである。
【0019】
推奨実施態様において、携帯装置はNextel i88sまたはi95s移動電話であり、その中で上述の制御回路がJ2MEプログラミング環境で実装されたソフトウェアプログラムを実行している。このプログラムは対象の現在の緯度、経度と高度を計算して現在位置データを求めるためにGPS衛星をポーリングして、局所に(すなわち電話のメモリ内に)位置データを保存する。プログラムに従って、装置は、位置データと、その中に予め保存されていた、装置の全地球同定識別子(「GUID」)とを通信網6を介してリモートサーバーに中継する。位置データ送信の後(またTCPプロトコルを使用しているときは、例えば、サーバーがその受領を肯定応答した後に)局所保存された位置データは削除され、これらの過程が反復される。くわえて、位置計算の正確さ、対象の速度と方向、およびポーリングのときに「見えている」GPS衛星の数などのその他いくつものパラメータの値も求められる。保存パラメータのリストは次の通りである:
GUID
緯度
経度
現在観測時間
緯度/経度精度
直前観測時間
直前緯度
直前経度
セル緯度
セル経度
速度
速度不確実性
方向
高度
高度不確実性
衛星の数
支援GPS使用の有無。
【0020】
本発明を目的として、GUID、時間、緯度、経度と高度のパラメータの使用だけに関する議論が必要である。したがって、その他のパラメータの詳細は不必要とみなされる。
【0021】
プログラムは現在位置データを電話のメモリ内に保存し、(ラン・レングス符号化アルゴリズムを用いて)定期的に圧縮し、つぎにデータをGPRS(汎用パケット無線サービス、詳細はhttp://www.gsmworld.comから入手できる)を用いる通信網6を介してサーバーに伝達する。J2MEプログラムは、ユーザー(すなわち装置の所有者)がGPSポーリング周波数およびサーバーへの中継頻度、プロトコルがUDPであるかTCPであるかを制御することを可能にするメニューを提供する。
【0022】
サーバー3は、Linux(登録商標)オペレーティング・システムと、GUID、時間、緯度、経度と高度を含むそれぞれの位置の属性を永続的な記憶手段に記録するMySQLデータベースエンジン9(http://www.mysql.comから無料で入手できる)とを実行しているコンピュータである。複数個の位置についてのこの位置データは対象の移動を表す生データであり、かかる生データは、磁気ディスク、光ディスク、または非揮発性RAMなどの適切な永続的記憶媒体9に好適には永続的に保存される。生データは、後述のごとく、API5を介してアクセスできるもっとすぐに利用可能な情報に本発明に従って変換される。
【0023】
つぎに、API5の説明を提供する。APIは外部コンピュータアプリケーションのためにサーバー内に保存された位置データへのアクセスを可能にするインターフェイスである。該インターフェイスはXML−RPCプロトコルを介してかかる外部コンピュータアプリケーションからの要求を処理する。サーバーはPerl RPC::XML::サーバーモジュールを用いて要求を処理する。クライアントアプリケーションは、Perl RPC::XML::クライアントモジュールなどの、任意のXML−RPCインプリメンテーションを用いてもよい。
【0024】
パラメータは、“Compilers: Principles, Techniques, and Tools”(by Alfred V. Aho, Ravi Sethi, and Jeffrey D. Ullman, Addison Wesley, 1986)という書籍に記載の拡張Backus−Naur書式の、下記の定義を用いて定義される。縦の棒は代替を分離し、アステリスクは「0回以上」を意味し、プラスの符号は「1回以上」を意味する。
【0025】
OBJECT::=(GUID|LOCATION|HULL)
LOCATION_TYPE::=(“street address”|“street”|“postal code”|“city”|“state”|“country”|“cluster”|“mark”|“position”)
MAP_TYPE::=(“street”|“terrain”|“satellite”)
PLOT_TYPE::=(“point”|“trail”|“stipple”|“vector”)
GUID::=HEXDIGIT+
SESSION::=HEXDIGIT+
LOCATION::=(COUNTRY|STATE|POSTAL_CODE|CITY|ADDRESS)
ADDRESS::=STREET_ADDRESS [URBANIZATION] CITY STATE [POSTAL_CODE]COUNTRY
STREET_ADDRESS::=NAME
HULL::=POSITION+
POSITION::=LATITUDE LONGITUDE ALTITUDE
LATITUDE::=[“−”]NONZERO_DIGIT[DIGIT][DIGIT][“.”DIGIT*]
LONGITUDE::=[“−”]NONZERO_DIGIT[DIGIT][DIGIT][“.”DIGIT*]
ALTITUDE::=[“−”]DIGIT*[“.”DIGIT*]
INTERPOLATION::=BOOLEAN
STREAM::=BOOLEAN
SORT_METHOD::=(“chronological”|“reverse_chronological”|“ascending”|“descending”)
START_TIME::=TIME
END_TIME::=TIME
DURATION::=TIME
TIME::=NONZERO_DIGIT DIGIT*
TIME_STEP::=NONZERO_DIGIT DIGIT*
FRAME_RATE::=NONZERO_DIGIT DIGIT*
COUNTRY::=NAME
STATE::=NAME
POSTAL_CODE::=NAME
CITY::=NAME
PASSPHRASE::=NAME
NAME::=(LETTER|DIGIT|“”)+
IDENTIFIER::=(LETTER|DIGIT)+
HEXDIGIT::=(DIGIT|“A”|“B”|“C”|“D”|“E”|“F”)
LETTER::=(“A”|“B”|“C”|“D”|“E”|“F”|“G”|“H”|“I”|“J”|“K”|“L”|“M”|“N”|“O”|“P”|“Q”|“R”|“S”|“T”|“U”|“V”|“W”|“X”|“Y”|“Z”|“a”|“b”|“c”|“d”|“e”|“f”|“g”|“h”|“i”|“j”|“k”|“l”|“m”|“n”|“o”|“p”|“q”|“r”|“s”|“t”|“u”|“v”|“w”|“x”|“y”|“z”)
DIGIT::=(“0”|NONZERO_DIGIT)
NONZERO_DIGIT::=(“1”|“2”|“3”|“4”|“5”|“6”|“7”|“8”|“9”)
BOOLEAN::=(“0”|“1”)
【0026】
図2は、本発明に従ってサーバー3によって実行される演算を説明するのに有益なフローチャートである。クライアントの一つ一つは要求を送り、それはステップ10で、API5を介してサーバーによって受信される。サーバーはどの要求が受信されたかの決定と適切な応答に進む。以下の議論において、演算の最初の記述はそれが使用するパラメータを括弧内に指定する。随意のパラメータは角括弧内にある。
【0027】
クライアントがサーバー3と通信するために、LOGIN要求12{[LOGIN(GUID,PASSPHRASE)]}が処理される。この演算はクライアントのGUIDおよび予め割り当てられたPASSPHRASEに基づいてアプリケーション要求を取り扱う。図3に示したごとく、サーバーは、ユーザーによって入力された暗号化PASSPHRASEを、14によって、受信する。そのGUIDのためにサーバー内に予め保存されていたPASSPHRASEが、16で、検索され、18によって、受信PASSPHRASEと比較される。それらが一致しないとき、20で、適切なエラーメッセージが装置に返される(すなわち、伝達される)。それらが一致したとき、22で、サーバーは現在のセッションに固有の、SESSION IDと呼ばれる、コードを発生する。SESSION IDはサーバー内に記憶され、後で説明するように、他のクライアント要求を認証するのにその後必要になったときに、その後のエントリのためにクライアントに知られるように、24によって、やはりクライアントに返される。
【0028】
サーバーが取り扱うことのできるもう一つの要求はOBSERVATION要求26で、その詳細は図11Aに示されている。OBSERVATION要求に対する応答は装置から受信した生位置データを処理する。それは、装置から受信したSESSION IDがサーバー内に記憶されたSESSION IDと一致するか否かに基づいて、26で、ユーザーを認証することから始まる。認証に成功すると、28で、サーバーは生データを受信し保存する。30で、TCPプロトコルが装置からの伝達に用いられていることが判明したら、サーバーは、32で、肯定応答を装置に返す。UDPなどの、別のプロトコルが使用されていたとき、一切の肯定応答は無用である。もちろん、認証26に失敗したとき、34で、適切なエラーメッセージが装置に返される。
【0029】
上述の生位置データは、先に説明したとおり、生位置データのそれぞれのデータポイントが特定位置を(すなわち特定の時点でのその緯度、経度と高度によって)識別するようにステップ28によって保存されるが、かなりの処理をしない限り、このデータはコンピュータアプリケーションによってすぐには利用できない。もっとすぐに利用可能な形式にするために、位置データは地表の三次元領域(例えば、街路の交差点または都市)を特定する場所情報に変換される。以下にさらに詳細に説明するごとく、ある位置データは、例えば、街路名、家屋番号、都市、州などによって指定された完全な街路アドレスに変換される。
【0030】
サーバー3内(実際にはデータベース9内)に保存された生位置データの表からのサンプルエントリは図12Aの表No.1に示した。16進法(16ベース)が時間、緯度、経度と高度フィールドを除いて用いられる。GUID87F3はクライアントを一意的に同定し、一つの例において、クライアントは対象Aによって担持された装置1とすることができる。「時間」フィールドに入力したデータは1970年1月1日から数えた秒数である。もちろん、他の時間指標を用いることもできる。緯度、経度および高度は自明である。表1は、GUID87F3が割り当てられた対象についての二つの観測と、GUID5EA5が割り当てられた対象についての三つの観測とを示している。
【0031】
図11Aのステップ36は、ステップ28で保存された生位置データを街路アドレスなどの場所情報に変換する。このプロセスはリバース・ジオコーディングとして知られている。リバース・ジオコーディングを実行するための推奨ソフトウェア製品はSpatialFXと呼ばれ、ObjectFX社から入手できる。いくつものwebサービスもリバース・ジオコーディングを実施している。保存データのサンプルエントリは図12Aの表2Aと2Bに示されている。(印書したページの紙面の制約のため表2は図12Aの表2Aと2Bに分離されている。表2Bは表2Aのデータへの連結を示すだけのために 「GUID」フィールドと「観測」フィールドの反復を含むように示されている。)「観測」フィールドは観測の配列を示す識別子である。それは時間フィールドから演繹できるが、表内にそれが明示的に含まれていることによりいくつかの共通計算、例えば、「私の車の最近100の位置を示しなさい」などのユーザーによる要求、が容易になる。表2A内のその他のフィールドは、フィールドの表題から自明である。表2B内のフィールドは以下に詳細に説明する。その結果は、コンピュータアプリケーションが対象の場所を効率的に問い合わせ、後述のごとく、最寄りの街路アドレスとしてそれを返すことを可能にするデータベース内の表である。
【0032】
ステップ38は36で得られたアドレスをいくつもの逆索引に変換する。例えば、一つの逆索引は完全な街路アドレスをステップ36がかかるアドレスに変換した全ての観測位置に変換する。これが全てのアドレスについて行われる。したがって、あるユーザーが「私が[address]に最後にいたのはいつか?」を知りたいとき、解答は逆索引から迅速かつ効率的に作成することができる。逆索引がなければ、サーバーはデータベース9内の全ての保存された位置データを処理しなければならないだろう。都市、郵便番号、州および国についても同様な逆索引が作られる。
【0033】
それぞれの観測された位置についてステップ36によってアドレスが導かれる。同様に、ステップ36からそれぞれのアドレスについて逆索引内にエントリが作成される。しかしながら、ある観測にだけ対応するエントリは好適には一時間後に削除される。
【0034】
ステップ40はステップ36によって得られたそれぞれの街路アドレスを街路アドレスの近傍を示す街路図に変換する。これはマイクロソフト社のMapPointなどの製品を用いて達成される。全ての鍵となる場所(例えば、後述のごとくサーバーによって場所IDを割り当てられたもの)についての街路図は永久に保持される。鍵とならない場所の街路図はメモリ内にスペースを確保するために一時間後に好適には削除される。この情報は図12Aの表2Bの「街路図」フィールド内に保存される。それがデータベース内のかかる地図が保存されるところへのパスを構成して、コンピュータアプリケーションが対象の場所の街路図を効果的に発生するのを可能にする。
【0035】
かかる街路図は数多くの用途を有することができる。例えば、ユーザーは装置1を自分の犬に取り付けることができる。ユーザーが自分の犬がどこにいるかを知りたいと思えば、本発明は犬がどこで見つかるかを示す街路図を(後述のごとく)発生することができる。別の例において、装置1がユーザーに取り付けられているとき、ユーザーが他の人に電子的に送信することができる街路図を発生するために本発明を用いてどこであれ自分が現在いる場所への指示を誰にでも与えることができる。
【0036】
ステップ40はさらに、ステップ28によって保存された生位置データを衛星地図に変換する。これはKeyhole社からのEarthViewerなどの製品を用いて達成される。この情報は図12A内の表2Bの「衛星図」フィールド内に保存される。これはかかる地図が保存されるところへのパスを構成して、コンピュータアプリケーションが対象の場所の衛星地図を効率的に発生することを可能にする。例えば、ユーザーが興味のある区域がどのように見えるかの「俯瞰」観測を得たいと思うとき、衛星地図を発生するために本発明を使用することができるだろう。街路図はどこで左右に曲がるかについて二次元支援を提供することができる、しかし衛星地図は三次元であり、例えば、関心のある区域がどのように見えるか、その周囲の建物はどのように見えるか、また道路の広さはどのくらいか、についてはるかに詳細に見せることができる。
【0037】
ANIMATION要求230に応じて、本発明は「動画」街路図、地形図および/または衛星地図を発生することもできるが、これはビデオで、対象の動きを、それぞれ、街路、地形および/または衛星地図上に重ねることによって対象の動きを見せる。
【0038】
ステップ40はさらに、ステップ28によって保存された生位置データを地形図に変換する。これはMaptech社からのMapServerなどの製品を用いて達成される。この情報は図12Aの表2Bの「地形図」フィールド内に保存される。それはかかる地図が保存されたところへのパスを構成して、コンピュータアプリケーションが対象の場所の地形図を効果的に発生するのを可能にする。例えば、ユーザーが山で遭難したとき、本発明を用いて地形図を発生し、それを移動電話で救助者に向けることができるだろう。地形図は地勢の特徴を示して手掛かりを提供するが、これは緯度、経度と高度だけではできないことである。
【0039】
ステップ42はステップ28によって保存された生位置データをクラスター化された位置に変換する。全ての位置特定技術には、GPSをはじめとして、固有の不正確さが在るので、位置測定は対象の真の位置の周囲で変動することが多い。さらに、意味のある場所(街路アドレスなど)は明確な境界が示されないことが多い。これらの問題を解決するために、また重要区域を決定するために、近隣位置が一緒にまとめられ、それぞれ、単一の地理的場所として処理される。一緒にまとめるべき位置を識別する技術はクラスター化と呼ばれ、本発明はISODATAクラスター化アルゴリズムを用いてこれを達成する。このアルゴリズムはTherrien,C.W. “Decision, Estimation and Classification”, John Wiley & Sons, 1999に開示され、そこに含まれているこのアルゴリズムの説明は、参照として本書に含めた。結果はデータベース内の(以下に詳しく述べる)表であり、アプリケーションが対象の頻繁に訪れる場所を効率的に決定するのを可能にする。クラスター化によって得られたサンプルエントリは図12Bの表No.3に示されている。(表No.3は印書したページ上の紙面の制約のために図12Bの表3Aと3Bに分離されている。表3Bが「GUID」フィールドと「場所ID」フィールドの反復を含むように示されているのは、ただそれが表3Aのデータに連結されていることを示すためである。)場所IDはサーバーによって次の領域に割り当てられる:クラスター、街路アドレス、都市、郵便番号、州、国および(割当て半径とともに)クライアントによって特に指定された任意の位置。
【0040】
地球がほぼ球形であることを計算に入れるために、ISODATAには予備処理過程と後処理過程が要求される。緯度のそれぞれの一度は同じ距離であるが、経度はそうではない。経度の一度の地理的距離は極よりも赤道の方が大きい。例えば、北極においては、旋回するだけで経度の360゜を移動することができるが、赤道では、経度の360゜を踏破するには地球の円周の周りを旅行しなければならない。予備および後処理過程がなければ結果ははるかに不正確になるだろう、とくに対象の動きが大きな南北距離を踏破したときにはそうである。
【0041】
したがって、予備処理過程を適用して、緯度と経度を(経度が原因であるこの非線形性の影響を受けない)ユニバーサル横メルカトル座標系に「ゆがめ」、それをISODATAへの入力として使用する。後処理過程ではゆがみを戻す、すなわちユニバーサル横メルカトル位置を元の緯度と経度に変換する。緯度/経度とユニバーサル横メルカトルの間の変換は直接的である。この方法についての情報はhttp://www.uwgb.edu/dutchs/UsefulData/UTMFormulas.HTMで入手可能であり、それを印刷した参照はページの終わりにある。
【0042】
ISODATAは(多数のことがある)多くの位置について位置データを処理し、それらをクラスターに分割する。その結果は点の集合(そこから凸閉包が後述のごとく計算される)とセントロイドである。図11Aから明らかなように、クラスター化はそれぞれの新しいデータポイントについて実行される。しかしながら、これによって処理負荷が高くなるときは、クラスター化アルゴリズムは、毎時のように、選択した時間間隔でのみ実施される。
【0043】
今説明したように、クラスター化過程42はクラスターにまとめられた位置を決定する。凸閉包アルゴリズム44はつぎにそのクラスターの場所を定義する点の最小数を決定する。例えば、ユーザーの家の中、および周囲に散在した50000の観測があるとき、クラスター化は(ISODATAアルゴリズムを介して)これら全ての位置を一つのクラスターにまとめる。凸閉包アルゴリズムはそのクラスターの境界の位置を識別する。もっと具体的には、ステップ44は、全ての位置が境界内またはその上に来るように、一つのクラスターに区分された位置についてステップ28によって保存された生位置データから境界を決定する。もちろん、それぞれの異なるクラスターについて異なる境界がある可能性がある。凸閉包アルゴリズムの直感的説明は次のように提供することができる。多数の釘を無作為に板に打ち込み、つぎにゴムバンドを全ての釘の周囲に掛けると、何本かの釘はゴムバンドの内側になり、他のものはゴムバンドに接触するだろう。ゴムバンドに接触している釘が凸閉包を構成する。この項の数学的定義は「凸閉包」が対象の一集合を含む最小凸サブセットであるというものである。図11Bは凸閉包を黒い円で示し、白い円は凸閉包内の位置を示している。
【0044】
凸閉包は、いったん凸閉包がある対象について保存されたら、新しいデータポイントが到着するたびに、反復して拡大または縮小することができるという変更を加えて、参照として本書に含めたOrwant et al., “Mastering Algorithms with Perl”, O’Reilly & Associates, 1999, p.454に記載のPerlのサブルーチンで、好適には発生される。図11Aから明らかなように、凸閉包は全ての新しいデータポイントについて実行される。しかしながら、これによって処理負荷が高くなるときは、凸閉包アルゴリズムは、毎時のように、選択した時間間隔でのみ実施される。
【0045】
凸閉包を定義するデータポイントは図12Bに示した表No.3A内の「ポイント」フィールド内に秩序だった対(すなわち、緯度と経度)として保存される。例えば、場所IDフィールド内に16進数CB018によって識別されたクラスターが「ゴムバンド」の形状を定義するのに15本の「釘」を必要とする凸閉包を有するとき、「#ポイント」フィールドはその中に数15を有するであろう、また「ポイント」フィールドは、それぞれ、これらの「釘」に対応する15の秩序だった対を有するであろう。特殊な例として、表3AはそのGUIDとして87F3を有する対象のための場所IDとして16進数CB018を挙げている。このクラスターのセントロイドは緯度42.44680396、経度−71.22544954、高度14.10348にあるものとして決定される。凸閉包アルゴリズムはこのクラスターの形状が円であると決定した(これは、一つのだけの点、すなわちセントロイドと、それにくわえて5.1066の平均半径が形状の定義に要求されることを示す「#ポイント」フィールド内の「1」のエントリから明らかである)。反対に、場所ID CB9A4はその凸閉包の形状を特定するために3つの位置(または点)を要求し、これらについての秩序だった対は「ポイント」フィールド内に見つかる。
【0046】
場所ID CB018についてのセントロイドの位置、したがって、クラスターの場所はステップ36の結果から得られた15 Dalton Rd., Boston, MA. 02149 USAの住所に対応する。
【0047】
凸閉包が入手できると、ある位置がその中にあるかの判定は電子計算機的にきわめて容易である。凸閉包はこの目的のために特に設計されている。もちろん、対象が訪問した実際の場所に対応しないような仮想線によって囲まれた/定義された領域としてクラスターを表示することも可能である。
【0048】
サーバーが取り扱うことができるもう一つの要求はLOGOUT要求46{logout(SESSION)}である。これはセッションを終結する要求である。図4に示したごとく、認証ステップ48に成功した後、保存されたSESSION IDは、50によって、データベース9から削除され、52によって、適切な成功メッセージが装置に返される。サーバーがセッションのLOGOUT要求を受信したとき、サーバーはクライアントのSESSION IDを無効にして、クライアントが再度ログインするまで他の呼び出しを禁止する。
【0049】
サーバー3はLOCATION要求54{location(SESSION, OBJECT, LOCATION_TYPE, [TIME], [INTERPOLATION])}を取り扱うこともできる。この演算は「場所」方法を介して対象の場所を決定するためにアプリケーション要求を取り扱う。クライアントは認証のためにSESSION IDを提供し、場所を同定する対象を指定し、所望の出力形式を特定するために場所タイプを指定する。追加として、クライアントは、場所観測の所望時間と、できる限り正確に時間に合わせる試みにおいて対象の場所をシステムが推定するべきかを指示するブール補間ビットとを指定することもできる。
【0050】
図5A―5Cに示したごとく、認証56に成功すると、ステップ58はユーザーが指定された時間における場所を要求しているかを点検する。その場合、つぎにステップ60は位置データが正確な時間を有するかを検査する。該当する場合、つぎにステップ62が実行される(下記参照)。該当しない場合、ステップ64は補間が許可されたかを検査する。該当する場合、つぎにステップ66がデータベース内に保存された二つの時間の間で補間された位置を計算する。補間がOFFの場合、つぎにステップ68が指定された時間に一番近いいずれかの保存された時間に対するいずれかの位置データを選択する。
【0051】
ステップ58がどんな時間も指定されていないことを明らかにしたとき、つぎにステップ70は最後の既知の位置についての位置データを検索する。72によって、補間がONのとき、つぎにステップ74は位置を現在時間に外挿する。72によって、補間がOFFのときは、最後の既知の位置データがそのまま単に使用される。
【0052】
このように、ユーザーが場所を要求したとき、ステップ62への入力はその要求に応えるために必要な位置である。ステップ62はユーザーがこの情報を生位置データの形で所望するか否かを判定する。該当する場合、そのデータがステップ76によって提供され、フローはつぎに、図2に示すごとく、要求判定の最初の段階に回帰する。該当しないときは、ステップ78で場所タイプが街路アドレスであるか否かを判定する。該当する場合は、ステップ80で、その街路アドレスがステップ38で獲得した街路アドレス逆索引内にあるかを判定する。該当する場合は、ステップ82でそのアドレスをユーザーに提供する。該当しないときは、84で、リバース・ジオコーディング・プロセスを実行し、86で、情報を将来利用するために索引内に保存し、82で、ユーザーに返す。
【0053】
郵便番号のためのステップ88、90、92、94と96は、それぞれ、上述のステップ78、80、82、84と86に対応する。同様に、対応は都市については98、100、102、104、106、州については108、110、112、114、116、また国については118、120、122、124と126に適用される。
【0054】
128で、指定された場所タイプがクラスターであるときは、ステップ130で、指定された位置が既存のクラスター内であるか否かが判定される。該当する場合、132で、凸閉包が返される。該当しない場合は、134でクラスター化が実行され、136で、凸閉包アルゴリズムが実行され、132で結果がクライアントに返される。
【0055】
サーバーによって扱われるもう一つの要求はDISTANCE要求140{distance(SESSION,OBJECT,OBJECT)}である。サーバーは二つの対象の間の距離を決定するためにアプリケーション要求を取り扱う。クライアントはSESSION IDと二つの対象を提供する。結果は、適切なステップを使用してそれぞれの対象の10進数緯度と経度を決定し、ついでこれらの場所のセントロイドの間の球面距離(すなわち、ほぼ地球の表面にそった距離)を計算して求められる。
【0056】
図6に示したごとく、ステップ142と144は指定された各対象についてのそれぞれのGUIDをデータベースから検索する。ステップ146は第一の対象の最後の既知の位置を決定し、ステップ148は第二の対象について同様に決定する。ついでステップ150はそれらの間の球面距離を計算する。計算結果は、152で、クライアントに伝達される。
【0057】
サーバーによって扱われるもう一つの要求はHISTORY要求154{history(SESSION, OBJECT, LOCATION_TYPE, [TIME_STEP], [INTERPOLATION], [START_TIME], [END_TIME])}である。サーバーはHISTORY要求を取り扱って対象の移動の履歴を求める。クライアントはSESSION ID、対象、場所タイプと、随意に、時間ステップ、補間ビット、開始時間、および終了時間を提供する。
【0058】
時間ステップが提供されたとき、サーバーは固定間隔で観測を、例えば、その時刻の場所を返す。補間ビットが設定されているとき、所与の時間における位置を求めるために推定値が用いられる。そうでなければ、最も近い現実の観測が用いられる。結果は一連のタイムスタンプ付きの観測として返される。観測は、提供されていれば開始時間に、いなければ第一の観測で始まる。観測は、提供されていれば終了時間に、いなければ最後の観測で終わる。
【0059】
図7Aから7Cに示したごとく、認証が成功した後、ステップ156は対象のGUIDを決定する。つぎにステップ160(図7B参照)はクライアント要求が開始時間を指定しているかを検査する。該当しない場合は、ステップ162はその対象について記録された第一の観測を使用する。いずれにしても、つぎにステップ164は終了時間が提供されたか否かを検査する。そうでない場合は、ステップ166はその対象について記録された最後の観測を使用する。したがって、ステップ160−166の終わりに、このHISTORY演算の処理に要した開始および終了時間が分かる。
【0060】
ついで、ステップ170(図7C参照)はクライアント要求が時間ステップを指定しているかを検査する。該当する場合、ステップ172で、補間がONであれば(すなわち補間ビットが提供された)、ステップ174は時間ステップを括弧に入れる時間の間を補間する。例えば、もし時間ステップが5分であれば。しかしながら、5分間隔で位置が検出されないで、4分32秒に一つの位置、7分15秒にもう一つの位置あれば、ステップ174はかかる二つの位置についてのデータを用いて5分間隔の補間位置データを提供することになる。他方で、補間がOFFのとき、ステップ176は4分32秒に得られた位置データを選択することになる。なぜなら、それが5分間隔の時間に一番近いからである。
【0061】
図7Aに示した関数158は図7Bに示した全てのステップを表している。同様に、図7Cに示した全てのステップは図7Bの関数168によって表される。関数158と168の結論で、特定の位置についてのデータポイントはステップ174または176から知られ、HISTORY演算に従ってその後の処理に利用できる。
【0062】
図7Aに示したごとく、その既知の部分が図5Aのステップ62に入力される。したがって、クライアント要求が街路アドレスとして提供されるべき移動についてのものであるとき、そのアドレスはステップ78によって決定され、上述の既知の位置(すなわちステップ174または176から)に対応する街路アドレスがステップ82によってクライアントに返されることになる。
【0063】
HISTORY演算のためのこの一連のステップは全ての位置が処理されるまで(すなわち、終了時間まで)169で(図7A参照)、ループに従う。
【0064】
サーバー3によって取り扱われるもう一つの要求はMAP要求178{map(SESSION, OBJECT, MAP_TYPE, PLOT_TYPE, [START_TIME], [END_TIME], [INTERPOLATION])}である。サーバーは対象の場所の地図を発生してこの要求を取り扱う。クライアントはSESSION ID、対象、地図タイプ、プロットタイプと、随意に、開始時間、終了時間、および補間ビットを提供する。サーバーは、表2Bから入手可能なときはデータベースから地図を検索し、そうでないときは地図を作製する。
【0065】
地図タイプは「街路」、「地形」、または「衛星」タイプのいずれか一つである。プロットタイプは「点」、「軌跡」、または「ベクトル」のいずれか一つであり、発生した地図の中で対象のパスがどのように線描されるかを設定する。開始時間が提供されているとき、その時間からはじめて対象の場所が使用され、そうでなければ、システムによって記録された第一の観測になる。終了時間が提供されているとき、その時間に終わる対象の場所が使用され、そうでなければ、システムによって記録された最後の観測になる。補間ビットが設定されているとき、システムは従来の補間アルゴリズムを用いて現実の観測の間のデータを埋める。つぎに、地図イメージがクライアントに返される。
【0066】
図8Aと8Bに示すごとく、180での、GUIDへの変換が続く通常の認証ステップがうまく完了したとき、上述の関数158のステップは、上述のごとく、開始時間と終了時間を決定する。ついで、上述の関数168のステップが、先に説明したように、処理される観測位置を決定する。
【0067】
この段階で、作製される地図は「境界ボックス」を有する必要がある、なぜなら(上述のMapPointなどの)地図サービスは何を地図にするかを知る必要があるからである。例えば、43緯度、−71経度で地図を要求するだけでは十分ではない、なぜなら地図サービスは縮尺を知らないからである:それは平方ヤードであるべきか?平方マイルであるべきか?したがって、地図サービスが用いられるとき、本発明の場合がそれだが、地図の長方形の周辺を定義する「境界ボックス」が提供されなければならない。
【0068】
本発明は閉包内の点の全てをとおってループを作り、最小緯度、最大緯度、最小経度、および最大経度を計算して場所の凸閉包から境界ボックスを計算する。境界ボックスはこのときその左上角が最小緯度と最小経度の点にあり、その右下角が最大緯度と最大経度の点にある長方形になる。図11Bにおいて、角の括弧は凸閉包に対する境界ボックスを示している。
【0069】
図8Aのステップ182は上述のアルゴリズムに従って境界ボックスを計算する。
【0070】
境界ボックスが計算されると、MAP演算178は、詳細を図8Bに示した、図8Aに関数184として表示されているものを実行する。この図に戻る前に述べておかなければならないが、サーバーはマッピングサービスのために(街路図に一つ、地形図に一つ、衛星地図に一つの)三つのURI(Uniform Resource Identifiers)待ち行列を維持する。それぞれの待ち行列はシステムの寿命期間(すなわち、経験的に、マッピングサービスを使用する直前の試みの成功または失敗から)にわたって観測された信頼性の順に配置される。これらの待ち行列は一つ以上のマッピングサービスが利用できない事象の際に維持される。したがって、一つのマッピングサービスが応答しないとき、サーバーは次のマッピングサービスを選択するために待ち行列にアクセスする。
【0071】
ステップ186はクライアント要求に指定された地図タイプが地形図であるか否かを判定する。該当する場合は、ステップ188は地形待ち行列から第一のURIの抽出に着手し、190で、地図が検索される。192で、検索に成功すると、情報は要求されたプロットタイプに重ねられる。どのプロットタイプを使用するかはステップ216、220と224で決定され、ステップ218、222と226の中から適切なものが地図オバーレイを実施する。192で、地図検索に成功しなかったとき、ステップ194は待ち行列の中の次のURIに移行して、ステップ190から192までを再度ループする。
【0072】
ステップ196、198、200、202と204は衛星地図のために実行され、それぞれ上述のステップ186、188、190、192と194に対応している。
【0073】
同様に、街路図のためのステップ206、208、210、212と214はそれぞれ上述のステップ186、188、190、192と194に対応している。
【0074】
URI抽出ステップ188、198と208はURIによって指名されたサービスからマップを抽出するユティリティを用いる。かかるユティリティの一つがhttp://search.cpan.orgから入手できるPerl WWW::Mechanizeモジュールである。システムは該ユティリティを用いてステップ182で計算した境界ボックスのある地図を検索し、185で地図はクライアントに返される。
【0075】
もう一つの可能なクライアント要求はANIMATION要求230{animation(SESSION, OBJECT, MAP_TYPE, PLOT_TYPE, DURATION, FRAME_RATE, [STREAM], [START_TIME], [END_TIME])}である。この方法は対象の動きの動画を発生するためにアプリケーション要求を取り扱う。クライアントはSESSION ID、対象、地図タイプ、プロットタイプ、持続、フレームレートと、随意に、ストリームビット、開始時間、終了時間を提供する。最初の四つのパラメータについては前のステップで論じた。持続は動画が継続するべき時間の長さである。フレームレートは毎秒あたりのフレーム数である。ストリームビットはクライアントが動画全体をダウンロードしたいのか、あるいは発生の都度フレーム単位で受信したいのかを示すブーリアンである。開始時間は対象の最初の観測の時間である。終了時間は対象の最後の観測の時間である。サーバーは双線形補間を介して代表的観測の一集合を決定し、それぞれのかかる観測について地図を発生し、マップの配列を組み合わせて動画にして、ストリームビットが設定されているときは結果をクライアントにストリーミングし、その他の場合は動画全体を送信する。
【0076】
図9に示したごとく、認証とGUIDへの変換はステップ232で最初に行われる。ついで、上述の関数158を実行して開始および終了時間を決定する。ステップ234はフレームレートがクライアント要求に含まれているかを判定する。含まれていないとき、このパラメータは1フレーム/秒に設定される。(フレームレートが指定されているときは)234からの、(指定されていないときは)236からのフレームレートがステップ238に入力され、円滑な動画のために観測が要求される時間を決定する。これは指定フレームレートパラメータの値(またはフレームレートが指定されていないときは1)をDURATIONパラメータの値に分割して行われる(あるいは、DURATIONが省略されているときは、終了時間パラメータの値から開始時間パラメータの値を引いて、終了時間のデフォルトは最後に記録された観測で、開始時間のデフォルトは最初に記録された観測である)。もちろん、DURATIONは動画シーケンスの所望の時間長さである。このステップの結果は対象の位置が動画に現れるべき均等に配分された時間の配列である。
【0077】
ステップ240は必要な補間を実行し、ステップ242は位置のそれぞれの対について境界ボックスを計算する。ついで、演繹された情報を上述の関数184(図8B参照)に用いて要求プロットタイプを使用する要求地図タイプで地図を作製する。
【0078】
ステップ244はANIMATION演算の処理が位置の最後の対に到達したかを判定する。該当しない場合、この演算の処理は位置の最後の対に到達するまで関数184を通って反復ループする。なお、この段階で、関数184を通るループによって導き出された全ての地図は個別にサーバーに局所的に保存される。ステップ246はこれら全ての地図をGIF画像フォーマットに変換するユティリティを使用する。かかるユティリティの一つがpbmplusであり、http://www.acme.com/software/pbmplus/から入手できる。
【0079】
つぎに、ステップ248は、得られた各GIF画像を組み合わせて、フレームレートパラメータで指定されたフレームレートで動画gifにするユティリティを使用する。かかるユティリティの一つがMultiGIFで、http://www.kfs.org/〜abw/code/multigif.htmlから入手できる。結果は地図動画で、つづいてクライアントに返送されるものである。
【0080】
動画は、ステップ250、252と254に基づいて、ファイルまたはストリームとしてクライアントに返される。ストリーミングは、Quicktime(登録商標)(Apple, Inc.; http://developer.apple.com/quicktime)またはRealVideo(登録商標)(RealNetworks, Inc.; http://www.real.com)によって提供されているような、任意の従来のインターネット・ビデオ・ストリーミング技術を用いて達成できる。
【0081】
図2に示された最後の要求はPROXIMITY256要求{proximity(SESSION, OBJECT, OBJECT, SORT_METHOD, [START_TIME], [END_TIME], [TIME_STEP], [INTERPOLATION])}である。この方法は二つの対象の間の距離のリストを作成するためにアプリケーション要求を取り扱う。クライアントはSESSION ID、二つの対象、前方または後方のいずれかへの距離または時間を指定するデータの順序を提供する。クライアントは、前のステップで解釈されたような、随意の開始時間、終了時間、時間ステップ、または、補間ビットを提供してもよい。
【0082】
図10に示したごとく、二つの対象はステップ270と272によってそれらのそれぞれのGUIDに変換される。関数158は開始時間と終了時間を決定する。上述の関数168と同じ機能を有する関数168aは、第一の対象の位置を提供する。同様に、関数168bは他方の対象の位置を提供する。この演算のためのそれぞれのステップは、第一の対象について一つの位置を、第二の対象について一つの位置を有することになる。ステップ274は二つの対象のこれらの位置の間の球面距離を計算する。つぎにこれがそれぞれの時間ステップについて行われる。二つの対象が静止しているとき、それらの間の距離は明らかに同じままである。一方の対象が移動し、他方が静止しているとき、両対象の間の距離は動いている対象の運動にだけ依存する。両方の対象が移動しているとき、距離はそれらの組み合わせた運動に応じて変動することになる。
【0083】
PROXIMITY演算の結果を表すのにいくつかの分類方法が利用可能である。両対象の間の距離は、時系列で、あるいは逆時系列で時間関数として表すことができる。また、結果は両対象の間の距離の大きさについて表し、距離を昇順または降順で表すことができる。クライアント要求がこれらの分類方法のどれにも対応しないとき、ステップ290でエラーメッセージが返される。
【0084】
ステップ276−279はどの分類方法がクライアント要求に含まれたかを判定する。ステップ280−283はそれぞれ要求された分類方法を実行し、ステップ284−287は要求された情報をクライアントに返す。
【0085】
以上のように本発明の推奨実施態様を詳細に述べたが、当業者には自明のごとくさまざまな変更を加えることができる。例えば、本発明はハードウェアもしくはソフトウェアに、または両者の組み合わせに実装しても良い。また、ISODATAアルゴリズムは場所決定のためのいくつもの技術のうちの一つである。ファジー・クラスター化、階層クラスター化、およびコホーネンの自己組織地図などの、他の技術も可能である。HSCSDおよび802.11プロトコル・ファミリーのような、GPRSの使用への代案もある。さらに、MultiGIFを使う代わりに、GIFフォーマットの地図は、http://www.ulead.comから入手可能なUleadなどのソフトウェア製品をスクリプトしてGIF89a動画に変換することができる。また、Cell ID、BluetoothまたはRFIDなどの、位置決め技術としてのGPSの使用への代案もある。これらおよびその他の変更をもって請求の範囲に定義された本発明の範囲を逸脱できないものとする。
【図面の簡単な説明】
【0086】
【図1】本発明を実施するために配置された構成部品の概略的ブロック図
【図2】本発明にしたがってサーバーが実行する演算を図示するフローチャート
【図3】図2に示したLOGIN演算の詳細を示す図
【図4】図2に示したLOGOUT演算の詳細を示す図
【図5A】図2に示したLOCATION演算の詳細を示す図
【図5B】図2に示したLOCATION演算の詳細を示す図
【図5C】図2に示したLOCATION演算の詳細を示す図
【図6】図2に示したDISTANCE演算の詳細を示す図
【図7A】図2に示したHISTORY演算の詳細を示す図
【図7B】図2に示したHISTORY演算の詳細を示す図
【図7C】図2に示したHISTORY演算の詳細を示す図
【図8A】図2に示したMAP演算の詳細を示す図
【図8B】図2に示したMAP演算の詳細を示す図
【図9】図2に示したANIMATION演算の詳細を示す図
【図10】図2に示したPROXIMITY演算の詳細を示す図
【図11A】図2に示したOBSERVATION演算の詳細を示す図
【図11B】凸閉包と境界ボックスを示す図
【図12A】地表上の移動体の移動に関連する位置情報のサンプリエントリの表1〜2Bを示す図
【図12B】地表上の移動体の移動に関連する位置情報のサンプリエントリの表3A〜3Bを示す図
【符号の説明】
【0087】
1 携帯装置
2 携帯装置
3 サーバー
6 通信網
7 GPS衛星
9 データベース
【特許請求の範囲】
【請求項1】
地表に沿って複数個の位置のそれぞれについて移動体の移動についての情報を提供する方法において、
複数個の位置のそれぞれに関連する位置データが取得される過程と、
複数個の位置についての位置データが移動体の移動についての情報を提供するために要求に応じてそこから選択的に検索するための永続的データベースに保存される過程、
とから成る、ことを特徴とする方法。
【請求項2】
複数個の位置の位置データが自動的に取得され、および/または定期的時間間隔でなされた位置測定に関係づけられることを特徴とする、請求項1に記載の方法。
【請求項3】
保存ステップが位置データを前記複数個の位置の少なくとも一つに関連づけられた場所情報に変換する過程を含むことを特徴とする、請求項1または2に記載の方法。
【請求項4】
前記場所情報が、街路アドレス、郵便番号、都市、州および国のうちの少なくとも一つであることを特徴とする、請求項3に記載の方法。
【請求項5】
複数個の位置についての位置データが、緯度と経度または緯度、経度と高度を含むことを特徴とする、請求項1〜4のいずれか一つに記載の方法。
【請求項6】
要求が、時間に、あるいは前記複数個の位置の少なくとも一つに基づいていることを特徴とする、請求項1〜5のいずれか一つに記載の方法。
【請求項7】
要求が、位置データから演繹され、前記複数個の位置の少なくとも一つに関連づけられた場所情報に基づくことを特徴とする、請求項3または4に記載の方法。
【請求項8】
前記場所情報が、前記複数個の位置の少なくとも一つの前記位置データを、前記要求に応答して、移動体の移動についての情報を提供するために街路アドレス、郵便番号、都市、州および国のうちの少なくとも一つに関連づける索引を含むことを特徴とする、請求項7に記載の方法。
【請求項9】
場所情報が、前記街路アドレス、郵便番号、都市、州および国のうちの少なくとも一つを、前記要求に応答して、移動体の移動についての情報を提供するために前記複数個の位置に関連づける逆索引を含むことを特徴とする、請求項7または8に記載の方法。
【請求項10】
前記場所情報が、前記複数個の位置の少なくとも一つを、前記要求に応答して、移動体の移動についての情報を提供するために街路アドレス、郵便番号、都市、州および国のうちの少なくとも一つに関連づける街路図、地形図および衛星地図のうちの少なくとも一つであることを特徴とする、請求項7に記載の方法。
【請求項11】
請求項1〜10のいずれか一つに記載の方法において、複数個の位置についての位置データを要求に応じて情報を提供するためにアクセス可能な関連位置の複数個のクラスターに分割する過程をさらに含む、ことを特徴とする方法。
【請求項12】
位置データを分割する過程が、関連位置の複数個のクラスターを要求に応じて移動体の移動についての情報を提供するためにそこから選択的に検索するための永続的データベース内に保存する過程を含むことを特徴とする、請求項11に記載の方法。
【請求項13】
前記分割過程が、地球はほぼ球形であることを計算に入れるために位置データをゆがめる予備処理過程を含むことを特徴とする、請求項11に記載の方法。
【請求項14】
前記分割過程が、前記予備処理過程を補正するために分割過程の出力のゆがみを戻す後処理過程を含むことを特徴とする、請求項13に記載の方法。
【請求項15】
前記分割過程が、新しい位置データを取得した都度分割を実施する過程を含むことを特徴とする、請求項14に記載の方法。
【請求項16】
請求項11に記載の方法において、前記複数個のクラスターの一つに分類された前記複数個の位置の中から全ての位置の境界を示す周縁を決定する過程をさらに含む、ことを特徴とする方法。
【請求項17】
地表に沿って複数個の位置のそれぞれについて移動体の移動についての情報を提供する装置において、
複数個の位置のそれぞれに関連する位置データを取得する手段と、
複数個の位置についての位置データを移動体の移動についての情報を提供するために要求に応じてそこから選択的に検索するための永続的データベースに保存する手段、
とから成る、ことを特徴とする装置。
【請求項18】
特定の時間および/または位置に関する要求に応じて、前記永続的データベース内に保存された複数個の位置についての位置データにアクセスして特定の時間および/または位置に対応する移動体の移動についての情報を提供するための手段を含むことを特徴とする、請求項17に記載の装置。
【請求項19】
複数個の位置についての位置データを関連位置の複数個のクラスターに分割するための手段を含むことを特徴とする、請求項17または18に記載の装置。
【請求項20】
前記複数個の位置のそれぞれについての個別マップを位置データに基づいて演繹する手段と、
前記複数個の個別マップを組み合わせて移動体の移動を動画にする手段、
とを含むことを特徴とする、請求項17または18に記載の装置。
【請求項1】
地表に沿って複数個の位置のそれぞれについて移動体の移動についての情報を提供する方法において、
複数個の位置のそれぞれに関連する位置データが取得される過程と、
複数個の位置についての位置データが移動体の移動についての情報を提供するために要求に応じてそこから選択的に検索するための永続的データベースに保存される過程、
とから成る、ことを特徴とする方法。
【請求項2】
複数個の位置の位置データが自動的に取得され、および/または定期的時間間隔でなされた位置測定に関係づけられることを特徴とする、請求項1に記載の方法。
【請求項3】
保存ステップが位置データを前記複数個の位置の少なくとも一つに関連づけられた場所情報に変換する過程を含むことを特徴とする、請求項1または2に記載の方法。
【請求項4】
前記場所情報が、街路アドレス、郵便番号、都市、州および国のうちの少なくとも一つであることを特徴とする、請求項3に記載の方法。
【請求項5】
複数個の位置についての位置データが、緯度と経度または緯度、経度と高度を含むことを特徴とする、請求項1〜4のいずれか一つに記載の方法。
【請求項6】
要求が、時間に、あるいは前記複数個の位置の少なくとも一つに基づいていることを特徴とする、請求項1〜5のいずれか一つに記載の方法。
【請求項7】
要求が、位置データから演繹され、前記複数個の位置の少なくとも一つに関連づけられた場所情報に基づくことを特徴とする、請求項3または4に記載の方法。
【請求項8】
前記場所情報が、前記複数個の位置の少なくとも一つの前記位置データを、前記要求に応答して、移動体の移動についての情報を提供するために街路アドレス、郵便番号、都市、州および国のうちの少なくとも一つに関連づける索引を含むことを特徴とする、請求項7に記載の方法。
【請求項9】
場所情報が、前記街路アドレス、郵便番号、都市、州および国のうちの少なくとも一つを、前記要求に応答して、移動体の移動についての情報を提供するために前記複数個の位置に関連づける逆索引を含むことを特徴とする、請求項7または8に記載の方法。
【請求項10】
前記場所情報が、前記複数個の位置の少なくとも一つを、前記要求に応答して、移動体の移動についての情報を提供するために街路アドレス、郵便番号、都市、州および国のうちの少なくとも一つに関連づける街路図、地形図および衛星地図のうちの少なくとも一つであることを特徴とする、請求項7に記載の方法。
【請求項11】
請求項1〜10のいずれか一つに記載の方法において、複数個の位置についての位置データを要求に応じて情報を提供するためにアクセス可能な関連位置の複数個のクラスターに分割する過程をさらに含む、ことを特徴とする方法。
【請求項12】
位置データを分割する過程が、関連位置の複数個のクラスターを要求に応じて移動体の移動についての情報を提供するためにそこから選択的に検索するための永続的データベース内に保存する過程を含むことを特徴とする、請求項11に記載の方法。
【請求項13】
前記分割過程が、地球はほぼ球形であることを計算に入れるために位置データをゆがめる予備処理過程を含むことを特徴とする、請求項11に記載の方法。
【請求項14】
前記分割過程が、前記予備処理過程を補正するために分割過程の出力のゆがみを戻す後処理過程を含むことを特徴とする、請求項13に記載の方法。
【請求項15】
前記分割過程が、新しい位置データを取得した都度分割を実施する過程を含むことを特徴とする、請求項14に記載の方法。
【請求項16】
請求項11に記載の方法において、前記複数個のクラスターの一つに分類された前記複数個の位置の中から全ての位置の境界を示す周縁を決定する過程をさらに含む、ことを特徴とする方法。
【請求項17】
地表に沿って複数個の位置のそれぞれについて移動体の移動についての情報を提供する装置において、
複数個の位置のそれぞれに関連する位置データを取得する手段と、
複数個の位置についての位置データを移動体の移動についての情報を提供するために要求に応じてそこから選択的に検索するための永続的データベースに保存する手段、
とから成る、ことを特徴とする装置。
【請求項18】
特定の時間および/または位置に関する要求に応じて、前記永続的データベース内に保存された複数個の位置についての位置データにアクセスして特定の時間および/または位置に対応する移動体の移動についての情報を提供するための手段を含むことを特徴とする、請求項17に記載の装置。
【請求項19】
複数個の位置についての位置データを関連位置の複数個のクラスターに分割するための手段を含むことを特徴とする、請求項17または18に記載の装置。
【請求項20】
前記複数個の位置のそれぞれについての個別マップを位置データに基づいて演繹する手段と、
前記複数個の個別マップを組み合わせて移動体の移動を動画にする手段、
とを含むことを特徴とする、請求項17または18に記載の装置。
【図1】
【図2】
【図3】
【図4】
【図5A】
【図5B】
【図5C】
【図6】
【図7A】
【図7B】
【図7C】
【図8A】
【図8B】
【図9】
【図10】
【図11A】
【図11B】
【図12A】
【図12B】
【図2】
【図3】
【図4】
【図5A】
【図5B】
【図5C】
【図6】
【図7A】
【図7B】
【図7C】
【図8A】
【図8B】
【図9】
【図10】
【図11A】
【図11B】
【図12A】
【図12B】
【公表番号】特表2007−517203(P2007−517203A)
【公表日】平成19年6月28日(2007.6.28)
【国際特許分類】
【出願番号】特願2006−546029(P2006−546029)
【出願日】平成16年12月20日(2004.12.20)
【国際出願番号】PCT/EP2004/014523
【国際公開番号】WO2005/064358
【国際公開日】平成17年7月14日(2005.7.14)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.Bluetooth
【出願人】(591034154)フランス テレコム (290)
【Fターム(参考)】
【公表日】平成19年6月28日(2007.6.28)
【国際特許分類】
【出願日】平成16年12月20日(2004.12.20)
【国際出願番号】PCT/EP2004/014523
【国際公開番号】WO2005/064358
【国際公開日】平成17年7月14日(2005.7.14)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.Bluetooth
【出願人】(591034154)フランス テレコム (290)
【Fターム(参考)】
[ Back to top ]