(58)【調査した分野】(Int.Cl.,DB名)
前記地理的エリアに対応する追加地図データに関する前記要求を受信することは、(i)前記地理的エリアの新規ラスタ地図画像が前記クライアント装置において描画される時の新規ズームレベル、または(ii)前記地理的エリアの前記新規ラスタ地図画像が前記クライアント装置において描画されるところの新規地図形式、のうちの少なくとも1つの表示を受信することを含み、なお前記新規地図形式は地形地図、交通地図、輸送地図、衛星地図、または自転車小道地図の1つである、請求項2に記載の方法。
前記地図データの前記部分の前記表示を提供することは、前記複数の地図要素の前記2つ以上の全部を包囲するエリアの境界を指定することを含み、前記指定された境界は、前記地図特徴が描画される1つ以上の地図タイルの境界とは一致しない、請求項1に記載の方法。
【発明を実施するための形態】
【0009】
概して、地図サーバはラスタ地図画像を描画するためにクライアント装置に対して非ラスタ形式で地図データを提供し、建物、公園、野原、水域、道路区分、自転車の小道、および歩道等の様々な地図要素を描写し、また共通行政単位に対応する、あるいは論理的に関連するいくつかの個別の地図要素を有する少なくとも1つの集合地図特徴の記述をも提供する。非ラスタ形式は、例えば、ベクトル図形形式であり得る。地図サーバは、地図データのどの部分が集合地図特徴に対応するかの表示を提供し、クライアント装置のユーザが集合地図特徴と関連する多重地図要素を効率的に選択および操ることを可能とする。このようにして、ユーザは集合地図特徴を参照して、集合地図特徴を構成する様々な地図要素の視覚的特性を自動的に強調、除去、追加、および更新可能である。地図サーバは、地図サーバおよびクライアント装置がその後の通信において集合地図特徴を参照するために利用し得る一意的地図特徴識別子も提供し得る。より具体的には、地図特徴識別子を使用して、クライアント装置は集合地図特徴に関連する追加情報を要求し得、これは新しいズームレベルにおいて、または新しい形式の地図が選択されたときに視認可能となる追加地図要素を描画するための地図データ等である。さらに、地図サーバは視覚的形式データ、すなわち線の太さ、線の色、塗られる色等の地図要素の視覚的属性に関連する情報をクライアント装置に提供するときに、地図特徴識別子を使用し得る。
【0010】
集合地図特徴は、大学等の学術機関、ショッピングモール等の商業エンティティ、企業、工場、プラント等のビジネスエンティティ、総合病院、住宅小区域、または地理的領域内の関連物理的エンティティを含む他のあらゆるものに対応し得る。いくつかのケースでは、集合地図特徴は、もしも例えば、物理的エンティティが異なる地図タイル(以下により詳細に記述される)において適用される多重地図要素によって表現される場合には、同一物理的エンティティのいくつかの部分に対応し得る。概して、地図特徴は、多重地図要素を有する集合、またはただ1つの地図要素を有する非集合であり得る。例えば、地図サーバはクライアント装置において個々に解釈および描画可能、拡大レベルまたは地図形式の更新時に他の地図要素とは独立して追加または除去、個々のラベルの割り当て等が可能な特定地図特徴として、建物のベクトルベースの記述を提供し得る。他方では、集合地図特徴は、同一形式(例えば、いくつかの建物の集団)または異なる形式(例えば、建物、公園、および歩道)のいくつかの地図要素を含み得る。さらに、集合地図特徴は、いくつかの筋書きにおいて、「入れ子」構造を有し、そして多重地図要素を有する1つまたはいくつかの地図特徴を含む。例えば、いくつかの実施形態において、各地図要素はそれぞれの地図特徴を定義し、地図特徴の特定群はより大きな集合地図特徴に集合され、そしてより大きな地図特徴のいくつかは、さらにより大きな集合地図特徴に集合される。さらにまた、集合地図特徴は別の地図タイルで、または特定サイズの地図画像の部分で描画される地図要素を含み得る。
【0011】
分かりよくするために、1つだけ地図要素を含む地図特徴が本明細書中では地図要素として参照される。また、以下の論議は多重地図要素を有する集合地図特徴に主として関するため、そのような地図特徴は、ときどき単に地図特徴として以下に参照され得る。
【0012】
図1を参照すると、地図および地図特徴データをクライアント装置に提供すること、ならびに、地図特徴を効率的に操るためにクライアント装置において提供されたデータを使用すること、の技法をシステム10において実装し得る。ある実施形態において、システム10は地図サーバ12、ネットワーク16を介して地図サーバ12と通信可能に連結されたクライアント装置14、および地図サーバ12と通信可能に連結された地図データベース18を含む。ネットワーク16は、インターネット等の広域ネットワーク(WAN)、局域ネットワーク(LAN)、または任意の他の適切なタイプのネットワークであり得る。地図および特徴データをクライアント装置15に提供するため、地図サーバ12は電子メッセージを生成し、そしてネットワーク16を介してそれらのメッセージを送信し得る。実施形態によっては、地図データベース18は、
図1に図解されるように、ネットワーク16を介して、または別の通信リンクを介して地図サーバ12と連結され得る。簡潔性のために、地図サーバ12、クライアント装置14、および地図データベース18はそれぞれ一例だけ
図1において図解されている。しかしながら、他の実施形態例においては、システム10は2つ以上の地図サーバ12、2つ以上のクライアント装置14、および/または、2つ以上の地図データベース18を含み得る。例えば、いくつかの実施形態においては、地図サーバ12は様々なクライアント装置14に対して地図データを提供し、それらにはデスクトップコンピュータ、ポータブルコンピュータ、タブレットコンピュータ、スマートフォン等が含まれる。
【0013】
地図サーバ12はプロセッサ20およびコンピュータ可読メモリ22を含み得、後者は、例えば、コンピュータ命令の形式で地図コントローラ30を記憶し、それは直接的に(例えば、コンパイルされたコードとして)または間接的に(プロセッサ20上で実行される別のアプリケーションによって解釈されるスクリプトとして)、プロセッサ20上で実行され得る。コンピュータ可読メモリ22はコンピュータ命令および実行時にコンピュータ命令が動作するデータを記憶する揮発性メモリ(例えば、ランダムアクセスメモリ、すなわちRAM)および、ある実施形態例においては、例えばハードディスク等の持続性メモリを含み得る。いくつかの実施形態では、地図サーバ12は多重プロセッサ20を含む。さらに、いくつかの実施形態では、地図コントローラ30は、ハードウェア構成要素、ファームウェア構成要素、ソフトウェア構成要素、または任意のそれらの組み合わせを使用して実装し得る。
【0014】
ある実施形態では、地図コントローラ30はベクトル図形形式等の非ラスタ形式の選択された地理的領域について様々な地図要素の記述を生成し、これは地図データとしてクライアント装置14に提供される。概して、ベクトルベースの地図データは様々な幾何学形状を指定し得(例えば、点および点を接続する道の数学的記述を使って)、道路、建物、公園、水域等の様々な地図要素を描画するためにそれらの形状がどのように配置されるかを示し得る。例えば、線分のラスタ画像を構成する各画素を指定する代わりに、線分のベクトルベースの記述は線分の2つの終点を指定し、そして2つの終点が直線によって接続されることを表示し得る。地図要素のベクトルベースの記述は、本明細書中では、ベクトル記述または単にベクトルとして参照され、そして1つまたはいくつかのベクトル記述子のセットはベクトルデータとして参照され得る。概して、地図要素はあるベクトル記述子を使用して記述され得る。
図2を参照してより詳細に記述されるが、マップコントローラ30はクライアント装置において地理的領域の地図が描画されるズームレベル、地図がクライアント装置において描画されるところの地図形式(例えば、地形、交通、輸送等)、直前に提供された地図データ等の観点から地理的領域のベクトルベースの記述を生成し得る。また、いくつかの実施形態では、地図サーバはベクトルデータがどのように描画されるべきかを示す形式データとは別に、地図コンテンツを記述するベクトルデータを提供し得る。
【0015】
地図コントローラ30は、1つまたはいくつかの地図要素を有する地図特徴の記述を生成する地図特徴コントローラ32を含み得る。ある実施形態では、地図特徴コントローラ32はどのベクトル記述子、(そして、したがって、どの地図要素)が特定の地図特徴に対応するかの表示を生成する。例えば、地図特徴コントローラ32は、集合地図特徴の集合特徴識別子を指定する欄を含むメッセージを生成し得、これには集合特徴識別子が付属する地図特徴のリストが続く。地図特徴のリストはベクトル記述子および/またはラベルデータを含み得る。代替的に、地図特徴のリストはそれぞれの特徴識別子を含み得る。いずれのケースでも、メッセージの構文解析を行うときは、クライアント装置14はリストに含まれる地図特徴は、同一集合特徴識別子に関連するかどうかを判定可能である。地図データのどの部分(例えば、ベクトル記述子のどのセット)が特定地図特徴と関連しているかを判定するために、地図特徴コントローラ32は、適切な地理的領域に関する地図データベース18に記憶される地図コンテンツテーブル34を使用する。
【0016】
続けて
図1を参照すると、地図コンテンツテーブル34は建物、道路、公園等の個々の地図要素に関する記録を含み得る。各地図要素に関し、地図コンテンツテーブル34は、地図要素の幾何学形状を指定するベクトル記述子を提供し得る。ある実施形態では、地図コンテンツテーブル34は様式データ(異なる地図形式にしたがって地図要素を描画するための多重視覚的様式を順番に指定し得る)等の追加情報、地図要素が別の重複地図要素の上あるいは下に描画されるかを表示するための深度表示、ラベル情報、地図要素がどのズームレベルで可視的となるかまたは可視が停止されるかを表示するズームデータ等をも提供する。地図コンテンツテーブル34は、どの地図特徴と、もしあれば、地図要素が関連しているかをも表示し得る。例えば、
図1に図解される地図コンテンツテーブル34の断片において、建物形式の地図要素、道路形式の地図要素、および公園形式の地図要素が異なるベクトル記述子によって記述されるが、しかしそれらは同一地図特徴F
1と関連している。
【0017】
地図コントローラ30は、クライアント装置14に対し、実施形態に基づき、単一電子メッセージまたは一連の電子メッセージにおいて、特定地理的領域に関する地図データ(ならびに実施形態例に従い、特定ズームレベルおよび/または特定地図形式)を提供し得る。さらに、ある実施形態では、地図コントローラ30は地図タイル記述子のセットとして地図データを生成し、各地図タイル記述子は地図タイル、すなわち特定サイズの地図画像の一部分(例えば、256×256画素)を記述する。個々の地図タイルによって表現される地理的領域のサイズは、地図タイルが関連するズームレベルに基づき得る。概して、ズームレベルは地図画像または地図画像の一部分に対する見かけ距離に対応する(例えば、視点の高さを変更する結果として)。ある実施形態では、より低いズームレベルにおける単一地図タイルは、より高いズームレベルにおける単一地図タイルよりも、より大きな地理的エリアを図解する。地図コントローラ30は、ベクトル図形形式に従って各地図タイル記述子を生成し得、
図1のクライアント装置14等のクライアント装置は、1つまたはいくつかのタイルを含むラスタ画像を局所的に生成し得る。いくつかの筋書きでは、地図特徴の地図要素は、異なる地図タイルで提供され得る。例えば、地図コントローラ30はもしも地図要素が別の地図要素内に提供される場合、建物等の単一の物理的エンティティのそれぞれの部分に対応するいくつかの地図要素を生成し得る。
【0018】
さらに
図1を参照すると、クライアント装置14は命令を実行するためのプロセッサ50および命令およびデータを記憶するためのメモリ52を含み得る。クライアント装置14は入力装置54および出力装置56を含み得、それぞれユーザからの情報を受信し、ユーザに対して出力を提供する。入力装置54は1つ以上のキーボード、マウス、およびタッチスクリーンを含み得、出力装置56は、例えば、タッチスクリーンまたは別の形式のモニタを含み得る。クライアント装置14は様々なソフトウェア構成要素を含み得、それらはデバイスドライバ、オペレーティングシステム(OS)、イベントハンドラ等で、入力装置54および出力装置56を制御し、対話型ユーザインターフェースを実装する。さらに、プロセッサ50上で実行するソフトウェアアプリケーションは、これらのソフトウェア構成要素を利用して、アプリケーション固有のユーザインターフェースを提供し得る。
【0019】
実施形態によるが、クライアント装置14はデスクトップコンピュータ、ラップトップコンピュータ、またはタブレットPC等のパーソナルコンピュータ、ワークステーション、スマートフォン等の可搬型通信装置、または他の好適なコンピューティングデバイスであり得る。ある実施形態では、クライアント装置14は一定のコンピューティングおよび/または記憶機能のための別のコンピューティングデバイスに依存する、いわゆるシンクライアントである。例えば、あるそのような実施形態では、メモリ52はRAM等の揮発性メモリのみを含み、そしてプログラムおよび/または持続性メモリを有する記憶ユニットは、クライアント装置14に対しては外部的である。別の実施形態では、メモリ52は揮発性および持続性メモリ構成要素の両方を含む。
【0020】
ブラウザアプリケーション60は、プロセッサ50上で実行されるコンピュータ可読命令セットを含み得る。概して、ブラウザアプリケーション60はテキスト、画像、埋め込み映像等の内容を含むウェブページならびにHypertext Markup Language(HTML)等のマークアップ言語による命令にアクセスし、マークアップ言語による命令に従って出力装置56上の内容を描画する。この目的のために、ブラウザアプリケーション60はHypertext Transfer Protocol(HTTP)に一致するデータパケットを生成および処理するための機能を実装し、HTML内容を構文解析し、Secure Socket Layer(SSL)プロトコルに従ってデータを暗号化し、デジタル証明書を要求および検証し、またナビゲーション、描画、およびウェブページデータの管理に関連する様々なユーザコマンドを受信するためのユーザインターフェース機能を実装し得る。いくつかの実施形態では、ブラウザアプリケーション60はウェブページに提供されるスクリプト言語(例えば、Javascript)による命令を解釈するように構成される。(「Java」は登録商標)
【0021】
地図描画エンジン62はブラウザアプリケーション60の構成要素として実行し得る。しかしながら、他の実施形態においては、地図描画エンジン62と類似するソフトウェアモジュールが、独立アプリケーションとして、または別のアプリケーションの構成要素として実行し得る。実施形態によるが、地図描画エンジン62はプラグイン(例えば、ブラウザアプリケーション60の機能性を拡張し、プロセッサ50上で実行するコンパイル済み命令セット)、スクリプト(例えば、実行時にブラウザアプリケーション60によって解釈されるスクリプト言語による命令セット)、または別の好適なソフトウェア構成要素であり得る。1つの筋書き例に従うと、地図描画エンジン62はクライアント装置14を操作するユーザが埋め込まれた対話型地図を含むウェブページを訪問した時にダウンロードされる。より具体的には、ウェブページは、オンライン地図サーバおよびある地理的場所との第1のハイパーリンク、ならびに地図描画エンジン62のコピーとの第2のハイパーリンクを含み得、なおこれは第1のハイパーリンクに従ってオンライン地図サーバから受信する地図データを描画するために必要である。地図描画エンジン62は、地図サーバ12からベクトルデータ(そして、いくつかの実施形態では、様式データ)を受信し、受信されたベクトルデータを使って対応する地図画像を描画し、そして地図画像がブラウザアプリケーション60によって割り振られる一定領域内に表示されるようにし得る。例えば、ブラウザアプリケーション60は地図画像を表示するためのHTML5Canvas要素を作成し得る。
【0022】
さらに、地図描画エンジン62は、例えば、ブラウザアプリケーション60のユーザインターフェースを介して対話型制御を提供し得る。対話型制御は、地理的領域またはエリア、地図形式(例えば、基本、交通、輸送)、ズームレベル等をユーザが選択することを可能とする。さらに、ある実施形態では、地図描画エンジン62は、個々の地図要素(または非集合地図特徴)に加えて集合地図特徴を選択するための対話型ユーザ制御を提供する特徴操作子64を含む。例えば、特徴操作子64は、追加ボタンを提供、および/または多重地図要素を有する地図特徴を操るための追加キー入力事象を認識し得る。特徴操作子64は地図サーバ12から受信した地図特徴記述子を処理し、そして、ユーザがある地図特徴の選択を行うことを選択したとの判定に応えて、地図特徴と関連する地図要素を自動的に識別および選択し得る。より具体的な例として、ユーザは地図上に描写された個々の地図要素をクリックすることができ、そして特徴操作子64が、地図要素が多重地図要素を有する集合地図特徴と関連すると判定して、地図特徴全体、すなわち、クリックされた地図要素、ならびにユーザがクリックしなかった1つ以上の追加地図要素を強調表示することができる。別の例として、特徴操作子64はマウスのポインタが集合地図特徴に関連する地図要素上を「浮遊する」ことを判定し、そして上述の筋書きと類似して、自動的に地図要素を含む地図特徴全体を強調表示し得る。より一般的には、特徴操作子64はマウス事象または別の好適装置からの事象を処理して、浮遊、接触、および他の形式のユーザ対話を支持可能である。
【0023】
簡潔性のために、クライアント装置14は単一のプロセッサ50とともに図解される。しかしながら、他の実施形態におけるクライアント装置14は、例えば、出力装置56上での画像描画を容易にするように構成された図形処理ユニット(GPU)等の追加処理ユニット(示されない)を含み得る。さらに、ある実施形態では、ブラウザアプリケーション60は地図画像を効率的に生成するための図形機能のライブラリを利用し得る。例えば、ブラウザアプリケーション60は、例えば、WebGL等の3D図形をサポートするソフトウェアライブラリを利用し得る。別の例として、メモリ52はブラウザアプリケーション60を含む、クライアント14上で実行される様々なアプリケーションがアプリケーションプログラミングインターフェース(API)を介してアクセスし得る図形を描画するための機能を有する、OpenGL(登録商標)またはDirect3D(登録商標)ライブラリ等のプラグインを記憶し得る。また、いくつかの実施形態では、メモリ52は出力装置56を介して画像の効率的描画を容易にする追加ソフトウェア構成要素を記憶する。例えば、メモリ52はAdobe(登録商標)Flash(登録商標)プラグインまたはO3Dプラグインを記憶し得る。
【0024】
ブラウザアプリケーション60に加えて、または代替として、地図描画エンジン62はマッピングアプリケーション等の任意の好適アプリケーションで動作可能なことは注目されるべきである。ブラウザアプリケーション60と類似して、マッピングアプリケーションはメモリ52に記憶される命令セットを含み得、そしてクライアント装置14または類似装置の1つ以上のプロセッサ上で実行可能である。いくつかの実装においては、マッピングアプリケーションはブラウザアプリケーション60によって提供される(例えば、対応するブラウザAPIを介して)ネットワーキング機能を利用する。別の実装においては、マッピングアプリケーションは少なくとも部分的にブラウザ機能を含み、これらは地図サーバ12にアクセスするためのTCP、IP、HTTP等をサポートする通信スタック等である。
【0025】
ここで
図2を参照すると、地図コントローラ80は、例えば、
図1の地図サーバ12を操作し、地図コントローラ30として、あるいは地図データを1つまたはいくつかのクライアント装置に提供するように構成された別の装置において動作し得る。地図コントローラ80は、ソフトウェアモジュール(例えば、コンピュータ可読媒体上に記憶され、1つまたはいくつかのプロセッサによって解釈可能なコンピュータ命令)、ハードウェアモジュール、ファームウェアモジュール、またはそれらの任意の好適組み合わせとして実装されるいくつかの構成要素を含み得る。概して、地図コントローラ80は指定された地理的領域に対応する地図データに関して、クライアント装置14等のクライアント装置からの要求を処理するように構成し得る。例えば、地図コントローラ80は緯度41°52’43”および経度−87°38’11”を中心とする2マイル幅領域に対応する地図データに関する要求を受信し得る。要求はまた地図データが要求されているズームレベルも表示する。要求はまた地図形式、例えば基本、交通、輸送等、も表示し得る。
【0026】
ある実施形態では、地図コントローラ80は地図データ生成子82、様式生成子84、地図特徴コントローラ86、およびデータベースインターフェースモジュール88を含み、
図1の地図データベース18等の地図データの貯蔵所と構成要素82、84、および86との間の通信を提供する。動作中、地図データ生成子82は例えばクライアント装置14に対して地図コンテンツとして提供される様々な地図要素に関するベクトルベースの地図データを生成する。この目的のために、地図データ生成子82はデータベースインターフェースモジュール88を介して地図サーバと通信し得る。地図データ生成子82は地図要素の形状を指定するベクトル記述子を生成し得、そしていくつかのケースにおいて、地図データの一部として(あるいは追加で)、ラベルデータ、深度表示、および他のパラメータをも提供し得る。いくつかの実施形態では、地図データ生成子82は地図データを地図タイル記述子のセットとして生成し、各地図タイル記述子は実施形態に従って地図タイルを記述する。個々の地図タイルによって表現される地理的領域のサイズは、地図タイルが関連するズームレベルに左右され、より低いズームレベルの単一地図タイルは、より高いズームレベルの単一地図タイルより、より広い地理的エリアを図解する。地図データ生成子82はベクトル図形形式に従って各地図タイル記述子を生成し、クライアント装置は1つまたはいくつかのタイルに対応する地理的領域に関するラスタ画像を局所的に生成し得る。各タイルは互いに分離してまた独立して描画され得るが、地図データ生成子82は、いくつかの実施形態では、複数のタイルをまとめて描画し、単一ラスタ画像を生成する。
【0027】
さらに、地図様式生成子84はクライアント装置において内容をマッピングするためのアプリケーションのための様式データを生成し得る。様式は、概して、それぞれの一意的様式識別子によって識別され、そして各様式は地図要素を描画するための1つまたはいくつかの視覚的様式に対応し得る。視覚的様式は、ベクトルベースの地図データを描画するときに視覚的特性を順番に指定し得る。地図様式生成子84は各特徴形式に基づいて様式データを提供し得る。例えば、地図データ生成子82は地図特徴形式建物として各建物に関するベクトルデータを提供し得、そして地図様式生成子84は、クライアント装置がこの形式の地図特徴に対応するすべてのベクトル記述子に適用する様式データを提供し得る。
【0028】
地図特徴コントローラ86は、対応する地図データと共にクライアント装置に対して提供される地図特徴の記述子を生成し得る。前述の地図特徴コントローラ32と類似して、地図特徴コントローラ86は非ラスタ地図データのどの部分が特定地図特徴と対応するかに関する表示を生成するように構成し得る。地図特徴コントローラ86は、クライアント装置および/または地図コントローラ80が実装される装置において使用するために一意的地図特徴識別子を生成するようにも構成し得る。いくつかの実施形態では、地図特徴コントローラ86は地図特徴に関連する各ベクトル記述子に関するフラグまたは他の表示器を提供する。例えば、ベクトル記述子はどの地図特徴に、もしあれば、ベクトル記述子によって指定される地図要素が所属するかを指定する特徴_識別子欄を伴うデータ構造であり得る。集合地図特徴はいくつかの地図特徴を含み得、なおそれぞれがそれぞれの特徴識別子を有するため、地図特徴コントローラ86は個々の地図特徴がどのように集合地図特徴にグループ化されたかを表示するために追加データも提供し得る。例えば、地図特徴コントローラ86は特徴_識別子欄に非集合地図特徴の識別子を入れ、また集合_特徴_識別子欄にも対応する集合地図特徴の識別子を入れ得る。
【0029】
他の実施形態では、地図特徴コントローラ86は地図特徴に関連する全地図要素を包囲する地図特徴領域の境界を指定する。境界は任意の好適な方法で指定し得、それらは緯度/経度組のセット、ベクトル図形形式のポリゴン等である。多くのケースにおける地図特徴領域の境界は、地図タイルの境界とは一致しない。さらに、地図特徴領域は多重地図タイルにおける地図要素を包囲し得る。
【0030】
さらに、地図特徴コントローラ86は、いくつかの筋書きにおいて、クライアント装置において地図特徴と共に表示される共通テキストラベル(例えば、アルファベット文字列)を生成する。いくつかのケースにおいては、地図特徴を構成する地図要素は、個々のラベルと関連することに注目されたい。さらに、地図特徴コントローラ86が、クライアント装置に対して、集合地図特徴と関連するいくつかのまたはすべての地図要素または特徴に共通の様式情報を提供し得る。例えば、地図特徴コントローラ86は、輸送地図の一部として描画されるある集合地図特徴MF
1に関して、すべての関連地図要素が、輸送地図形式に関する様式VS
1に対応する様式S
1を使用してクライアント装置において表示される旨の表示を生成し、この表示をクライアント装置に提供し得る。このようにして、異なる形式の地図要素(例えば、建物、道路、公園)は類似する太さの線、色等を使用して表示可能である。別の実施形態では、地図特徴コントローラ86は、地図特徴がクライアント装置において強調表示されるときにのみ使用される、集合地図特徴に関する共通様式を指定する。集合地図特徴を構成するいくつかの地図特徴がある地図特徴形式と関連するときは、クライアント装置はその様式を、集合地図特徴が強調表示されないときに対応する地図特徴形式に従いベクトル記述子に適用し得、そして地図特徴が強調表示されたときに集合地図特徴について指定されたその様式を適用する。
【0031】
いくつかの実施形態に従って、地図コントローラ80が地図データを、特定エリアまたは地理的領域に対応する第1の地図画像(例えば、基本地図画像)を描画するためにクライアント装置に提供した後、地図サーバは同一エリアに対応する第2の異なる地図画像(例えば、交通地図画像)を描画するためにクライアント装置に修正データを提供する。クライアント装置は、次に第1の地図画像を描画するために直前に提供された地図データおよび修正データを使用して第2の地図画像を描画し得、地図サーバは第1の地図画像および第2の画像の両方を描画するために使用された地図データを必ずしもクライアント装置に2回以上提供する必要はない。筋書きによるが、修正データは、新規ベクトル記述子の形式の直前に提供された地図データに対する1つ以上の追加、直前に提供された地図データの1つまたはいくつかの部分の削除(これは特徴識別子を使用して識別され得る)、あるいは直前に提供された地図データの1つまたはいくつかの部分の修正(これも特徴識別子を使って識別され得る)を含み得る。これらのケースのいくつかにおいて、追加されるベクトル記述子は集合地図特徴の識別子を含み得る。さらに、削除される地図特徴に関する特徴識別子は、単一の特徴識別子のみを使用して多重地図要素を効率的に除去するために集合地図特徴を識別し得る。
【0032】
次に地理的エリアにおける関連物理的エンティティ群に対応する集合地図特徴を描写する地図のいくつかの例が、
図3A〜3Cを参照して論議される。特に、いくつかの建物、野原、および大学の歩道を含む地図特徴例が
図3Aを参照して論議され、ラスタ地図画像のいくつかの地図タイルへの分割例が
図3Bに図解され、そして地図特徴のいくつかの構成要素の選択例が
図3Cに図解される。
図1に戻って参照し、地図描画エンジン62は、例えば、地図コントローラ30によって提供される地図データを使用して
図3A〜3Cの地図画像を生成し得る。
【0033】
最初に
図3Aを参照すると、地図画像100がSeattle,Washingtonにおけるいくつかの街区を描写し、この一部がシアトル大学に所属する。より具体的には、地図画像100は歩道120によって相互接続された大学建物102、104、106、108、および110等のいくつかの地図要素を描写する。大学はまた、いくつかの運動および/またはリクリエーション構造物112、130、および132も含み、これらは市道によって建物102〜110から分離されている。ある実施形態では、地図要素102〜132は別々のベクトル記述子によって記述され、各地図要素102〜132は各他の地図要素から独立してそして個々に描画可能である。さらに、ベクトル記述子はそれぞれの非集合地図特徴を定義し、そのうちの少なくともいくつかは個々のラベル(例えば、「学生センター」)と関連され得る。ブロック140および142もシアトル大学と関連しており、シアトル大学と関連していない隣接シティブロックに適用される色または影とは異なる色または影を使用して描画される。しかしながら、ブロック140および142は、少なくとも地図画像100が対応するズームレベルにおいて、構造物、公園、または個々に図解される他の物理的エンティティを含まない。ある実施形態では、ブロック140および142を含む様々なシティブロックは、それぞれのエリアを包囲するポリゴンを指定するベクトル記述子の形式で提供される。
【0034】
地図画像100において描写される幾何形状を記述する地図データに加え、クライアント装置は、地図要素102〜142は集合地図特徴に関連している旨の表示を受信し得る。この目的のために、共通特徴識別子が、地図要素102〜142に対応する各ベクトル記述子のために提供され得る。別の実施形態では、地図要素102〜142に対応するベクトル記述子は、ベクトル記述子が共通地図特徴に対応している旨の表示を有するヘッダおよび/またはトレーラ部分を含むデータブロック内に提供される。概して、地図要素102〜142が集合地図特徴と関連していることを表示するための任意の好適技法を使用可能である。
【0035】
筋書き例に従い、シアトル大学に対応する集合地図特徴は、様々な地図タイルにおいて地図要素を有する。例えば、
図3Bに図解されるように、地図画像100は地図タイル150、152、154、および156で構成され得る。地図タイル150〜156のそれぞれは、地図データを使用して生成されるラスタ画像の一部分であり得る。実施形態においては、クライアント装置に送信されるときに、地図タイルに従って地図データがグループ化される。クライアント装置は他の地図タイルとは独立して各地図タイルを描画するように構成され得る。代替的に、クライアント装置は多重タイルに対応する地図データを受信し、そして、各地図タイルを対応するラスタ画像として別々に描画する代わりに、クライアント装置は多重地図タイルに対応する単一ラスタ画像を生成し得る。
図3Bの例において、地図要素102〜110、120、140、および142は地図タイル152内に提供され、地図要素130および132は地図タイル156内に提供され、そして、地図要素112は地図タイル154内に提供される。多重地図タイルに対応するラスタ画像を生成するときは、クライアント装置は地図タイル内に提供される地図要素と集合特徴との間の関係を保留し得、ユーザは、多重地図タイルをまたぐ集合地図特徴を選択および操作可能である。
【0036】
さらに、集合地図特徴は、いくつかのケースでは、建物、公園、湖等の同一の単一物理的エンティティの部分に対応する地図要素を含み得る。例えば、ある建物の表現の3分の2を1つの地図タイル内の第1の地図要素として提供され、そして、建物の表現の残り3分の1を別の地図タイル内の第2の地図要素として提供され得る。この筋書きにおける地図サーバは2つの地図タイルの別々の記述子を生成し得、なお地図タイルのそれぞれは対応する地図要素を含み、そしてこれらの記述子をクライアント装置に送信する。しかしながら、クライアント装置が第1の地図要素と第2の地図要素を、クライアント装置のユーザインターフェースを介して、単一地図要素として提供することを許可するために、地図サーバは、第1の地図要素と第2の地図要素を含む集合地図特徴の記述も生成し得る。
【0037】
さらに、ある実施形態では、地図要素または特徴の集合地図特徴へのグループ化は、多重レベルにおいて実装し得る。例えば、
図3Cに図解されるように、シアトル大学と関連するすべてではなくいくつかの地図要素は、地図特徴180に対応し得る。
図3Aに図解される例では、地図特徴180の記述は対応する地図要素(
図3Aおよび3Bへの参照による上述の要素102〜119および120であり得る)を含む地理的領域の境界を指定する。ある筋書き例では、ユーザが学生センターとラベル付けられた建物の隣の地図をクリックすると、地図特徴180の境界によって包囲されたエリアが選択される。
【0038】
次に、1つまたはいくつかの集合地図特徴を含む地図画像を描画するための情報の交換例が、
図4を参照して論議される。メッセージ交換200はユーザインターフェース202を含み、これはクライアント装置(
図1のクライアント14等)、クライアント装置で動作する地図描画エンジン204、およびサーバ206(
図1の地図サーバ12等)に含まれるか、さもなければ関連する。
図1の参照に戻り、ユーザインターフェースはブラウザ60によって提供され、一方、動的地図描画エンジン204およびサーバ206は、それぞれ、構成要素62および12内に実装され得る。
【0039】
ユーザコマンドに応答して、ユーザインターフェース202はある領域Rに関する地図データの要求210を生成し、その要求を地図描画エンジン204に提供し得る。要求210は、例えば、構成要素202および204が実装されるクライアント装置にとって内部的である電子メッセージとして送信され得る。ある実施形態では、要求210はズームレベルと地図形式(例えば、基本地図)を指定する。動的地図描画エンジン204は、今度は、地図データに関する要求212を生成し、これは通信ネットワークを介してサーバ206に送信され得る。要求212は、緯度および経度(これは、例えばGPS装置を使用して取得し得る)あるいは任意の他の好適方法を用いて領域Rを指定し得る。
【0040】
要求212に応答して、サーバ206は応答214を生成し得、これは地図画像を描画するための、ベクトル図形形式等の非ラスタ形式による地図データを含む。応答114は、1つまたはいくつかのタイル記述子T
1、T
2、・・・T
N等の任意の好適方法によって編成された地図データを含み得る。概して、地図データは、単一タイルを含む任意の数のタイルについて提供され得る。各タイルについて、応答214は様々な地図要素または非集合地図特徴F
1、F
2、・・・F
Mを記述し得、これらのそれぞれは、好適なベクトル図形形式に従ってベクトル記述子を使用して指定され得る。非集合地図特徴F
1、F
2、・・・F
Mに加え、応答214は2つ以上の非集合地図特徴F
1、F
2、・・・F
Mを含む集合地図特徴F
Aを記述し得る。上述のように、集合地図特徴F
Aの記述は、どの非集合地図特徴F
1、F
2、・・・F
Mが地図特徴F
Aと関連しているかの表示、その後の通信において地図特徴F
Aを識別する一意的特徴識別子、ある条件の下で地図特徴F
Aと共に表示されるラベル等を含み得る。動的地図描画エンジン204は地図画像を描画し、その地図画像をユーザインターフェース202に提供し、そして対応するイベント216を生成し得る。いくつかの実施形態では、動的地図描画エンジン204は、将来の使用のために、受信された地図データ(そして、入手可能となったときに、様式データ)をメモリ内に記憶し得る。
【0041】
のちほど、ユーザはユーザインターフェース202を介して提供される対話型制御を用いて集合地図特徴を選択し得る。これに応答して、ユーザインターフェース202は地図特徴が選択されたことを示すイベント218を生成し得る。ある実施形態では、イベント218はユーザが選択した地図画像上の場所のみを指定し、そしてユーザが集合地図特徴の選択を希望する旨を表示する。地図描画エンジン204は、どの地図要素をユーザが選択したかを判定し、同一集合地図特徴に関連する他のすべての地図要素を自動的に識別し、そして地図特徴が選択されたこと(イベント220)を表示するために地図画像を更新し得る。例えば、
図3Cの参照に戻り、イベント220は包囲されたエリア内の地図要素を強調表示されるようにし得る。
【0042】
図1のシステムまたは類似環境において動作するコンピューティングデバイスに実装し得るいくつかの方法例が、
図5〜7を参照して次に論議される。これらの方法は任意の好適プログラミング言語で開発されたコンピュータプログラムとして実装し得、有形の非一時性コンピュータ可読媒体(1つまたはいくつかのハードディスクドライブ等)上に記憶され、そして1つまたはいくつかのプロセッサ上で実行可能である。例えば、
図5および6の方法は地図サーバ12内で実装され得、
図7の方法はクライアント装置14において実装され得る。
図5〜7の方法は個々のコンピュータ、サーバまたはパーソナルコンピュータ(PC)、いくつかのコンピュータを使用する分散方法、例えば、クラウドコンピューティング環境、において少なくともこれらの方法のいくつかを実装することも可能である。
【0043】
最初に
図5を参照すると、集合地図特徴の記述と共に地図データを生成するための方法例300は、例えば、地図コントローラ30または80において実装し得る。ある実施形態に従って、ある地理的領域に対応する第1の地図画像を描画するための非ラスタ形式における地図データは、ブロック302において生成される。地図データは、例えば、ベクトル図形形式に一致し、それぞれの地図要素を記述するベクトル記述子を含み得る。ある実施形態では、各ベクトル記述子はそれぞれの地図特徴を定義する。地図データは、地図サーバおよびクライアント装置によって認識される一定の形式に一致する電子メッセージで送信するためのデータ構造として提供され得る。
【0044】
次に、ブロック304において、集合地図特徴に対応する地図データの一部が指定される。集合地図特徴は、例えば、共通ラベル等の追加情報は勿論のこと、深度表示等のいくつかの非集合地図特徴を含み得る。地図特徴に対応する地図の部分の表示は、地図特徴の記述子内に含まれ得る。ブロック306において、地図特徴に関する一意的特徴識別子が提供される。いくつかのケースでは、一意的特徴識別子は
図1のデータベース18等の地図データベースから取り出され得る。他のケースでは、一意的特徴識別子は方法300の実行中に生成される。いずれのケースでも、一意的特徴識別子はブロック304において生成される表示と共に、地図特徴の記述子内に含まれ得る。
【0045】
ブロック308において、地図データおよび地図特徴の記述がクライアント装置に提供される。例えば、1つまたはいくつかの電子メッセージは、通信ネットワークを介してクライアント装置に送信可能である。
【0046】
ここで
図6を参照すると、地図特徴記述を生成するための方法例350が、例えば、地図特徴コントローラ86または類似モジュール内に実装され得る。ある実施形態では、方法350の少なくともいくつかのステップは、前述の方法300のブロック304〜306において実行される。
【0047】
ブロック352において、選択される地理的エリア、ズームレベル、および地図形式に関する地図画像に含まれる地図要素が識別される。2つ以上の地図要素を含む集合地図特徴は、次にブロック354において識別され、そして各地図要素のベクトル記述がブロック356において提供される。ブロック358において、ブロック352において識別されるどの地図要素が地図特徴と関連するかの表示が生成される。1つの実施形態では、各地図要素はそれぞれの特徴識別子と共に非集合地図特徴として提供され、そしてブロック358において生成される表示は特徴識別子のリストを含む。特徴識別子のリストは、個々の地図特徴の記述子と共に、あるいは別々に提供され得る。別の実施形態では、ブロック358において生成される表示は、ベクトル記述子のリストの一部を範囲指定する1つ以上のフラグを含み、どのベクトル記述子が集合地図特徴と関連しているかを表示する。
【0048】
図7は、クライアント装置において地図データおよび地図特徴記述を処理するための方法例400の流れ図である。ある実施形態に従って、方法400は
図1に図解されるクライアント装置14内に実装される。
【0049】
ブロック402において、非ラスタ形式の地図データが地図サーバから受信される。ある実施形態では、地図データは、地図データのどの部分が集合地図特徴に対応するかを表示する。地図データはブロック404において解釈され、様々な地図要素を描画する。次に、ブロック406において、ある地図要素がユーザインターフェースを介して選択される。ユーザは、例えば、地図に描写されるある建物をクリックまたはタッチする。選択された地図要素と関連する地図特徴を選択する要求は、次にブロック408において受信される。これに応えて、方法400は選択された地図要素が関連する地図特徴を識別する(ブロック410)。ブロック412において、地図特徴と関連する1つ以上の追加地図要素が識別される。次に地図画像がブロック414において更新され、集合地図特徴と関連する多重地図要素の自動選択を反映する。例えば、地図画像は地図特徴に所属するすべての可視的地図要素を強調表示するように更新され得る。
【0050】
本明細書を通して、複数の例は、単一例として記述される構成要素、操作、または構造を実装し得る。1つ以上の方法の個々の操作は別々の操作として図解され、記述されるが、1つ以上の個々の操作は並列に実施され得、操作が図解される順番で実施されることを要求するわけではない。構成例において別々の構成要素として提供される構造および機能性は、組み合わされた構造または構成要素として実装され得る。同様に、単一構成要素として提供される構造及び機能性は、別々の構成要素として実装され得る。これらおよび他の変化形、修正、追加、および改善は、本明細書中の主題の範囲内にある。例えば、ネットワーク16は、これらに限定されないが、LAN、MAN、WAN、移動式、有線、または無線ネットワーク、プライベートネットワーク、または仮想プライベートネットワークの任意の組み合わせを含み得る。
【0051】
さらに、ある実施形態は、論理的またはいくつかの構成要素、モジュール、または機構を含むものとして本明細書中に記述される。モジュールはソフトウェアモジュール(例えば、機械可読媒体または送信信号内に具現されるコード)またはハードウェアモジュールを構成し得る。ハードウェアモジュールは一定の操作を実施することのできる有形ユニットであり、一定方法によって構成またはまとめられ得る。実施形態において、1つ以上のコンピュータシステム(例えば、独立型、クライアントまたはサーバコンピュータシステム)あるいはコンピュータシステムの1つ以上のハードウェアモジュール(例えば、プロセッサまたはプロセッサ群)を、本明細書中で記述されるように一定の操作を実施するために動作するハードウェアモジュールとして、ソフトウェア(例えば、アプリケーションまたはアプリケーション部分)によって構成され得る。
【0052】
様々な実施形態において、ハードウェアモジュールは一定の操作を実施するために恒久的に構成された専用回路または論理(例えば、書き換え可能ゲートアレイ(FPGA)または特定用途向けIC(ASIC)等の特定用途プロセッサ)を備え得る。ハードウェアモジュールは、一定の操作を実施するためにソフトウェアによって一時的に構成されるプログラム可能論理または回路(例えば、汎用プロセッサまたは他のプログラム可能プロセッサ内に包囲されたもの)をも備え得る。したがって、ハードウェアという用語は有形エンティティを包囲するために理解されるべきであり、一定の方法によって動作し、あるいは本明細書中で記述される一定の操作を実施するために物理的に構築され、恒久的に構成され(例えば、実配線で)または一時的に構成された(例えば、プログラムされた)エンティティである。ハードウェアモジュールが一時的に構成された(例えば、プログラムされた)実施形態を考えると、各ハードウェアモジュールは任意の一例において間に合うように構成または事例化する必要はない。例えば、ハードウェアモジュールがソフトウェアを使用して構成された汎用プロセッサを備える場合、汎用プロセッサは異なる時点においてそれぞれの異なるハードウェアモジュールとして構成され得る。ソフトウェアは、したがって、例えば、ある時点において特定ハードウェアモジュールを構成し、そして異なる時点において異なるハードウェアモジュールを構成するために、プロセッサを構成し得る。
【0053】
ハードウェアおよびソフトウェアモジュールは、他のハードウェアおよび/またはソフトウェアモジュールに情報を提供し、またそこから情報を受信することが可能である。したがって、記述されるハードウェアモジュールは通信可能に連結されているとみなされ得る。複数のそのようなハードウェアまたはソフトウェアモジュールが同時に存在する場合、通信はハードウェアまたはソフトウェアモジュールを接続する信号送信を通して(例えば、適切な回路およびバスにより)達成され得る。多重ハードウェアモジュールまたはソフトウェアが異なる時点において構成または具現される実施形態では、そのようなハードウェアまたはソフトウェアモジュール間の通信は、例えば、記憶装置および多重ハードウェアまたはソフトウェアモジュールがアクセスするメモリ構造内の情報の取り出しを通して達成し得る。例えば、1つのハードウェアまたはソフトウェアモジュールは、操作を実施し、そしてその操作の出力を通信可能に連結されたメモリ装置内に記憶し得る。さらなるハードウェアまたはソフトウェアモジュールは、その後時間を置いて、記憶された出力の取り出しおよび処理を行うためにメモリ装置にアクセスし得る。ハードウェアおよびソフトウェアモジュールは入力または出力装置とも通信を開始し得、そして資源に基づいて(例えば、情報の集まり)動作可能である。
【0054】
本明細書中に記載される方法例の様々な操作は、少なくとも部分的には、関連操作を実施するために一時的に構成された(例えば、ソフトウェアによって)または恒久的に構成された1つ以上のプロセッサによって実施され得る。一時的に構成されていても恒久的に構成されていても、そのようなプロセッサは1つ以上の操作または機能を実施するために動作するプロセッサ実装モジュールを構成し得る。本明細書中で参照されるモジュールは、いくつかの実施形態例においては、プロセッサ実装モジュールを備え得る。
【0055】
同様に、本明細書中で記述される方法またはルーチンは少なくとも部分的にはプロセッサ実装であり得る。例えば、少なくとも方法の操作のいくつかは、1つまたは複数のプロセッサによって、またはプロセッサ実装ハードウェアモジュールによって実施され得る。一定操作の実施は1つ以上のプロセッサの間で分配され得、それらは単一機械内に常駐するばかりでなく、いくつかの機械間で配備されている。いくつかの実施形態例では、1つまたは複数のプロセッサは単一場所に配置され得(例えば、家庭環境、職場環境内で、またはサーバ企業として)、一方、他の実施形態では、プロセッサはいくつかの場所にわたって分配され得る。
【0056】
1つ以上のプロセッサは「クラウドコンピューティング」環境において、関連操作の実施を支持するために動作し得る。例えば、少なくともいくつかの操作は、コンピュータグループ(プロセッサを含む機械の例として)によって実施し得、これらの操作はネットワーク(例えば、インターネット)を介して、また1つ以上の適切なインターフェース(例えば、アプリケーションプログラムインターフェース(API))を介してアクセス可能である。
【0057】
一定操作の実施は、単一機械内に常駐するばかりでなく、1つ以上のプロセッサ間で分配し得、いくつかの機械間で配備される。いくつかの実施形態例では、1つ以上のプロセッサまたはプロセッサ実装モジュールは単一の地理的場所(例えば、家庭環境、事務所環境、またはサーバ企業内)内に配置され得る。他の実施形態例では、1つ以上のプロセッサまたはプロセッサ実装モジュールは、いくつかの地理的場所間で分配され得る。
【0058】
本明細書のいくつかの部分は、機械メモリ(例えば、コンピュータメモリ)内にビットまたはバイナリデジタル信号として記憶されるデータに基づく操作の符号表現またはアルゴリズムとして提供される。これらのアルゴリズムまたは符号表現は、データ処理技術の当業者により、他の当業者にその作業の主題を伝えるために使用される技法の例である。本明細書中での使用において、「アルゴリズム」または「ルーチン」は、希望する結果に至る自己矛盾の無い一連の操作または類似処理である。本文脈においては、アルゴリズム、ルーチンおよび操作は、物理量の物理的操りを含む。典型的には、必ずしもそうではないが、そのような量は機械によって記憶、アクセス、転送、結合、比較、あるいは操作が可能な電気的、磁気的、または光学的信号の形態をとり得る。主として共通使用の理由により、「データ」、「内容」、「ビット」、「値」、「要素」、「符号」、「文字」、「用語」、「数」、「番号」等の言葉を使ってそのような信号を参照することは時により便利である。これらの言葉は、しかしながら、単に便利なラベルであり、適切な物理量と関連するものである。
【0059】
具体的に他に記載がない限り、「処理する」、「コンピューティング」、「計算する」、「判定する」、「提供する」、「表示する」等の言葉を使用した本明細書中における論理は、情報を受信し、記憶し、送信し、または表示する1つ以上のメモリ(例えば、揮発性メモリ、非揮発性メモリ、またはそれらの組み合わせ)、レジスタ、または他の機械構成要素内の物理的(例えば、電子的、磁気的、または光学的)量として表現されるデータを操作または変形させる機械(例えば、コンピュータ)の行為または処理を参照し得る。
【0060】
本明細書で使用される、「1つの実施形態」または「ある実施形態」への参照は、実施形態との関係で記述される特定の要素、特徴、構造、または特性は、少なくとも1つの実施形態内に含まれることを意味する。明細書内の様々な場所における「1つの実施形態において」という語句の使用は、必ずしもすべてが同一実施形態を参照しているわけではない。
【0061】
いくつかの実施形態は、「連結され」および「接続され」という表現ならびにその派生語を使用して記述され得る。例えば、いくつかの実施形態は2つ以上の要素が物理的または電気的に直接接触していることを示すために用語「連結されて」を使用して記述され得る。用語「連結されて」は、しかしながら、2つ以上の要素が互いに直接的に接触していないが、しかし互いに協力または対話することも意味し得る。実施形態はこの文脈では限定されない。
【0062】
本明細書中で使用される用語「備える」、「備えている」、「含む」、「含んでいる」、「有する」、「有している」またはそれらの任意の他の変化形は、非排他的包含が意図されている。例えば、プロセス、方法、製品、または要素のリストを備える装置は、必ずしもそれらの要素のみに限定されておらず、明示的に列挙されていない、またはそのようなプロセス、方法、製品、または装置類に固有の他の要素を含み得る。さらに、明示的に反対の記載がない限り、「または」は包含的ORを参照し、排他的ORは参照しない。例えば、条件AまたはBは以下のいずれかの1つによって満足される:Aは真(または存在)そしてBは偽(または不存在)、Aは偽(または不存在)およびBは真(または存在)、および、AおよびBの両方が真(または存在)。
【0063】
さらに、「a」または「an」の使用は、要素および本明細書中の実施形態の構成要素を記述するために採用される。これは単に便宜性のためであり、記述の全体感を提供するためである。この記述は1つまたは少なくとも1つを含むとして読まれるべきであり、別の意味が明白でない限り、単一は複数を含む。
【0064】
さらにまた、図は、説明のみの目的で、地図描画システムの好ましい実施形態を描写する。当業者は、本明細書中に図解される構造および方法の代替実施形態を、本明細書中に記述される原則から逸脱することなく採用され得ることを以下の論議から容易に認識するであろう。
【0065】
当業者は、本開示を読むことにより、本明細書中に開示される原理を用いて、地図および地図特徴データを提供するためのシステムおよびプロセスに関するさらなる代替構造および機能的設計を認識するであろう。このように、特定の実施形態およびアプリケーションが図解され、記述されてきたが、開示された実施形態は、本明細書中に開示される正確な構造および構成要素には限定されないことを理解するべきである。当業者にとっては明白であろうが、様々な修正、変更、および変化形は、付属請求項に定義される精神および範囲から逸脱することなく、本明細書中に開示される方法および装置のとりまとめ、操作、および詳細において実施され得る。