(57)【特許請求の範囲】
【請求項１】
３次元環境内においてバーチャルカメラをナビゲートするための方法であって、該方法は、コンピュータにより実行され、該方法は、
（Ａ）該３次元環境内における３次元モデルに対する標的位置を決定することであって、該バーチャルカメラは、該３次元モデルの垂直視点を撮影するために第１の場所にあり、該３次元モデルは湾曲している、ことと、
（Ｂ）バーチャルカメラの該第１の場所と該３次元環境内における該標的位置との間の距離を決定することと、
（Ｃ）該（Ｂ）における距離に対して縮小した距離を決定することと、
（Ｄ）該縮小した距離の関数として傾転を決定することであって、該関数は、該縮小した距離がゼロに近づくにつれて、該傾転が９０度に近づくように定義され、該傾転は、該標的位置から上向きベクトルに対する角度を特定する、ことと、
（Ｅ）該傾転、該縮小した距離、および該標的位置に従って決定される第２の場所に該バーチャルカメラを配置することであって、該バーチャルカメラの位置は、一式のパラメータによって画定され、該配置することは、該３次元モデルの湾曲により引き起こされる転回を低減するように該カメラを回転させることを含む、ことと、
（Ｆ）ステップ（Ｂ）〜ステップ（Ｅ）を繰り返すことにより、バーチャルカメラを、該３次元モデルの垂直視点を撮影するための第１の場所から、該３次元モデルの水平視点を撮影するための第２の場所へと移行させることであって、該第２の場所は該第１の場所よりも該３次元モデルに近い、ことと
を含む、方法。
【請求項２】
前記ステップ（Ｄ）の決定することは、前記縮小した距離の前記関数を使用して前記傾転を決定することをさらに含み、該関数は、前記距離が減少するにつれて、該傾転がより迅速に９０度に近づくように定義される、請求項１に記載の方法。
【請求項３】
前記ステップ（Ｅ）の配置することは、
（１）前記標的位置に向かう方向へ前記バーチャルカメラを平行移動させることと、
（２）前記傾転に合致するように該バーチャルカメラに角度を付けることと、
（３）前記縮小した距離だけ該標的位置から離れる方向へ該バーチャルカメラを平行移動させることと
を含む、請求項１に記載の方法。
【請求項４】
前記ステップ（Ａ）の決定することは、
（１）ユーザによって選択される点を通して、前記バーチャルカメラの焦点から射線を延在させることと、
（２）該射線と前記３次元環境内における３次元モデルとの間の交差点を決定することと、
（３）該交差点の位置に従って前記標的位置を決定することと
を含む、請求項１に記載の方法。
【請求項５】
前記回転させることは、前記第１の場所と前記３次元モデル内における地球のモデルの中心とを接続する第１の線分と、前記第２の場所と該地球のモデルの該中心とを接続する第２の線分との間の角度だけ、前記カメラを回転させることを含む、請求項４に記載の方法。
【請求項６】
（Ｇ）前記バーチャルカメラが前記第１の場所および前記第２の場所にあるときに、前記標的位置が該バーチャルカメラのビューポート上の同じ点の上に投影するように、前記３次元環境内における地球のモデルを回転させることをさらに含み、
前記（Ｆ）の繰り返すことは、該バーチャルカメラと該標的位置との間の前記距離が閾値を下回るまで、ステップ（Ｂ）〜ステップ（Ｅ）およびステップ（Ｇ）を繰り返すことを含む、請求項５に記載の方法。
【請求項７】
前記ステップ（Ｆ）の回転させることは、前記第１の場所と前記３次元モデル内における地球のモデルの中心とを接続する第１の線分と、前記第２の場所と該地球のモデルの該中心とを接続する第２の線分との間の角度だけ、前記傾転の方向に、該地球のモデルを回転させることを含む、請求項６に記載の方法。
【請求項８】
（Ｈ）前記バーチャルカメラの前記位置が前記３次元環境内における３次元モデルの地形より上側にあるように、該バーチャルカメラを再配置することをさらに含み、
前記（Ｆ）の繰り返すことは、該バーチャルカメラと前記標的位置との間の前記距離が閾値を下回るまで、ステップ（Ｂ）〜ステップ（Ｆ）およびステップ（Ｈ）を繰り返すことを含む、請求項１に記載の方法。
【請求項９】
前記ステップ（Ａ）の決定することは、
（Ｈ）標的の位置が前記３次元環境内における３次元モデルの地形より上側にあるように、該標的を再配置することと、
（Ｇ）前記バーチャルカメラと該標的との間の距離が閾値を下回るまで、ステップ（Ｂ）〜ステップ（Ｆ）を繰り返すことと
を含む、請求項１に記載の方法。
【請求項１０】
前記ステップ（Ｃ）の決定することは、前記距離を対数的に縮小することを含む、請求項１に記載の方法。
【請求項１１】
３次元環境内においてバーチャルカメラをナビゲートするためのシステムであって、
該３次元環境内における３次元モデルに対する標的位置を決定する標的モジュールであって、該標的モジュールは、コンピュータデバイス上に実装されており、該バーチャルカメラは、該３次元モデルの垂直視点を撮影するために第１の場所にあり、該３次元モデルは湾曲している、標的モジュールと、
起動されると、バーチャルカメラの第１の場所と該３次元環境内における該標的位置との間の距離を決定し、縮小した距離を決定し、該縮小した距離の関数として傾転を決定する、傾転計算機モジュールであって、該関数は、該縮小した距離がゼロに近づくにつれて、該傾転が９０度に近づくように定義され、該傾転は、該標的位置から上向きベクトルに対する角度を特定する、傾転計算機モジュールと、
起動されると、該傾転、該縮小した距離、および該標的位置に従って決定される第２の場所に該バーチャルカメラを配置する、ポジショナモジュールであって、該バーチャルカメラの位置は、一式のパラメータによって画定される、ポジショナモジュールと、
該バーチャルカメラと該標的位置との間の該距離が閾値を下回るまで、該傾転計算機モジュールおよび該ポジショナモジュールを繰り返し起動することにより、該バーチャルカメラを、該３次元モデルの垂直視点を撮影するための第１の場所から、該３次元モデルの水平視点を撮影するための第２の場所へと移行させるコントローラモジュールであって、該第２の場所は該第１の場所よりも該３次元モデルに近い、コントローラモジュールと
を備えている、システム。
【請求項１２】
前記傾転を決定するために前記傾転計算機によって使用される前記関数は、前記距離が減少するにつれて、該傾転がより迅速に９０度に近づくように、定義される、請求項１１に記載のシステム。
【請求項１３】
前記ポジショナモジュールは、前記標的位置に向かう方向へ前記バーチャルカメラを平行移動させ、前記傾転に合致するように該バーチャルカメラに角度を付け、前記縮小した距離だけ該標的位置から離れる方向へ該バーチャルカメラを平行移動させる、請求項１２に記載のシステム。
【請求項１４】
前記標的モジュールは、ユーザによって選択される点を通して、前記バーチャルカメラの焦点から射線を延在させ、該射線と前記３次元環境内における３次元モデルとの間の交差点を決定し、該交差点に従って標的位置を決定する、請求項１３に記載のシステム。
【請求項１５】
前記３次元モデルの湾曲により引き起こされる転回を低減するように前記カメラを回転させる、転回補償器モジュールをさらに備えており、
前記コントローラモジュールは、前記バーチャルカメラと前記標的位置との間の前記距離が閾値を下回るまで、該転回補償器モジュールを繰り返し起動する、請求項１４に記載のシステム。
【請求項１６】
前記転回補償器モジュールは、前記第１の場所と前記３次元モデル内における地球のモデルの中心とを接続する第１の線分と、前記第２の場所と該地球のモデルの該中心とを接続する第２の線分との間の角度だけ、前記カメラを回転させる、請求項１５に記載のシステム。
【請求項１７】
起動されると、前記バーチャルカメラが前記第１の場所および前記第２の場所にあるときに、前記標的位置が該バーチャルカメラのビューポート上の同じ点の上に投影するように前記３次元環境内における地球のモデルを回転させる、画面空間モジュールをさらに備えており、
前記コントローラモジュールは、該バーチャルカメラと該標的位置との間の前記距離が閾値を下回るまで、該モデルモジュールを繰り返し起動する、請求項１４に記載のシステム。
【請求項１８】
前記画面空間モジュールは、前記第１の場所と前記３次元モデル内における地球のモデルの中心とを接続する第１の線分と、前記第２の場所と該地球のモデルの該中心を接続する第２の線分との間の角度だけ、前記傾転の方向に、該地球のモデルを回転させる、請求項１７に記載のシステム。
【請求項１９】
起動されると、前記バーチャルカメラの前記位置が前記３次元環境内における３次元モデルの地形より上側にあるように該バーチャルカメラを再配置する、地形調整器モジュールをさらに備えており、
前記コントローラモジュールは、該バーチャルカメラと前記標的位置との間の前記距離が閾値を下回るまで、該地形調整器モジュールを繰り返し起動する、請求項１１に記載のシステム。
【請求項２０】
起動されると、前記標的位置の位置が前記３次元環境内における３次元モデルの地形より上側にあるように前記標的位置を再配置する、地形調整器モジュールをさらに備えており、
前記コントローラモジュールは、前記バーチャルカメラと該標的位置との間の前記距離が閾値を下回るまで、該地形調整器モジュールを繰り返し起動する、請求項１１に記載のシステム。
【請求項２１】
前記傾転計算機モジュールは、前記距離を対数的に縮小する、請求項１１に記載のシステム。
【請求項２２】
３次元環境内においてバーチャルカメラをナビゲートするためのシステムであって、
該３次元環境内における３次元モデルに対する標的位置を決定する手段であって、該バーチャルカメラは、該３次元モデルの垂直視点を撮影するために第１の場所にあり、該３次元モデルは湾曲している、手段と、
バーチャルカメラの第１の場所と該３次元環境内における該標的位置との間の距離を決定する手段と、
該決定する手段により決定された距離に対して縮小した距離を決定する手段と、
該縮小した距離の関数として傾転を決定する手段であって、該関数は、該縮小した距離がゼロに近づくにつれて、該傾転が９０度に近づくように定義され、該傾転は、該標的位置から上向きベクトルに対する角度を特定する、手段と、
該傾転、該縮小した距離、および該標的位置に従って決定される第２の場所に該バーチャルカメラを配置する手段であって、該バーチャルカメラの位置は、一式のパラメータによって画定される、手段と、
該縮小した距離を決定することと、該傾転を決定することと、該バーチャルカメラを配置することとの繰り返しをさせることにより、該バーチャルカメラを、該３次元モデルの垂直視点を撮影するための第１の場所から、該３次元モデルの水平視点を撮影するための第２の場所へと移行させる手段であって、該第２の場所は該第１の場所よりも該３次元モデルに近い、手段と
を備えている、システム。
【請求項２３】
コンピュータ実行可能命令を記憶した有形のコンピュータ可読媒体であって、該コンピュータ実行可能命令が、コンピュータデバイスによって実行されると、
（Ａ）３次元環境内における３次元モデルに対する標的位置を決定することであって、該３次元モデルは湾曲している、ことと、
（Ｂ）バーチャルカメラの第１の場所と該３次元環境内における該標的位置との間の距離を決定することと、
（Ｃ）該（Ｂ）における距離に対して縮小した距離を決定することと、
（Ｄ）該縮小した距離の関数として傾転を決定することであって、該関数は、該縮小した距離がゼロに近づくにつれて、該傾転が９０度に近づくように定義され、該傾転は、該標的位置から上向きベクトルに対する角度を特定する、ことと、
（Ｅ）該傾転、該縮小した距離、および該標的位置に従って決定される第２の場所に該バーチャルカメラを配置することであって、該バーチャルカメラの位置は、一式のパラメータによって画定され、該配置することは、該３次元モデルの湾曲により引き起こされる転回を低減するように該カメラを回転させることを含む、ことと
を含む、方法を該コンピュータデバイスに行わせる、有形コンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
（発明の分野）
本発明は、３次元環境内においてナビゲートするステップに関する。
【背景技術】
【０００２】
３次元データを表示するために、３次元環境を通してナビゲートするためのシステムが存在する。３次元環境は、３次元データが表示するものを定義する、バーチャルカメラを含む。バーチャルカメラは、その位置および配向に従った視点を有する。バーチャルカメラの視点を変更することによって、ユーザは、３次元環境を通してナビゲートすることができる。
【０００３】
３次元環境を通してナビゲートするためにバーチャルカメラを使用する、一つの種類のシステムは、地理情報システムである。地理情報システムは、地球の実質的に球形の３次元モデルを記憶し、取り出し、操作し、表示するためのシステムである。３次元モデルは、山、谷、および峡谷等の地形にテクスチャマッピングされる衛星画像を含み得る。さらに、３次元モデルは、建造物および他の３次元特徴を含み得る。
【０００４】
地理情報システムにおけるバーチャルカメラは、異なる視点から地球の球形３次元モデルを視認し得る。地球のモデルの空中視点が、衛星画像を示し得るが、地形および建造物は見えにくい場合がある。一方で、モデルの地表レベル視点が、地形および建造物を詳細に示し得る。現在のシステムでは、空中視点から地表レベル視点へナビゲートすることは、ユーザにとって困難かつ方向感覚を失わせるものとなる場合がある。
【０００５】
ユーザにとって方向感覚を失わせることが少ない、空中視点から地表レベル視点にナビゲートするための方法およびシステムが必要とされる。
【発明の概要】
【課題を解決するための手段】
【０００６】
本発明は、３次元環境内においてナビゲートするステップに関する。本発明の実施形態では、コンピュータ実装方法が、３次元環境内においてバーチャルカメラをナビゲートンする。方法は、３次元環境内における標的を決定するステップを含む。方法はさらに、バーチャルカメラの第１の場所と３次元環境内における標的との間の距離を決定するステップと、縮小した距離を決定するステップと、縮小した距離に従って傾転を決定するステップとを含む。最終的に、方法は、傾転、縮小した距離、および標的に従って、第２の場所にバーチャルカメラを配置するステップを含む。
【０００７】
第２の実施形態では、システムが、３次元環境内においてバーチャルカメラをナビゲートする。システムは、３次元環境内における標的を決定する、標的モジュールを含む。起動されると、傾転計算機モジュールが、バーチャルカメラの第１の場所と３次元環境内における標的との間の距離を決定し、縮小した距離を決定し、縮小した距離の関数として傾転を決定する。また、起動されると、ポジショナモジュールが、傾転、縮小した距離、および標的に従って決定される第２の場所にバーチャルカメラを配置する。最終的に、システムは、バーチャルカメラと標的との間の距離が閾値を下回るまで、傾転計算機およびポジショナモジュールを繰り返し起動する、コントローラモジュールを含む。
【０００８】
第３の実施形態では、コンピュータ実装方法が、３次元環境内においてバーチャルカメラをナビゲートする。方法は、３次元環境内における標的を決定するステップと、バーチャルカメラの急降下パラメータを更新するステップと、急降下パラメータによって画定される新しい場所にバーチャルカメラを配置するステップとを含む。急降下パラメータは、標的から上向きに方向付けられたべクトルに対する傾転値と、ベクトルに対する方位角値と、標的とバーチャルカメラとの間の距離値とを含む。
【０００９】
バーチャルカメラを傾転し、バーチャルカメラと標的との間の距離を縮小することによって、バーチャルカメラが標的に向かって急降下する。このように、本発明の実施形態は、ユーザにとって方向感覚を失わせることが少ない方式で、空中視点から地表レベル視点にバーチャルカメラをナビゲートする。
【００１０】
本明細書は、例えば、以下の項目も提供する。
（項目１）
３次元環境内においてバーチャルカメラをナビゲートするためのコンピュータ実装方法であって、
（Ａ）該３次元環境内における標的を決定することと、
（Ｂ）バーチャルカメラの第１の場所と該３次元環境内における該標的との間の距離を決定することと、
（Ｃ）縮小した距離を決定することと、
（Ｄ）該縮小した距離に従って傾転を決定することと、
（Ｅ）該傾転、該縮小した距離、および該標的に従って決定される第２の場所に該バーチャルカメラを配置することであって、該バーチャルカメラの該位置は、一式のパラメータによって画定される、ことと
を含む、方法。
（項目２）
（Ｆ）前記バーチャルカメラと前記標的との間の前記距離が閾値を下回るまで、ステップ（Ｂ）からステップ（Ｅ）までを繰り返すことをさらに含む、項目１に記載の方法。
（項目３）
前記ステップ（Ｄ）の決定することは、前記縮小した距離の関数として前記傾転を決定することを含み、該関数は、該縮小した距離がゼロに近づくにつれて、該傾転が９０度に近づくように定義される、項目２に記載の方法。
（項目４）
前記ステップ（Ｄ）の決定することは、前記縮小した距離の前記関数を使用して前記傾転を決定することをさらに含み、該関数は、前記距離が減少するにつれて、該傾転がより迅速に９０度に近づくように定義される、項目３に記載の方法。
（項目５）
前記ステップ（Ｅ）の配置することは、
（１）前記標的の中へ前記バーチャルカメラを平行移動させることと、
（２）前記傾転に合致するように該バーチャルカメラに角度を付けることと、
（３）前記縮小した距離だけ該標的の外へ該バーチャルカメラを平行移動させることと
を含む、項目３に記載の方法
（項目６）
前記ステップ（Ａ）の決定することは、
（１）ユーザによって選択される点を通して、前記バーチャルカメラの焦点から射線を延在させることと、
（２）該射線と前記３次元環境内における３次元モデルとの間の交差点を決定することと、
（３）該交差点において該３次元環境内における標的を決定することと
を含む、項目３に記載の方法。
（項目７）
前記ステップ（Ｅ）の配置することは、転回を低減または排除するように前記カメラを回転させることを含む、項目６に記載の方法。
（項目８）
前記回転させることは、前記第１の場所と前記３次元モデル内における地球のモデルの中心とを接続する第１の線分と、前記第２の場所と該地球のモデルの該中心とを接続する第２の線分との間の角度によって、前記カメラを回転させることを含む、項目７に記載の方法。
（項目９）
（Ｆ）前記バーチャルカメラが前記第１の場所および前記第２の場所にあるときに、前記標的が該バーチャルカメラのビューポート上の同じ点の上に投影するように、前記３次元環境内における地球のモデルを回転させることと、
（Ｇ）該バーチャルカメラと該標的との間の前記距離が閾値を下回るまで、ステップ（Ｂ）からステップ（Ｆ）までを繰り返すことと
をさらに含む、項目１に記載の方法。
（項目１０）
前記ステップ（Ｆ）の回転させることは、前記第１の場所と前記３次元モデル内における地球のモデルの中心とを接続する第１の線分と、前記第２の場所と該地球のモデルの該中心とを接続する第２の線分との間の角度によって、前記傾転の方向に、該地球のモデルを回転させることを含む、項目９に記載の方法。
（項目１１）
（Ｆ）前記バーチャルカメラの前記位置が前記３次元環境内における３次元モデルの地形より上側にあるように、該バーチャルカメラを再配置することと、
（Ｇ）該バーチャルカメラと前記標的との間の前記距離が閾値を下回るまで、ステップ（Ｂ）からステップ（Ｆ）までを繰り返すことと
をさらに含む、項目１に記載の方法。
（項目１２）
前記ステップ（Ａ）の決定することは、
（Ｆ）前記標的の前記位置が前記３次元環境内における３次元モデルの地形より上側にあるように、該標的を再配置することと、
（Ｇ）前記バーチャルカメラと該標的との間の前記距離が閾値を下回るまで、ステップ（Ｂ）からステップ（Ｆ）までを繰り返すことと
を含む、項目１に記載の方法。
（項目１３）
前記ステップ（Ｃ）の決定することは、前記距離を対数的に縮小することを含む、項目１に記載の方法。
（項目１４）
３次元環境内においてバーチャルカメラをナビゲートするためのシステムであって、
該３次元環境内における標的を決定する、標的モジュールと、
起動されると、バーチャルカメラの第１の場所と該３次元環境内における該標的との間の距離を決定し、縮小した距離を決定し、および該縮小した距離の関数として傾転を決定する、傾転計算機モジュールと、
起動されると、該傾転、該縮小した距離、および該標的に従って決定される第２の場所に該バーチャルカメラを配置する、ポジショナモジュールであって、該バーチャルカメラの該位置は、一式のパラメータによって画定される、ポジショナモジュールと、
該バーチャルカメラと該標的との間の該距離が閾値を下回るまで、該傾転計算機モジュールおよび該ポジショナモジュールを繰り返し起動する、コントローラモジュールと
を備えている、システム。
（項目１５）
前記傾転を決定するために前記傾転計算機によって使用される前記関数は、前記縮小した距離がゼロに近づくにつれて、該傾転が９０度に近づくように定義される、項目１４に記載のシステム。
（項目１６）
前記傾転を決定するために前記傾転計算機によって使用される前記関数は、前記縮小した距離がゼロに近づくにつれて、該傾転がより迅速に９０度に近づくように、定義される、項目１５に記載のシステム。
（項目１７）
前記ポジショナモジュールは、前記標的の中へ前記バーチャルカメラを平行移動させ、前記傾転に合致するように該バーチャルカメラを傾斜させ、前記縮小した距離だけ該標的の外へ該バーチャルカメラを平行移動させる、項目１６に記載のシステム。
（項目１８）
前記標的モジュールは、ユーザによって選択される点を通して、前記バーチャルカメラの焦点から射線を延在させ、該射線と前記３次元環境内における３次元モデルとの間の交差点を決定し、該交差点で該３次元環境内における標的を決定する、項目１７に記載のシステム。
（項目１９）
転回を低減または排除するように前記カメラを回転させる、転回補償器モジュールをさらに備えており、
前記コントローラモジュールは、前記バーチャルカメラと前記標的との間の前記距離が閾値を下回るまで、該転回補償器モジュールを繰り返し起動する、項目１８に記載のシステム。
（項目２０）
前記転回補償器モジュールは、前記第１の場所と前記３次元モデル内における地球のモデルの中心とを接続する第１の線分と、前記第２の場所と該地球のモデルの該中心とを接続する第２の線分との間の角度によって、前記カメラを回転させる、項目１９に記載のシステム。
（項目２１）
起動されると、前記バーチャルカメラが前記第１の場所および前記第２の場所にあるときに、前記標的が該バーチャルカメラのビューポート上の同じ点の上に投影するように前記３次元環境内における地球のモデルを回転させる、画面空間モジュールをさらに備えており、
前記コントローラモジュールは、該バーチャルカメラと該標的との間の前記距離が閾値を下回るまで、該モデルモジュールを繰り返し起動する、項目１８に記載のシステム。
（項目２２）
前記画面空間モジュールは、前記第１の場所と前記３次元モデル内における地球のモデルの中心とを接続する第１の線分と、前記第２の場所と該地球のモデルの該中心を接続する第２の線分との間の角度によって、前記傾転の方向に、該地球のモデルを回転させる、項目２１に記載のシステム。
（項目２３）
起動されると、前記バーチャルカメラの前記位置が前記３次元環境内における３次元モデルの地形より上側にあるように該バーチャルカメラを再配置する、地形調整器モジュールをさらに備えており、
前記コントローラモジュールは、該バーチャルカメラと前記標的との間の前記距離が閾値を下回るまで、該地形調整器モジュールを繰り返し起動する、項目１４に記載のシステム。
（項目２４）
起動されると、前記標的の前記位置が前記３次元環境内における３次元モデルの地形より上側にあるように前記標的を再配置する、地形調整器モジュールをさらに備えており、
前記コントローラモジュールは、前記バーチャルカメラと該標的との間の前記距離が閾値を下回るまで、該地形調整器モジュールを繰り返し起動する、項目１４に記載のシステム。
（項目２５）
前記傾転計算機モジュールは、前記距離を対数的に縮小する、項目１４に記載のシステム。
（項目２６）
３次元環境内においてバーチャルカメラをナビゲートするためのコンピュータ実装方法であって、
（Ａ）該３次元環境内における標的を決定することと、
（Ｂ）該バーチャルカメラの急降下パラメータであって、該標的から上向きに方向付けられたべクトルに対する傾転値と、該ベクトルに対する方位角値と、該標的と該バーチャルカメラとの間の距離値とを含む、急降下パラメータを更新することと、
（Ｃ）該急降下パラメータによって画定される新しい場所に該バーチャルカメラを配置することと
を含む、方法。
（項目２７）
（Ｄ）前記バーチャルカメラが前記新しい場所にあるときに、前記標的が該バーチャルカメラのビューポート上の同じ点の上に投影するように、前記３次元環境内における地球のモデルを回転させることをさらに含む、項目２６に記載の方法。
（項目２８）
前記ステップ（Ａ）の決定することは、
（１）ユーザによって選択される点を通して、前記バーチャルカメラの焦点から射線を延在させることと、
（２）該射線と前記３次元環境内における３次元モデルとの間の交差点を決定することと、
（３）該交差点において該３次元環境内における標的を決定することと
を含む、項目２６に記載の方法。
（項目２９）
前記ステップ（Ｃ）の配置することは、転回を低減または排除するように前記バーチャルカメラを回転させることを含む、項目２６に記載の方法。
（項目３０）
３次元環境内においてバーチャルカメラをナビゲートするためのシステムであって、
該３次元環境内における標的を決定する、標的モジュールと、
該バーチャルカメラの急降下パラメータであって、該標的から上向きに方向付けられたべクトルに対する傾転値と、該ベクトルに対する方位角値と、該標的と該バーチャルカメラとの間の距離値とを含む、急降下パラメータを更新する、傾転計算機モジュールと、
該急降下パラメータによって画定される新しい場所に該バーチャルカメラを配置する、ポジショナモジュールと
を備えている、システム。
（項目３１）
３次元環境内においてバーチャルカメラをナビゲートするためのシステムであって、
該３次元環境内における標的を決定する手段と、
バーチャルカメラの第１の場所と該３次元環境内における該標的との間の距離を決定する手段と、
縮小した距離を決定する手段と、
該縮小した距離に従って傾転を決定する手段と、
該傾転、該縮小した距離、および該標的に従って決定される第２の場所に該バーチャルカメラを配置する手段であって、該バーチャルカメラの該位置は、一式のパラメータによって画定される、手段と
を備える、システム。
（項目３２）
３次元環境内においてバーチャルカメラをナビゲートするためのシステムであって、
該３次元環境内における標的を決定する手段と、
バーチャルカメラの第１の場所と該３次元環境内における該標的との間の距離を決定する手段と、
縮小した距離を決定する手段と、
該縮小した距離に従って傾転を決定する手段と、
該傾転、該縮小した距離、および該標的に従って決定される第２の場所に該バーチャルカメラを配置する手段であって、該バーチャルカメラの該位置は、一式のパラメータによって画定される、手段と
を備えている、システム。
（項目３３）
その上にコンピュータ実行可能命令が記憶されている、有形のコンピュータ可読媒体であって、該コンピュータ実行可能命令が、コンピュータデバイスによって実行されると、
（Ａ）３次元環境内における標的を決定することと、
（Ｂ）バーチャルカメラの第１の場所と該３次元環境内における該標的との間の距離を決定することと、
（Ｃ）縮小した距離を決定することと、
（Ｄ）該縮小した距離に従って傾転を決定することと、
（Ｅ）該傾転、該縮小した距離、および該標的に従って決定される第２の場所に該バーチャルカメラを配置することであって、該バーチャルカメラの該位置は、一式のパラメータによって画定される、ことと
を含む、方法を該コンピュータデバイスに行わせる、有形コンピュータ可読媒体。
本発明のさらなる実施形態、特徴、および利点、ならびに本発明の種々の実施形態の構造および動作を、添付図面を参照して以下で詳細に説明する。
【図面の簡単な説明】
【００１１】
本明細書に組み込まれ、本明細書の一部を形成する添付図面は、本発明を図示し、説明とともに、さらに本発明の原則を説明し、かつ当業者が本発明を作製し、使用することを可能にする働きをする。
【図１Ａ】図１Ａ−図１Ｄは、本発明の実施形態における、いくつかの急降下軌道を図示する概略図である。
【図１Ｂ】図１Ａ−図１Ｄは、本発明の実施形態における、いくつかの急降下軌道を図示する概略図である。
【図１Ｃ】図１Ａ−図１Ｄは、本発明の実施形態における、いくつかの急降下軌道を図示する概略図である。
【図１Ｄ】図１Ａ−図１Ｄは、本発明の実施形態における、いくつかの急降下軌道を図示する概略図である。
【図２】図２は、地理情報システムのユーザインターフェース例のスクリーンショットである。
【図３Ａ】図３Ａ−図３Ｂは、本発明の実施形態による、急降下ナビゲーションのための方法を図示するフローチャートである。
【図３Ｂ】図３Ａ−図３Ｂは、本発明の実施形態による、急降下ナビゲーションのための方法を図示するフローチャートである。
【図４】図４−図５は、図３Ａ−図３Ｂの方法で使用され得る、標的を決定するための方法を図示する概略図である。
【図５】図４−図５は、図３Ａ−図３Ｂの方法で使用され得る、標的を決定するための方法を図示する概略図である。
【図６】図６は、図３Ａ−図３Ｂの方法の実施例における、初期傾転による急降下ナビゲーションを図示する概略図である。
【図７Ａ】図７Ａ−図７Ｃは、図３Ａ−Ｂの方法で使用され得る、縮小した距離およびカメラ傾転を決定するための方法を図示するフローチャートである。
【図７Ｂ】図７Ａ−図７Ｃは、図３Ａ−Ｂの方法で使用され得る、縮小した距離およびカメラ傾転を決定するための方法を図示するフローチャートである。
【図７Ｃ】図７Ａ−図７Ｃは、図３Ａ−Ｂの方法で使用され得る、縮小した距離およびカメラ傾転を決定するための方法を図示するフローチャートである。
【図８Ａ】図８Ａは、距離に従って傾転を決定するための機能を図示するチャートである。
【図８Ｂ】図８Ｂは、図８Ａの機能を使用した急降下軌道例を示す概略図である。
【図９】図９は、図３Ａ−Ｂの方法で使用され得る、転回を低減するための方法を図示する概略図である。
【図１０】図１０は、図３Ａ−Ｂの方法で使用され得る、標的の画面空間投影を修復するための方法を図示する概略図である。
【図１１Ａ】図１１Ａ−１１Ｂは、図３Ａ−Ｂの方法で使用され得る、ストリーム配信地形に対する急降下軌道を調整するための方法を示す。
【図１１Ｂ】図１１Ａ−１１Ｂは、図３Ａ−Ｂの方法で使用され得る、ストリーム配信地形に対する急降下軌道を調整するための方法を示す。
【図１２】図１２は、本発明の実施形態による、急降下ナビゲーションのための地理情報システムを示すアーキテクチャ図である。
【００１２】
要素が最初に出現する図面は、典型的には、対応する参照番号における１つまたは複数の最左の数字によって示される。図面中、類似番号は、同一または機能的に同様の要素を示し得る。
【発明を実施するための形態】
【００１３】
本発明は、３次元環境内においてバーチャルカメラを移動させるステップに関する。以下の発明を実施するための形態では、「一実施形態」、「実施形態」、「実施形態例」等への言及は、説明される実施形態が、特定の特徴、構造、または特性を含み得るが、全ての実施形態が必ずしも、特定の特徴、構造、または特性を含まなくてもよいことを示す。また、そのような語句は、必ずしも同じ実施形態を指しているとは限らない。さらに、特定の特徴、構造、または特性が、実施形態と関連して説明される時に、明示的に説明されるか否かを問わず、他の実施形態と関連して、そのような特徴、構造、または特性を達成することが当業者の知識の範囲内であることが提示される。
【００１４】
本発明の実施形態によれば、急降下ナビゲーションが、カメラを移動させて、標的に対する所望の位置および配向を達成する。急降下パラメータが、標的に対するカメラの位置および配向を符号化する。急降下パラメータは、（１）標的までの距離、（２）標的における垂直線に対する傾転、（３）方位角、および随意で、（４）転回を含み得る。実施例では、方位角は、カメラの基本方位であり得る。パラメータおよび実践における動作のそれぞれを、以下で説明する。
【００１５】
急降下ナビゲーションは、スティック型カメラと類似し得る。この類似において、バーチャルカメラは、スティックによって標的点に接続される。ベクトルは、標的点から上方を向く。上向きベクトルは、例えば、３次元モデルの表面に垂直であり得る。３次元モデルが球形である場合（地球の３次元モデル等)、ベクトルは、３次元モデルの中心から標的を通って延在し得る。同様に、カメラが傾転するにつれて、スティックはベクトルから離れるように傾斜する。実施形態では、標的点に対するカメラの方位角を変更することによって、スティックもベクトルの周りを回転することができる。
【００１６】
図１Ａは、本発明の実施形態による、単純急降下軌道を図示する概略図１００を示す。概略図１００は、場所１０２におけるバーチャルカメラを示す。場所１０２では、バーチャルカメラは空中視点を有する。示された実施例では、ユーザが、空中視点から建造物１０８の地表レベル視点にナビゲートすることを希望する。場所１０２では、バーチャルカメラが真っ直ぐ下に配向され、したがって、その傾転はゼロであり、バーチャルカメラは標的１１０から距離１１６にある。
【００１７】
急降下軌道上の次の位置を決定するために、距離１１６は、新しい距離１１８を決定するように縮小される。示された実施例では、バーチャルカメラと標的との間の距離が縮小される。傾転１１２も決定される。傾転１１２は、標的１１０から上向きに方向付けられたべクトルと、場所１０４と標的１１２とを接続する線分との間の角度である。傾転１１２は、縮小した距離１１８に従って決定され得る。急降下軌道上のカメラの次の位置は、傾転１１２および距離１１８に対応する。カメラは、場所１０４に再配置される。場所１０４は、標的１１２から離れた距離１１８にある。最終的に、カメラは、標的１１０に対面するように傾転１１２によって回転させられる。
【００１８】
プロセスは、バーチャルカメラが標的１１０に到達するまで繰り返される。バーチャルカメラが標的１１０に到達すると、傾転は９０度であり、バーチャルカメラは建造物１０８に対面する。このように、本発明の実施形態は、場所１０２における空中視点から建造物１０８の地表レベル視点まで容易にナビゲートする。急降下ナビゲーションの動作、その代替実施形態および他の実施形態についてのさらなる詳細を、以下で説明する。
【００１９】
概略図１００の急降下軌道はまた、上述の急降下パラメータおよびスティック類似物に関して説明され得る。概略図１００の急降下軌道中、傾転値は９０度まで増加し、距離値はゼロに減少し、方位角値は一定のままである。スティック類似物との関連で、ベクトルは、標的１１０から上方を向く。概略図１００の急降下軌道中、スティックの長さは減少し、スティックはベクトルから離れるように傾斜する。概略図１００の急降下軌道は、本発明の一実施形態にすぎない。急降下パラメータは、他の軌道を形成するために他の方法で更新され得る。
【００２０】
図１Ｂは、本発明の実施形態における別の軌道を図示する概略図１４０を示す。概略図１４０の軌道は、標的１１０の周囲をヘリコプターで飛ぶバーチャルカメラを示す。概略図１４０は、位置１４８から開始するバーチャルカメラを示す。軌道に沿って進行し、バーチャルカメラは、標的から等距離のままである。急降下パラメータに関して、距離は一定のままであるが、傾転および方位角値は、カメラが軌道に沿って移動するにつれて変化し得る。スティック類似物に関して、スティックの長さは一定のままであるが、スティックは標的の周りを旋回する。このように、カメラは、標的における原点を有する球体の表面に沿って移動する。
【００２１】
概略図１４０に示された軌道は、例えば、異なる視点から標的点を視認するために使用され得る。しかしながら、概略図１４０の軌道は、必ずしも空中視点から地表レベル視点にユーザを移行させるわけではない。
【００２２】
また、図１Ｂは、標的１１０がバーチャルカメラの中心から外へ突出する必要がないことも示す。これを、図４および５に関してより詳細に説明する。
【００２３】
図１Ｃは、異なる視点からの標的と、空中視点から地表レベル視点への移行との両方を示す、急降下軌道を図示する概略図１７０を示す。バーチャルカメラは、位置１７４から概略図１７０の急降下軌道を開始する。バーチャルカメラが場所１７４から場所１７６に移動するにつれて、バーチャルカメラは、標的に近づき、概略図１００の急降下軌道と同様に標的に対して傾転する。しかし、バーチャルカメラも、概略図１４０の軌道と同様に、標的の周囲をヘリコプターで飛ぶ。概略図１７０に示された急降下軌道は、バーチャルカメラが標的１１０に到達するまで継続する。急降下パラメータに関して、傾転値は９０度まで増加し、距離値はゼロに減少し、方位角値は変化する。スティック類似物に関して、スティックの長さは減少し、スティックは傾転するとともに、標的１１０から上向きに方向付けられたべクトルの周りを回転する。
【００２４】
図１Ｄは、３次元空間を通してナビゲートするために、急降下軌道がどのように使用され得るかを図示する概略図１８０を示す。３次元空間は、２つの建造物１８２および１８４を含む。建造物１８２の最上部で、バーチャルカメラが場所１８６に位置する。標的１１０は、建造物１８４の最上部にある。標的１１０は、図４および５に関して以下で説明されるように、ユーザ入力に応じて選択され得る。バーチャルカメラは、急降下軌道１８８に沿って、建造物１８２における場所１８６から建造物１８４における標的１１０に移動する。言い換えれば、バーチャルカメラは、建造物１８２から建造物１８４に急降下する。このように、３次元空間を通してナビゲートするために、急降下軌道が使用され得る。
【００２５】
別の実施形態では、標的場所は動いていてもよい。その実施形態では、移動標的を追跡するために、急降下ナビゲーションが使用され得る。移動標的を伴う急降下軌道を計算するステップの実施形態例を、以下で詳細に説明する。
【００２６】
急降下ナビゲーションは、地球の３次元モデルを含む３次元環境内においてナビゲートするために、地理情報システムによって使用され得る。図２は、地理情報システムのユーザインターフェース２００のスクリーンショットである。ユーザインターフェース２００は、地理情報／データを表示するための表示域２０２を含む。上述のように、表示域２０２に表示されるデータは、バーチャルカメラの視点からである。実施形態では、視点は、例えば、最上部が取り除かれた３次元ピラミッド等の錐台によって画定される。錐台内の地理データは、バーチャルカメラからの距離に応じて、詳細の様々なレベルで表示することができる。
【００２７】
表示域２０２に表示される地理データ例は、地球の画像を含む。これらの画像は、地球の３次元モデルを作成する地球の地形を表す、幾何学形状上にレンダリングされることができる。表示され得る他のデータは、建造物の３次元モデルを含む。
【００２８】
ユーザインターフェース２００は、バーチャルカメラの配向を変更するための制御部２０４を含む。制御部２０４は、ユーザが、例えば、バーチャルカメラの高度、緯度、経度、ピッチ、ヨー、および転回を変更することを可能にする。実施形態では、制御部２０４は、マウス等のコンピュータポインティングデバイスを使用して操作される。バーチャルカメラの配向が変化するにつれて、バーチャルカメラの錐台および表示される地理データも変化する。制御部２０４に加えて、ユーザは、例えば、コンピュータキーボードまたはジョイスティック等の他のコンピュータ入力デバイスを使用して、バーチャルカメラの配向を制御することもできる。
【００２９】
示された実施例では、バーチャルカメラは、地球の空中視点を有する。実施形態では、ユーザは、表示域２００上の位置を選択することによって、標的を選択し得る。次いで、カメラは、図１に関して説明される急降下軌道を使用して、標的の地表視点まで急降下し得る。
【００３０】
地理情報システムは、クライアント・サーバコンピュータアーキテクチャを使用して動作させることができる。そのような構成では、ユーザインターフェース２００は、クライアントマシーン上に存在する。クライアントマシーンは、プロセッサ、ローカルメモリ、ディスプレイ、ならびに、キーボード、マウス、および／またはジョイスティック等の１つ以上のコンピュータ入力デバイスを伴う、汎用コンピュータとなり得る。代替として、クライアントマシーンは、例えば、携帯電話機等の特殊コンピュータデバイスとなり得る。クライアントマシーンは、インターネット等の１つ以上のネットワーク上で１つ以上のサーバと通信する。クライアントマシーンと同様に、サーバは、クライアントにデータを供給することが可能な任意の汎用コンピュータを使用して実装することができる。地理情報システムクライアントのアーキテクチャを、図１２に関してより詳細に説明する。
【００３１】
図３は、本発明の実施形態による、急降下ナビゲーションのための方法３００を図示するフローチャートである。方法３００は、ステップ３０２において標的を決定することによって開始する。標的は、図２の表示域２０２上のユーザ選択に従って決定され得る。標的がどのように決定されるかを、図４および５に関してより詳細に論議する。
【００３２】
ステップ３０４では、新しい急降下パラメータが決定され得、バーチャルカメラが再配置される。新しい急降下パラメータは、傾転と、方位角と、バーチャルカメラと標的との間の距離とを含み得る。実施形態では、バーチャルカメラと標的との間の距離は、対数的に縮小され得る。傾転角度は、縮小した距離に従って決定され得る。一実施形態では、バーチャルカメラは、標的まで平行移動し、傾転によってバーチャルカメラを傾斜し、新しい距離だけ標的から離れるように平行移動することによって、再配置され得る。ステップ３０４を、図３Ｂに関してより詳細に説明する。さらに、急降下パラメータを計算するための１つの可能な方法を、図７Ａ−Ｃおよび図８Ａ−Ｂに関して詳細に論議する。
【００３３】
カメラが再配置されると、地球の湾曲が転回を導入し得る。転回は、ユーザにとって方向感覚を失わせるものとなる場合がある。転回を低減するために、バーチャルカメラが、ステップ３０６で、地球の湾曲を補償するように回転させられる。回転を低減するためにカメラを回転させるステップを、図９に関してより詳細に論議する。
【００３４】
カメラを再配置し、回転させる際に、標的は、図２の表示域２０２上の異なる場所に出現し得る。表示域２０２上の標的の位置を変更することは、ユーザにとって方向感覚を失わせるものとなる場合がある。ステップ３０８では、地球のモデルを回転させることによって、表示域上の標的の投影が修復される。表示域投影を修復するステップを、図１０に関してより詳細に論議する。
【００３５】
カメラが再配置され、モデルが回転させられると、地球に関するより詳細な情報が、ＧＩＳクライアントにストリーム配信され得る。例えば、ＧＩＳクライアントは、地形または建造物に関するより詳細な情報を受信し得る。別の実施例では、急降下軌道は、地形または建造物と衝突し得る。結果として、バーチャルカメラまたは標的の位置の調整が、ステップ３１０で行われ得る。地形データのストリーム配信による調整を、図１１Ａ−Ｂに関してより詳細に論議する。
【００３６】
最終的に、ステップ３０４から３１０は、決定ブロック３１２でバーチャルカメラが標的に近くなるまで繰り返される。一実施形態では、プロセスは、バーチャルカメラが標的の場所になるまで繰り返し得る。別の実施形態では、プロセスは、バーチャルカメラと標的との間の距離が閾値を下回るまで繰り返し得る。このように、バーチャルカメラは、標的を歪めるほど近くなりすぎることなく、標的の接近図を撮影する。
【００３７】
一実施形態では、方法３００はまた、移動標的に向かってバーチャルカメラをナビゲートし得る。距離が標的の速度に従ってステップ３０２において縮小される場合、方法３００は、特定距離を置いてバーチャルカメラに標的を追跡させ得る。
【００３８】
図３Ｂは、図３Ａの方法３００のステップ３０４をより詳細に示す。上述のように、ステップ３０４は、急降下パラメータを更新するステップと、急降下パラメータに従ってバーチャルカメラを再配置するステップとを含む。急降下パラメータは、傾転と、方位角と、バーチャルカメラと標的との間の距離とを含み得る。ステップ３１４では、バーチャルカメラが傾転される。言い換えれば、標的とバーチャルカメラとを接続する線分と、標的から上向きに方向付けられたべクトルとの間の角度が増加させられる。ステップ３１６では、バーチャルカメラの方位角が変更される。方位角に従って、カメラは、標的から上向きに方向付けられたべクトルの周りを回転させられる。最終的に、カメラは、標的から離れるように新しい距離を置くように配置される。新しい傾転、方位角、および距離値を計算するための１つの方法を、図７Ａ−Ｃおよび図８Ａ−Ｂに関して論議する。
【００３９】
図４−６、７Ａ−Ｃ、８Ａ−Ｂ、９−１０、および１１Ａ−Ｂは、図３Ａ−Ｂの方法３００を詳述する。それらは、方法３００の種々の代替実施形態を提供する。しかしながら、それらは方法３００を限定するように意図されていない。
【００４０】
図４および５は、図３のステップ３０２で使用され得る、標的を決定するための方法を図示する概略図である。図４は、概略図４００を示す。概略図４００は、地球４０２のモデルを示す。概略図４００はまた、バーチャルカメラの焦点４０６も示す。バーチャルカメラは、図２に関して説明されるように、情報を撮影するため、および表示するために使用される。バーチャルカメラは、焦点距離４０８およびビューポート４１０を有する。ビューポート４１０は、図２の表示域２０２に対応する。ユーザは、表示域２０２上の位置を選択し、該位置は、ビューポート４１０上の点４１２に対応する。
【００４１】
標的は、モデルとの交差点を決定するために、バーチャルカメラから射線を延在させることによって決定される。概略図４００では、射線４１４が、点４１２を通って焦点４０６から延在する。射線４１４は、場所４０４においてモデル４０２と交差する。したがって、標的は、場所４０４におけるモデル４０２の一部分である。代替実施形態では、射線が、ビューポート４１０の中心を通って焦点４０６から延在させられ得る。
【００４２】
図５は、オプション機能に従って、図４で決定された標的場所を調整するステップを図示する。図５は、概略図５００を示す。概略図５００は、場所５０６におけるバーチャルカメラと、３次元モデル内の建造物５０２とを示す。射線が、場所５０６から建造物５０２に延在して交差点５１０を決定する。しかしながら、カメラの標的場所は、建造物５０２自体でなくてもよい。標的場所は、建造物５０２の視認を提供する、建造物５０２からオフセットされた場所であり得る。よって、標的は、場所５０８に設定される。バーチャルカメラは、軌道５０４に沿って場所５０６から場所５０８に急降下する。このように、バーチャルカメラは、垂直の空中視点から建造物５０２の水平の地表視点に移行する。
【００４３】
バーチャルカメラの開始位置は、垂直である必要はない。図６は、初期の非ゼロ傾転による急降下ナビゲーションを図示する概略図６０２を示す。概略図６０２は、初期傾転による場所６０２におけるバーチャルカメラを示す。バーチャルカメラは、軌道６０６に沿って場所６０２から場所６０４まで急降下する。
【００４４】
図３に関して上記で説明されるように、いったん標的場所が決定されると、急降下軌道におけるバーチャルカメラの次の位置を決定するために、ステップ３０６においていくつかの計算が行われる。具体的には、バーチャルカメラの新しい傾転、およびバーチャルカメラと標的との間の新しい縮小した距離が決定される。図７Ａ−Ｃおよび図８Ａ−Ｂは、縮小した距離および傾転がどのように決定されるかを図示する。図７Ａは、傾転および縮小した距離を決定するための方法７００を図示するフローチャートである。
【００４５】
方法７００は、ステップ７０２で縮小した距離を対数的に決定することによって開始する。高い空中距離においては、ユーザにとって関心のデータがあまり多くない。しかしながら、カメラが地表に近づくにつれて、ユーザにとって関心のデータがより多くある。急降下軌道の高い空中部分を通して、迅速にバーチャルカメラを移動させるため、対数関数が有用である。しかしながら、対数関数は、地表に近づくにつれて、バーチャルカメラをよりゆっくりと移動させる。対数関数を使用する一実施形態では、距離が対数レベルに変換され得る。対数レベルは、変化パラメータによって増加させられ得る。次いで、対数レベルは、指数関数を使用して、距離に逆変換される。一連の式は、以下の通りであり得る。
【００４６】
Ｌ＝−ｌｏｇ２（Ｃ＊０．１）＋４．０
Ｌ’＝Ｌ＋Δ
Ｒ＝１０＊２（４．０−Ｌ’）
式中、Δは、変化パラメータであり、Ｌは、対数レベルであり、Ｃは、現在の距離であり、Ｒは、縮小した距離である。
【００４７】
いったん縮小した距離がステップ７０２で決定されると、距離に従って傾転が決定される。方法７００は、傾転を決定するための２つの代替ステップを図示する。ステップ７１０では、絶対傾転関数を適用することによって、傾転が決定される。ステップ７２０では、増分傾転関数を適用することによって、傾転が決定される。
【００４８】
図７Ｂは、ステップ７１０の絶対傾転関数をより詳細に図示する。絶対傾転関数は、角距離に対する傾転を定義する。これには、所定の急降下軌道を作成する効果がある。ステップ７１２では、３つの距離値が対数レベルに変換される。対数レベルに変換される３つの距離は、（１）ステップ７０２で計算される標的までの縮小した距離、（２）急降下軌道の開始時の標的までの距離、および（３）図３のステップ３１２について説明されるような、急降下軌道を終了する閾値距離である。距離を対数レベルに変換するために使用される式は、以下の通りであり得る。
【００４９】
ＬＳ＝−ｌｏｇ２（Ｓ＊０．１）＋４．０
ＬＴ＝−ｌｏｇ２（Ｔ＊０．１）＋４．０
ＬＲ＝−ｌｏｇ２（Ｒ＊０．１）＋４．０
式中、Ｓは、開始距離であり、Ｔは、閾値距離であり、Ｒは、縮小した距離であり、ＬＳは、開始対数レベルであり、ＬＴは、閾値対数レベルであり、ＬＲは、縮小した距離の対数レベルである。
【００５０】
ステップ７１４では、対数レベル（ＬＳ、ＬＴ、ＬＲ）、開始傾転値、および終了傾転値に基づいて、傾転値が補間される。非ゼロ開始傾転値を、図６に関して説明する。終了傾転値は、概して９０度となり、それは地面と平行であり得る。実施例では、補間関数は、当業者にとって明白であるように、線形、２次、対数、または他の関数であり得る。線形補間関数例は、以下である。
【００５１】
【数１】
0005507541.tif 000002
式中、αは、新しい傾転値であり、αＥは、終了傾転値であり、αＳは、開始傾転値であり、他の変数は、上記で説明されたように定義される。図３の方法３００との関連で繰り返されると、絶対傾転関数は、所定の急降下軌道をもたらす。しかしながら、以降でより詳細に説明されるように、急降下軌道は、ストリーム配信地形または移動標的により、調整される必要がある。急降下軌道が調整される必要があり得る場合、ステップ７２０のような増分傾転関数が好まれ得る。
【００５２】
図７Ｃは、ステップ７２０における増分傾転関数をより詳細に図示する。増分傾転関数は、傾転の変化を計算し、変化に応じて現在の傾転を漸増する。ステップ７２２では、図７Ｂについて説明されるような絶対傾転関数が、現在の距離に適用される。絶対傾転関数は、第１の傾転値を戻す。ステップ７２４では、絶対傾転関数が再び適用される。このステップでは、絶対傾転関数は、ステップ７０２で計算される縮小した距離に適用される。結果として、絶対傾転関数は、第２の傾転値を戻す。
【００５３】
ステップ７２６では、ステップ７２２で決定された第１の傾転値およびステップ７２４で決定された第２の傾転値に従って、現在の傾転値が調整される。現在の傾転値は、新しい傾転値を決定するために、第２の傾転と第１の傾転との間の差だけ漸増される。使用される式は、以下であり得る。
【００５４】
α＝αＣ＋α２−α１
式中、αＣは、現在の傾転であり、α１は、現在の距離に基づいて計算される第１の傾転であり、α２は、縮小した距離に基づいて計算される第２の傾転であり、αは、新しい傾転である。
【００５５】
図３の方法３００との関連で繰り返されると、ステップ７２０で説明される増分傾転関数は、ストリーム配信地形、移動標的、または衝突に適合することができる急降下軌道をもたらす。しかしながら、静止標的があり、かつストリーム配信地形または衝突がなければ、増分傾転関数は、絶対傾転関数と同じ働きをし得る。
【００５６】
図７Ａを再び参照すると、方位角値がステップ７３０で決定される。一実施形態では、方位角は、ステップ７１０に関して説明されるように、絶対値関数によって決定され得る。別の実施形態では、方位角値は、ステップ７２０に関して説明されるように、増分関数によって決定され得る。上記で説明されるように、増分関数は、ストリーム配信地形や衝突がある場合、または標的が動いている場合に、有利であり得る。
【００５７】
図８Ａ−Ｂは、図７Ａ−Ｃで説明された傾転関数が、どのように急降下軌道に影響を及ぼし得るかを、より詳細に説明する。図８Ａは、カメラの傾転が標的までの距離にどのように対応するかを図示するチャート８００を示す。チャート８００は、関数８０２および関数８０４といった、２つの代替傾転関数を示す。関数８０２は、カメラ傾転と標的までの距離との間の線形対応を有する。関数８０２は、図１に図示されるような湾曲急降下軌道をもたらす。
【００５８】
図７Ａ−Ｃに関して説明される傾転関数は、関数８０４により似ている。関数８０４は、バーチャルカメラが標的場所に近づくにつれて、傾転がより迅速に９０度に近づくように定義される。カメラが傾転するにつれて、ＧＩＳクライアントは、ＧＩＳサーバからより多くのデータを要求する。カメラが標的に近づくにつれて、より迅速に傾転することによって、ＧＩＳクライアントは、ＧＩＳサーバからより少ないデータ要求を行い、したがって、コンピューティング資源を節約する。また、急降下軌道の終了に向かって傾転の大部分を発生させることにより、より満足のいくユーザ体験を提供し得る。関数８０４は、図８Ｂに示された急降下軌道をもたらし得る。
【００５９】
図８Ｂは、図７Ａ−Ｃに関して説明される傾転および距離関数を使用した、急降下軌道例を図示する概略図８５０である。概略図８５０は、バーチャルカメラが、急降下軌道に沿って開始場所８１２から標的場所８１４にどのように進行するかを示す。急降下軌道は、第１の部分８０２および第２の部分８０４に関して説明される。図７Ａに関して説明されるように、バーチャルカメラと標的場所との間の距離は、対数的に減少する。結果として、バーチャルカメラは、急降下軌道の部分８０２を通って迅速に進行する。これによって、ユーザは、広大なほぼ空の空間を通って、より迅速に進行する。しかしながら、バーチャルカメラが部分８０４を通って標的に近づくにつれて、バーチャルカメラは減速し始める。また、部分８０４では、バーチャルカメラが標的場所に近づくにつれて、傾転が９０度により迅速に近づく。
【００６０】
上記のように、急降下軌道の終了に向かって傾転を集中させることにより、コンピューティング資源を節約する。一実施形態では、高トラフィック期間中に、サーバが急降下軌道を改変し得る。その実施形態では、サーバは、急降下軌道の終了に向かって傾転をさらに集中させるように、クライアントに信号伝達し得る。
【００６１】
図４に関して説明される実施形態では、ユーザが標的場所を選択し得る。その実施形態では、地球の湾曲が、バーチャルカメラを地球に対して転回させる場合がある。転回は、ユーザにとって方向感覚を失わせるものとなる場合がある。図９は、図３のステップ３０６で使用され得る、転回を低減するための方法を図示する概略図９００および９５０を示す。
【００６２】
概略図９００は、第１の場所９０６および第２の場所９０８におけるバーチャルカメラを示す。バーチャルカメラは、地球９０２のモデルの表面上の標的に向かって急降下している。モデル９０２は、実質的に球形であり、中心原点９０４を有する。バーチャルカメラが場所９０６から場所９０８に移動するにつれて、地球の湾曲が転回を引き起こす。転回を補償するために、カメラが回転させられ得る。
【００６３】
概略図９５０は、場所９５２まで回転させられたバーチャルカメラを示す。概略図９５０はまた、原点９０４を場所９０６と接続する線分９５６、および原点９０４を場所９５２と接続する線分９５４も示す。転回を補償するために、バーチャルカメラは、線分９５４と線分９５６との間の角度９５８によって回転させられ得る。代替実施形態では、バーチャルカメラは、ほぼ角度９５８によって回転させられ得る。
【００６４】
図９のバーチャルカメラの回転と、図７Ａ−Ｃのバーチャルカメラの配置との間で、標的は、その画面空間投影を変化させ得る。言い換えれば、図２の表示域２０２中の標的の位置が変動し得る。表示域２０２中の標的の位置を変動することは、ユーザにとって方向感覚を失わせるものとなり得る。図１０は、図３のステップ３０８で使用され得る、画面空間投影を修復するための方法を図示する概略図１０００および１０５０を示す。
【００６５】
概略図１０００は、焦点１００２およびビューポート１００４を伴うバーチャルカメラを示す。ビューポート１００４は、図２の表示域２０２に対応する。バーチャルカメラは、地球のモデル１０２２の表面上の場所１００８を伴う標的までの急降下軌道上にある。地球のモデル１０２２は、中心原点１０２４を有する。急降下軌道が開始すると、標的は、ビューポート１００４上の位置１００６の上に投影される。急降下軌道中に発生した回転および再配置により、標的は、ビューポート１００４上の位置１０１０の上に投影される。位置１００６から１０１０まで標的の投影を変更することは、ユーザにとって方向感覚を失わせるものとなり得る。
【００６６】
ユーザの方向感覚の損失を軽減するために、モデル１０２２は、標的の画面空間投影を修復するように回転させられ得る。概略図１０００は、標的場所１００８を焦点１００２と接続する線分１０１４を示す。概略図１０００はまた、焦点１００２をビューポート１００４上の位置１００６と接続する線分１０１６も示す。実施形態では、地球は、ほぼ線分１０１４と線分１０１６との間の角度１０１２によって、原点１０２４の周りを回転させられ得る。
【００６７】
いったん地球が回転させられると、概略図１０５０に図示されるように、標的の画面空間投影が修復される。標的は、ビューポート１００４上の位置１００６の上に投影する場所１０５２にある。標的場所は、回転後に、地球のモデル上の同じ場所であることに留意されたい。しかしながら、モデルの回転は、バーチャルカメラに対して標的場所を変化させる。
【００６８】
図１１Ａ−Ｂは、図３のステップ３１０において使用され得る、ストリーム配信地形に合わせて調整するための方法を示す。図４に関して論議されたように、標的場所は、地球のモデルとの射線の交差点を見出すことによって決定される。バーチャルカメラが標的に近づいて急降下するにつれて、ＧＩＳクライアントは、地球のモデルの地形に関するより詳細な情報を受信する。したがって、より多くの地形データが受信されるにつれて、モデルとの射線の交差点が変化し得る。よって、標的場所は、ストリーム配信地形データにより変化し得る。ストリーム配信地形データによる標的場所の変化は、図１１Ａに図示されている。
【００６９】
図１１Ａは、概略図１１００を示す。概略図１１００は、地球１１０８のモデル上の標的場所１１０４を示す。標的場所１１０４は、図４に関して説明されるように、射線とモデル１１０８との間の交差点を見出すことによって決定される。概略図１１００はまた、標的場所１１０４に向かって急降下するバーチャルカメラも示す。バーチャルカメラは、第１の時点で場所１１１０にある。バーチャルカメラは、第２の時点で場所１１１２に再配置される。第３の時点で、バーチャルカメラは、場所１１１４に再配置される。その時点で、地形１１０２のデータがＧＩＳクライアントにストリーム配信される。ＧＩＳクライアントは、標的場所１１０４が地形１１０２の下にあると判定する。したがって、標的は、地形１１０２より上側に再配置され得る。
【００７０】
標的は、いくつかの方法で再配置され得る。新しい標的場所は、図４のような射線およびモデルの交差点を再計算することによって決定され得る。代替として、新しい標的場所は、地形より上側になるように、古い標的場所の高度を増加させることによって決定され得る。概略図１１１０は、地形１１０２より上側に上昇するように、距離１１１６だけ標的場所１１０４を上昇させることによって決定される、新しい標的場所１１０６を示す。
【００７１】
いったん標的が再配置されると、急降下軌道が改変され得る。場所１１１０および１１１２において、概略図１１００は、バーチャルカメラの傾転を示し、カメラと標的との間の距離は、標的場所１１０４に対して決定される。バーチャルカメラが場所１１１４にある場合、バーチャルカメラの傾転、およびカメラと標的との間の距離は、標的場所１１０６に対して決定される。傾転および距離値の変化は、急降下軌道を決定する、図７Ａ−Ｃに関して論議される計算をもたらす。この理由により、ストリーム配信地形により標的場所を変更することによって、急降下軌道が改変され得る。
【００７２】
急降下軌道はまた、地形衝突により改変され得る。図１１Ｂは、地形衝突による急降下軌道の改変を図示する概略図１１５０である。概略図１１５０は、標的場所１１５８までの経路１１６２に沿った、バーチャルカメラの急降下軌道を示す。バーチャルカメラが経路１１６２上の位置１１６０に到達すると、地形１１５２のデータがＧＩＳクライアントにストリーム配信する。クライアントは、軌道の残りの部分１１５４が地形１１５２と衝突すると判定し得る。結果として、地形１１５２との衝突を回避するように、急降下軌道が軌道１１５６に再計算され得る。このように、ＧＩＳクライアントは、急降下軌道中に新しい地形を動的にストリーム受信し得る。ＧＩＳクライアント例を、図１２で詳細に説明する。
【００７３】
図１２は、本発明の実施形態によるＧＩＳの例示的クライアント１２００のアーキテクチャ図である。実施形態では、クライアント１２００は、ユーザ相互作用モジュール１２１０と、ローカルメモリ１２３０と、キャッシュノードマネージャ１２４０と、レンダラモジュール１２５０と、ネットワークインターフェース１２６０と、ネットワークローダ１２６５と、表示インターフェース１２８０とを含む。図１２に示されるように、ユーザ相互作用モジュール１２１０は、グラフィカルユーザインターフェース（ＧＵＩ）１２１２と、運動モデル１２１８とを含む。ローカルメモリ１２３０は、視認仕様１２３２と、クアッドノードツリー１２３４とを含む。キャッシュノードマネージャ１２４０は、検索リスト１２４５を含む。
【００７４】
実施形態では、クライアント１２００の構成要素は、例えば、クライアントマシーン上で作動するソフトウェアとして実装することができる。クライアント１２００は、ユーザによる視認のために、地球の画像および他の地理情報／データをクライアント１２００に届けるようにＧＩＳサーバ（図示せず）と相互作用する。一緒に、地球の画像および他の地理データは、３次元環境内において３次元モデルを形成する。実施形態では、相互から非同期的に（例えば、時間非依存的に）作動することができる機能に従って、ソフトウェアオブジェクトがグループ化される。
【００７５】
一般に、クライアント１２００は、以下のように動作する。ユーザ相互作用モジュール１２１０は、ユーザが視認することを所望する場所に関するユーザ入力を受信し、運動モデル１２１８を介して、視認仕様１２３２を構築する。レンダラモジュール１２５０は、どのデータが引き出されるかを決定するために視認仕様１２３２を使用し、データを引き出す。キャッシュノードマネージャ１２４０は、制御の非同期スレッドにおいて作動し、ネットワークを介して遠隔サーバから取り出されるクアッドノードによってデータ投入することによって、クアッドノードツリー１２３４を構築する。
【００７６】
ユーザインターフェースモジュール１２１０の実施形態では、ユーザが、ＧＵＩ１２１２を使用して位置情報を入力する。これは、例えば、視認仕様１２３２の生成をもたらす。視認仕様１２３２は、ローカルメモリ１２３０の中に配置され、そこでレンダラモジュール１２５０によって使用される。
【００７７】
運動モデル１２１８は、バーチャルカメラの位置および／または配向を調整するために、ＧＵＩ１２１２を介して受信された位置情報を使用する。カメラは、例えば、地球の表示された３次元モデルを視認するために使用される。ユーザは、バーチャルカメラの観点から自分のコンピュータモニタ上に表示された３次元モデルを見る。実施形態では、運動モデル１２１８はまた、バーチャルカメラの位置、バーチャルカメラの配向、ならびにバーチャルカメラの水平および垂直視野に基づいて、視認仕様１２３２を決定する。
【００７８】
視認仕様１２３２は、錐台として知られている、３次元空間内のバーチャルカメラの視認可能容積と、例えば、３次元地図に対する、錐台の位置および配向とを画定する。実施形態では、錐台は、角錐台の形状である。錐台は、視認状況に応じて変化することができる、最小および最大視認距離を有する。３次元地図のユーザの視認が、ＧＵＩ１２１２を使用して操作されるにつれて、錐台の配向および位置が３次元地図に対して変化する。したがって、ユーザ入力が受信されると、視認仕様１２３２が変化する。視認仕様１２３２は、ローカルメモリ１２３０の中に配置され、そこでレンダラモジュール１２５０によって使用される。
【００７９】
本発明の一実施形態によれば、視認仕様１２３２は、カメラ三脚、カメラレンズ、およびカメラ焦点能力といった、バーチャルカメラの３つの主要パラメータ集合を特定する。カメラ三脚パラメータ集合は、向かっている角度（例えば、北？、南？、その間？）、ピッチ（例えば、水平？、下？、上？、その間？）、および／またはヨー／転回（例えば、水平？、時計回り？、反時計回り？、その間？）等の、初期設定配向に対してバーチャルカメラがどちらに配向されるかである、Ｘ、Ｙ、Ｚ（３つの座標）といったバーチャルカメラ位置を特定する。レンズパラメータ集合は、水平視野（例えば、望遠？、通常の人間の目、すなわち約５５度？、または広角度？）、および垂直視野（例えば、望遠？、通常の人間の目、すなわち約５５度？、または広角度？）を特定する。焦点パラメータ集合は、近クリップ平面までの距離（例えば、より近い被写体が引き寄せられていない場合に、「レンズ」のどれだけ近くでバーチャルカメラが見ることができるか）、および遠クリップ平面までの距離（例えば、より遠い被写体が引き寄せられていない場合に、レンズからどれだけ遠くでバーチャルカメラが見ることができるか）を特定する。
【００８０】
１つの動作例において、上記のカメラパラメータを念頭に置いて、ユーザが左矢印（または右矢印）キーを押すと仮定されたい。これは、視野が左（または右）に移動するべきであることを運動モデル１２１８に信号伝達する。運動モデル１２１８は、向かっている角度に小さい値（例えば、矢印キーの押下につき１度）を加算（または減算）することによって、そのような地表レベルの「カメラをパンする」種類の制御を実装する。同様に、バーチャルカメラを前方に移動させるために、運動モデル１２１８は、最初に、視認方向に沿った単位長さのべクトル（ＨＰＲ）を計算し、所望の運動速度によって各従属構成要素を縮小拡大した後に、このべクトルのＸ、Ｙ、Ｚ従属構成要素をカメラの位置に加算することによって、バーチャルカメラの位置のＸ、Ｙ、Ｚ座標を変更する。このように、および同様に、運動モデル１２１８は、「移動直後」の新しい視認位置を画定するために、ＸＹＺおよびＨＰＲを漸増的に更新することによって、視認仕様１２３２を調整する。このようにして、運動モデル１２１８は、３次元環境を通してバーチャルカメラをナビゲートすることに関与する。
【００８１】
運動モジュール１２１８はまた、急降下ナビゲーションのための処理も行う。急降下ナビゲーション処理のために、運動モジュール１２１８は、傾転計算機モジュール１２９０、標的モジュール１２９２、ポジショナモジュール１２９４、転回補償器モジュール１２９４、地形調整器モジュール１２９８、画面空間モジュール１２８８、およびコントローラモジュール１２８６といった、いくつかのサブモジュールを含む。コントローラモジュール１２８６は、サブモジュールを起動して急降下ナビゲーションを制御する。実施形態では、急降下ナビゲーション構成要素は、図３に関して説明されるように動作し得る。
【００８２】
標的モジュール１２９２は、標的を決定する。実施形態では、標的モジュール１２９２は、図４−５に関して説明されたように動作し得る。標的モジュール１２９２は、最初に、ユーザによって選択される点を通して、バーチャルカメラの焦点から射線を延在させることによって標的を決定する。次いで、標的モジュール１２９２は、射線とクアッドノードツリー１２３４に記憶されるような３次元モデルとの間の交差点を決定する。最終的に、標的モジュール１２９２は、交差的における３次元モデル内の標的を決定する。
【００８３】
傾転計算機モジュール１２９０は、急降下パラメータを更新する。傾転計算機モジュール１２９０は、起動されると、距離、方位角、および傾転の計算を行う。傾転計算機モジュール１２９０は、例えば、関数呼び出しによって起動され得る。呼び出されると、傾転計算機モジュール１２９０は、最初に、バーチャルカメラと３次元環境内における標的との間の距離を決定する。次いで、傾転計算機モジュール１２９０は、縮小した距離を決定する。傾転計算機モジュール１２９０は、図７Ａに関して説明されるように、対数的に距離を縮小し得る。最終的に、傾転計算機モジュール１２９０は、縮小した距離の関数として傾転を決定する。傾転計算機は、絶対傾転関数（図７Ｂについて説明されたような）または増分傾転関数（図７Ｃについて説明されたような）を使用して、傾転を決定し得る。
【００８４】
傾転計算機モジュール１２９０は、バーチャルカメラが標的に近づくにつれて、傾転がより迅速に９０度に近づくように、傾転を計算する。カメラが傾転するにつれて、レンダラモジュール１２５０は、ローカルメモリの中のクアッドノードツリー１２３４にキャッシュされる可能性が低い、より多くのデータを必要とする。結果として、キャッシュノードマネージャ１２４０が、ＧＩＳサーバからより多くのデータを要求しなければならない。バーチャルカメラが標的に近づくにつれて、より迅速に傾転することによって、キャッシュノードマネージャ１２４０は、ＧＩＳサーバからより少ないデータ要求を行う。傾転計算機モジュール１２９０はまた、上記で説明されるように方位角を計算し得る。
【００８５】
起動されると、ポジショナモジュール１２９４は、標的モジュール１２９２によって決定される標的場所と、傾転計算機モジュール１２９０によって決定される傾転および縮小した距離とに従って、バーチャルカメラを再配置する。ポジショナモジュール１２９４は、例えば、関数呼び出しによって起動され得る。ポジショナモジュール１２９４は、標的の中へバーチャルカメラを平行移動させ、傾転に合致するようにバーチャルカメラを傾斜させ、縮小した距離だけ標的から離れるようにバーチャルカメラを平行移動させることによって、バーチャルカメラを再配置し得る。一実施例では、ポジショナモジュール１２９４は、図３のステップ３０６−３１０に関して説明されるように動作し得る。
【００８６】
ポジショナモジュール１２９４がバーチャルカメラを再配置すると、地球の湾曲がバーチャルカメラを地球のモデルに対して転回させる場合がある。起動されると、転回補償器モジュール１２９６は、転回を低減するようにカメラを回転させる。転回補償器モジュール１２９６は、例えば、関数呼び出しによって起動され得る。転回補償器モジュール１２９６は、図９に関して説明されるようにカメラを回転させ得る。
【００８７】
ポジショナモジュール１２９４がバーチャルカメラを再配置し、転回補償器モジュール１２９６がカメラを回転させると、標的がその画面空間投影を変更する場合がある。標的の画面空間投影を変更することは、ユーザにとって方向感覚を失わせるものとなる場合がある。起動されると、画面空間モジュール１２８８は、地球のモデルを回転させて、標的の画面空間投影を修復する。画面空間モジュール１２８８は、図１０に関して説明されるように地球を回転させ得る。
【００８８】
ポジショナモジュール１２９４がバーチャルカメラを地球のモデルに近づけるにつれて、レンダラモジュール１２５０が、地形データを含む、より詳細なモデルデータを要求する。より詳細な地理データの要求は、キャッシュノードマネージャ１２４０からＧＩＳサーバに送信される。ＧＩＳサーバは、地形データを含む、より詳細な地理データを、ＧＩＳクライアント１２００にストリーム配信する。キャッシュノードマネージャ１２４０は、より詳細な地理データをクアッドノードツリー１２３４に保存する。したがって、効果的に、クアッドノードツリー１２３０に記憶された地球のモデルが変化させる。標的の場所を決定したとき、標的モジュール１２９２は、クアッドノードツリー１２３０の中の以前のモデルを使用している。この理由により、地形調整器モジュール１２９８は、図１１Ａに関して説明されるように、標的の場所を調整しなければならない場合がある。さらに、ポジショナモジュール１２９４によって計算される急降下軌道は、地形と衝突する場合がある。よって、地形調整器モジュール１２９８は、図１１Ｂに関して説明されるように、急降下軌道も調整しなければならない場合もある。地形調整器モジュール１２９８は、例えば、関数呼び出しによって起動され得る。
【００８９】
レンダラモジュール１２５０は、表示デバイスのビデオリフレッシュ速度に対応するサイクル（例えば、毎秒６０サイクル）を有する。１つの特定の実施形態では、レンダラモジュール１２５０は、（ｉ）起動するステップ、（ｉｉ）レンダラによってアクセスされるデータ構造内に運動モデル１２１８によって設置された視認仕様１２３２を読み出すステップ、（ｉｉｉ）ローカルメモリ１２３０の中のクアッドノードツリー１２３４を詳しく検討するステップ、および（ｉｖ）クアッドノードツリー１２３４に存在するクアッドノードに含有される、描画可能なデータを描画ステップのサイクルを実施する。描画可能なデータは、有界ボックス（例えば、データまたは他のそのような識別子を含有する容量）と関連し得る。存在する場合、有界ボックスは、描画可能なデータが視認仕様１２３２内で潜在的に可視的であるかどうかを確認するように点検される。潜在的可視データが描画される一方で、可視的ではないことが分かっているデータは無視される。したがって、レンダラは、以下でさらに十分に説明されるように、クアッドノードツリー１２３４に存在するクアッドノードの描画可能なペイロードが描画されないかどうかを決定するために、視認仕様１２３２を使用する。
【００９０】
最初に、本発明の一実施形態によれば、クアッドノードツリー１２３４内には描画されるデータがなく、レンダラモジュール１２５０は、初期設定（または他の初期設定表示画像）により星野を描く。クアッドノードツリー１２３４は、この星野を除いてレンダラ１２５０が行う描画のためのデータソースである。レンダラモジュール１２５０は、クアッドノードツリー１２３４に存在する各クアッドノードにアクセスしようとすることによって、クアッドノードツリー１２３４を詳しく検討する。各クアッドノードは、最大４つの参照と、データの随意的なペイロードとを有する、データ構造である。クアッドノードのペイロードが描画可能なデータである場合、レンダラモジュール１２５０は、視認仕様１２３２に対してペイロード（もしあれば）の有界ボックスを比較し、描画可能なデータが完全に錐台の外側になく、他の要因に基づいて描画することが不適切と見なされない限り、それを描画する。これらの他の要因は、例えば、カメラからの距離、傾転、または他のそのような考慮事項を含み得る。ペイロードが完全に錐台の外側になく、引き出すことが不適切と見なされない場合、レンダラモジュール１２５０はまた、クアッドノードの中の最大４つの参照のそれぞれにアクセスしようとする。参照がローカルメモリ（例えば、メモリ１２３０または他のローカルメモリ）の中の別のクアッドノードに対するものである場合、レンダラモジュール１２５０は、その他のクアッドノードの中の任意の描画可能なデータにアクセスしようとし、また、潜在的に、その他のクアッドノードの中の最大４つの参照のうちのいずれかにアクセスしようとする。クアッドノードの最大４つの参照のそれぞれにアクセスするレンダラモジュールの試行は、クアッドノード自体によって検出される。
【００９１】
以前に説明されているように、クアッドノードは、データのペイロードと、他のファイルに対する最大４つの参照とを有し得る、データ構造であり、参照のそれぞれは順に、クアッドノードであり得る。クアッドノードによって参照されるファイルは、本明細書では、そのクアッドノードの子と呼ばれ、参照クアッドノードは、本明細書では、親と呼ばれる。場合によっては、ファイルが、参照された子だけでなく、その子の子孫も含有する。これらの集合体は、キャッシュノードとして知られており、いくつかのクアッドノードを含み得る。そのような集合は、データベース構築の経過中に行われる。場合によっては、データのペイロードは空である。他のファイルに対する参照は、例えば、ファイル名と、もしあれば、そのファイルに対するローカルメモリの中の対応アドレスとを備える。最初に、参照されたファイルは、全て１つ以上の遠隔サーバ上（例えば、ＧＩＳのサーバ上）に記憶され、ユーザのコンピュータ上には描画可能なデータが存在しない。
【００９２】
クアッドノードおよびキャッシュノードは、内蔵アクセス機構機能である。以前に説明されているように、クアッドノードの最大４つの参照のそれぞれにアクセスするレンダラモジュールの試行は、クアッドノード自体によって検出される。レンダラモジュールが、ファイル名を有するが対応アドレスがない、子クアッドノードにアクセスしようとすると、親クアッドノードが、キャッシュノード検索リスト１２４５上に、そのファイル名を設置する（例えば、そのアクセス機構機能の動作によって）。キャッシュノード検索リストは、ＧＩＳサーバからダウンロードされるキャッシュノードを識別する情報のリストを備える。クアッドノードの子が、空値ではないローカルアドレスを有する場合、レンダラモジュール１２５０は、子クアッドノードにアクセスするために、ローカルメモリ１２３０の中のそのアドレスを使用する。
【００９３】
クアッドノードは、描画可能なペイロードを伴うクアッドノードが、それらのペイロード内に有界ボックスまたは他の位置識別子を含み得るように、構成される。レンダラモジュール１２５０は、クアッドノードペイロード（もしあれば）の有界ボックス／位置識別子を視認仕様１２３２と比較する、視認錐台選択を行う。有界ボックスが視認仕様１２３２から完全に外れている（例えば、描画可能なデータのいずれも錐台内にない）場合に、描画可能なデータのペイロードは、たとえＧＩＳサーバからすでに取り出され、ユーザのコンピュータ上に記憶されていても、描画されない。そうでなければ、描画可能なデータが描画される。
【００９４】
視認錐台選択は、レンダラモジュール１２５０がクアッドロードの子を詳細しく検討する前に、そのクアッドノードペイロードの有界ボックス（もしあれば）が視認仕様１２３２から完全に外れているか否かを決定する。クアッドノードの有界ボックスが視認仕様１２３２から完全に外れている場合、レンダラモジュール１２５０は、そのクアッドノードの子にアクセスしようとしない。子クアッドノードは、決してその親クアッドノードの有界ボックスを超えて延在しない。したがって、親クアッドノードペイロードが視認仕様から完全に外れていると、いったん視認錐台選択が決定すると、そのクアッドノードの全子孫も視認仕様１２３２から完全に外れていると仮定することができる。
【００９５】
クアッドノードおよびキャッシュノードペイロードは、種々の種類のデータを含有し得る。例えば、キャッシュノードペイロードは、衛星画像、テキストラベル、政治的境界、道路をレンダリングするための点、線、または多角形接続を同伴した３次元頂点、および他の種類のデータを含有することができる。任意のクアッドノードペイロードの中のデータの量は、最大値に限定される。しかしながら、場合によっては、特定の分解能で領域を表すために必要とされるデータの量が、この最大値を超える。ベクトルデータの処理等の、それらの場合において、データの一部は、親ペイロードに含有され、同じ分解能における残りのデータは、子のペイロードに（および、おそらく子の子孫内にさえも）含有される。また、子が、より高い分解能または親と同じ分解能のデータを含有し得る場合があり得る。例えば、親ノードが、親と同じ分解能の２つの子と、その親とは異なる（例えば、より高い）分解能の２つの付加的な子とを有する場合がある。
【００９６】
キャッシュノードマネージャ１２４０のスレッド、および１つ以上のネットワークローダ１２６５のスレッドのそれぞれは、レンダラモジュール１２５０およびユーザ相互作用モジュール１２１０とは非同期的に動作する。レンダラモジュール１２５０およびユーザ相互作用モジュール１２１０はまた、相互とは非同期的に動作することもできる。いくつかの実施形態では、８つもの数のネットワークローダ１２６５のスレッドが独立して実行され、それぞれ、レンダラモジュール１２５０およびユーザ相互作用モジュール１２１０とは非同期的に動作する。キャッシュノードマネージャ１２４０のスレッドは、ＧＩＳサーバから取り出されるクアッドノードでデータ投入することによって、ローカルメモリ１２３０の中のクアッドノードツリー１２３４を構築する。クアッドノードツリー１２３４は、クライアントシステムが起動あるいは始動されると、ルートノードから開始する。ルートノードは、ファイル名を含み（しかし対応するアドレスは含まない）、データペイロードを含まない。以前に説明されているように、このルートノードは、初めてレンダラモジュール１２５０によって詳しく検討された後に、キャッシュノード検索リスト１２４５に自己報告するために、内蔵アクセス機構機能を使用する。
【００９７】
各ネットワークローダ１２６５のスレッドにおいて、ネットワークローダは、キャッシュノード検索リスト１２４５（図１２に示された実施形態では、キャッシュノードマネージャ１２４０に含まれるが、ローカルメモリ１２３０または他の記憶装置等の他の場所に位置することもできる）を詳しく検討し、キャッシュノードのファイル名を使用して、ＧＩＳサーバから次のキャッシュノードを要求する。ネットワークローダは、キャッシュノード検索リスト上に出現するファイルを要求するのみである。キャッシュノードマネージャ１２４０は、親クアッドノードの子孫である１つ以上の新しいクアッドノードに編成される、返送ファイルに対するローカルメモリ１２３０（または他の好適な記憶装置）の中の空間を割り当てる。キャッシュノードマネージャ１２４０はまた、必要であれば（例えば、サーバ側の暗号化または圧縮を補完するために）、ＧＩＳサーバから返送されたデータファイルを解読または解凍することもできる。キャッシュノードマネージャ１２４０は、それぞれの新たに構築された子クアッドノードに対するローカルメモリ１２３０のアドレスに対応するアドレスで、クアッドノードツリー１２３４の中の親クアッドノードを更新する。
【００９８】
レンダラモジュール１２５０において別個かつ非同期的に、クアッドノードツリー１２３４を次に詳しく検討し、更新された親クアッドノードを詳しく検討すると、レンダラモジュール１２５０は、子クアッドノードに対応するローカルメモリの中のアドレスを見出し、子クアッドノードにアクセスすることができる。レンダラによる子クアッドノードの詳細検討は、親クアッドノードについて従われる同じステップに従って進行する。これは、以前に説明されているように、視認仕様１２３２から完全に外れているか、または他の要因に基づいて引き出すことが不適切と見なされるノードに到達するまで、クアッドノードツリー１２３４を通して継続する。
【００９９】
この特定の実施形態では、キャッシュノードマネージャスレッドによって書き込まれるか、あるいは提供されるクアッドノードのレンダラモジュールによる読み出し以外に、キャッシュノードマネージャスレッドとレンダラモジュール１２５０との間の通信がないことに留意されたい。さらに、この特定の実施形態では、以前に説明されているように、返送された子が、視認仕様１２３２から完全に外れているか、あるいは引き出すのに不適切なペイロードのみを含有するまで、キャッシュノード、したがって、クアッドノードがダウンロードされ続ける。ネットワークインターフェース１２６０（例えば、ネットワークインターフェースカードまたは受信機）は、クライアントからの通信がネットワーク上で送信されることを可能にするように、および遠隔サーバから通信がクライアントによって受信されることを可能にするように構成される。同様に、表示インターフェース１２８０（例えば、表示インターフェースカード）は、ユーザがデータを視認することができるように、マッピングモジュールからのデータが、ユーザのコンピュータと関連するディスプレイに送信されることを可能にするように構成される。ネットワークインターフェース１２６０および表示インターフェース１２８０のそれぞれは、従来の技術で実装することができる。
【０１００】
概要および要約の項ではなく、発明を実施するための形態の項は、請求項を解釈するために使用されることを目的とすると理解されたい。概要および要約の項は、本発明者らによって検討されるような本発明の全てではないが１つ以上の例示的実施形態を記載してもよく、したがって、決して本発明および添付の請求項を限定することを目的としない。
【０１０１】
その特定機能および関係の実装を図示する、機能的構成要素を用いて、本発明を上記で説明した。これらの機能的構成要素の境界は、説明の便宜上、本明細書では任意に画定した。その特定機能および関係が適切に実施される限り、代替的境界を画定することができる。
【０１０２】
具体的実施形態の先述の説明は、本発明の一般概念から逸脱することなく、必要以上の実験を伴わずに、当技術分野内の知識を適用することによって、他者がそのような具体的実施形態を容易に修正し、および／または種々の用途に適合させることができる、本発明の一般的性質を完全に明らかにする。したがって、そのような適合および修正は、本明細書で提示される教示および指導に基づいて、開示された実施形態の同等物の意味および範囲内となることを目的とする。本明細書の用語または表現が、教示および指導に照らして当業者によって解釈されるものであるように、本明細書の表現または用語は、限定ではなく説明の目的によるものであることを理解されたい。
【０１０３】
本発明の幅および範囲は、上記の例示的実施形態のうちのいずれによっても限定されるべきではないが、以下の請求項およびそれらの同等物のみに従って定義されるべきである。
【図１Ａ】
0005507541.tif 000003
【図１Ｂ】
0005507541.tif 000004
【図１Ｃ】
0005507541.tif 000005
【図１Ｄ】
0005507541.tif 000006
【図２】
0005507541.tif 000007
【図３Ａ】
0005507541.tif 000008
【図３Ｂ】
0005507541.tif 000009
【図４】
0005507541.tif 000010
【図５】
0005507541.tif 000011
【図６】
0005507541.tif 000012
【図７Ａ】
0005507541.tif 000013
【図７Ｂ】
0005507541.tif 000014
【図７Ｃ】
0005507541.tif 000015
【図８Ａ】
0005507541.tif 000016
【図８Ｂ】
0005507541.tif 000017
【図９】
0005507541.tif 000018
【図１０】
0005507541.tif 000019
【図１１Ａ】
0005507541.tif 000020
【図１１Ｂ】
0005507541.tif 000021
【図１２】
0005507541.tif 000022