(57)【要約】【課題】表面を描画する方法を提供すること。【解決手段】表面を描画する方法であって、該方法は、該表面に描画されるイメージを閲覧するユーザ入力の前に、（ａ）ビューポートから該表面への第１の変換によって画定される、該表面上の領域を予め計算することと、（ｂ）該領域から該ビューポートにマップする第２の変換を予め計算することと、該表面に描画される該イメージを閲覧する該ユーザ入力に応答して、（ｃ）該ユーザ入力に従って、イメージの一部を決定することであって、該一部は該領域と交わる、ことと、（ｄ）変換されたイメージを得るために、該領域と交わる該イメージの一部に該第２の変換を適用することと、（ｅ）該変換されたイメージを、表示のためにビューポートに描画することとを含み、ステップ（ａ）〜（ｅ）は、それぞれ、少なくとも１つのコンピューティング装置上で実行される、方法。【選択図】図２
2014170580.tif 000002
【特許請求の範囲】
【請求項１】
パノラマのイメージを閲覧する方法であって、該方法は、
１つ以上のコンピューティング装置によってビューポートを表示のために提供することであって、該ビューポートは、第１のパノラマのイメージの一部と、該第１のパノラマのイメージと共に描画される３次元の覆いとを含み、該３次元の覆いは、パノラマのイメージの間をナビゲートするように用いられるナビゲーションアイコンを含む、ことと、
該ナビゲーションアイコンの選択を示すユーザ入力に応答して、該１つ以上のコンピューティング装置によって第２のパノラマのイメージを表示のために提供することであって、該第２のパノラマのイメージは、該第１のパノラマのイメージのロケーションに対してある方向に位置し、該方向は、該３次元の覆いの中の該ナビゲーションアイコンの位置に対応する、ことと、
該第１のパノラマのイメージの一部と該第２のパノラマのイメージの一部との間の遷移を表示する命令を該１つ以上のコンピューティング装置によって提供することと
を含み、
該遷移を表示することは、
該第１のパノラマのイメージ内にズームすることと、
該第１のパノラマのイメージと該第２のパノラマのイメージとの間でフェードすることにより、該ズームすることおよび該フェードすることが、該第１のパノラマのイメージと該第２のパノラマのイメージとの間の滑らかな遷移を該ユーザに与えることと
によって行われる、方法。
【請求項２】
前記第１のパノラマのイメージおよび前記第２のパノラマのイメージは、ストリートレベルの画像に対応する、請求項１に記載の方法。
【請求項３】
前記３次元の覆いは、前記第１のパノラマのイメージの中のストリートの方向に対応するように位置づけられたストリートラインと、該第１のパノラマのイメージの中の該ストリートを識別するように位置づけられたストリート名とをさらに含む、請求項２に記載の方法。
【請求項４】
地図上の第１の位置においてユーザ向きキャラクターを表示することであって、該第１の位置は、前記第１のパノラマのイメージのロケーションに対応する、ことと、
前記ユーザ入力に応答して、地図上の第２の位置において該ユーザ向きキャラクターを表示することと
をさらに含み、
該第２の位置は、該第１の位置に対してある方向に位置し、該方向は、前記３次元の覆いの中の前記ナビゲーションアイコンの位置に対応し、前記第２のパノラマのイメージのロケーションに対応する、請求項１に記載の方法。
【請求項５】
前記ナビゲーションアイコンは、ユーザによる選択のために構成されたボタンである、請求項１に記載の方法。
【請求項６】
前記第１のパノラマのイメージの一部と前記第２のパノラマのイメージの一部との間の前記遷移を表示する前記命令を用いることをさらに含む、請求項１に記載の方法。
【請求項７】
前記ナビゲーションアイコンの選択を示す前記ユーザ入力を受け取ることをさらに含む、請求項１に記載の方法。
【請求項８】
パノラマのイメージを閲覧するシステムであって、該システムは、１つ以上のコンピューティング装置を含み、該１つ以上のコンピューティング装置は、
第１のパノラマのイメージの一部と、該第１のパノラマのイメージと共に描画される３次元の覆いとを含むビューポートを表示のために提供することであって、該３次元の覆いは、パノラマのイメージの間をナビゲートするように用いられるナビゲーションアイコンを含む、ことと、
該ナビゲーションアイコンの選択を示すユーザ入力に応答して、第２のパノラマのイメージを表示のために提供することであって、該第２のパノラマのイメージは、該第１のパノラマのイメージのロケーションに対してある方向に位置し、該方向は、該３次元の覆いの中の該ナビゲーションアイコンの位置に対応する、ことと、
該第１のパノラマのイメージの一部と該第２のパノラマのイメージの一部との間の遷移を表示する命令を提供することと
を行うように構成されており、
該遷移を表示することは、
該第１のパノラマのイメージ内にズームすることと、
該第１のパノラマのイメージと該第２のパノラマのイメージとの間でフェードすることにより、該ズームすることおよび該フェードすることが、該第１のパノラマのイメージと該第２のパノラマのイメージとの間の滑らかな遷移を該ユーザに与えることと
によって行われる、システム。
【請求項９】
前記第１のパノラマのイメージおよび前記第２のパノラマのイメージは、ストリートレベルの画像に対応する、請求項８に記載のシステム。
【請求項１０】
前記３次元の覆いは、前記第１のパノラマのイメージの中のストリートの方向に対応するように位置づけられたストリートラインと、該第１のパノラマのイメージの中の該ストリートを識別するように位置づけられたストリート名とをさらに含む、請求項８に記載のシステム。
【請求項１１】
前記１つ以上のプロセッサは、
地図上の第１の位置においてユーザ向きキャラクターを表示することであって、該第１の位置は、前記第１のパノラマのイメージのロケーションに対応する、ことと、
前記ユーザ入力に応答して、地図上の第２の位置において該ユーザ向きキャラクターを表示することと
を行うようにさらに構成されており、
該第２の位置は、該第１の位置に対してある方向に位置し、該方向は、前記３次元の覆いの中の前記ナビゲーションアイコンの位置に対応し、前記第２のパノラマのイメージのロケーションに対応する、請求項８に記載のシステム。
【請求項１２】
前記ナビゲーションアイコンは、ユーザによる選択のために構成されたボタンである、請求項８に記載のシステム。
【請求項１３】
前記１つ以上のコンピューティング装置は、前記第１のパノラマのイメージの一部と前記第２のパノラマのイメージの一部との間の前記遷移を表示する前記命令を用いるようにさらに構成されている、請求項８に記載のシステム。
【請求項１４】
前記１つ以上のコンピューティング装置は、前記ナビゲーションアイコンの選択を示す前記ユーザ入力を受け取るようにさらに構成されている、請求項８に記載のシステム。
【請求項１５】
プログラムのコンピュータ読み取り可能な命令が格納されている有形のコンピュータ読み取り可能な格納媒体であって、該命令は、１つ以上のプロセッサによって実行される場合に、パノラマのイメージを閲覧する方法を実行することを該１つ以上のプロセッサに行わせ、該方法は、
第１のパノラマのイメージの一部と、該第１のパノラマのイメージと共に描画される３次元の覆いとを含むビューポートを表示のために提供することであって、該３次元の覆いは、パノラマのイメージの間をナビゲートするように用いられるナビゲーションアイコンを含む、ことと、
該ナビゲーションアイコンの選択を示すユーザ入力に応答して、第２のパノラマのイメージを表示のために提供することであって、該第２のパノラマのイメージは、該第１のパノラマのイメージのロケーションに対してある方向に位置し、該方向は、該３次元の覆いの中の該ナビゲーションアイコンの位置に対応する、ことと、
該第１のパノラマのイメージの一部と該第２のパノラマのイメージの一部との間の遷移を表示する命令を提供することと
を含み、
該遷移を表示することは、
該第１のパノラマのイメージ内にズームすることと、
該第１のパノラマのイメージと該第２のパノラマのイメージとの間でフェードすることにより、該ズームすることおよび該フェードすることが、該第１のパノラマのイメージと該第２のパノラマのイメージとの間の滑らかな遷移を該ユーザに与えることと
によって行われる、有形のコンピュータ読み取り可能な格納媒体。
【請求項１６】
前記第１のパノラマのイメージおよび前記第２のパノラマのイメージは、ストリートレベルの画像に対応する、請求項１５に記載の媒体。
【請求項１７】
前記３次元の覆いは、前記第１のパノラマのイメージの中のストリートの方向に対応するように位置づけられたストリートラインと、該第１のパノラマのイメージの中の該ストリートを識別するように位置づけられたストリート名とをさらに含む、請求項１５に記載の媒体。
【請求項１８】
前記方法は、
地図上の第１の位置においてユーザ向きキャラクターを表示することであって、該第１の位置は、前記第１のパノラマのイメージのロケーションに対応する、ことと、
前記ユーザ入力に応答して、地図上の第２の位置において該ユーザ向きキャラクターを表示することと
をさらに含み、
該第２の位置は、該第１の位置に対してある方向に位置し、該方向は、前記３次元の覆いの中の前記ナビゲーションアイコンの位置に対応し、前記第２のパノラマのイメージのロケーションに対応する、請求項１５に記載の媒体。
【請求項１９】
前記ナビゲーションアイコンは、ユーザによる選択のために構成されたボタンである、請求項１５に記載の媒体。
【請求項２０】
前記方法は、前記第１のパノラマのイメージの一部と前記第２のパノラマのイメージの一部との間の前記遷移を表示する前記命令を用いることをさらに含む、請求項１５に記載の媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、パノラマの画像に関連する。
【背景技術】
【０００２】
コンピュータで処理される地図作成システムは、従来より、地図作成データのトップダウン方式のプレゼンテーションを提供する。ストリートレベルの画像を有する地図作成システムの機能を拡張することは、様々なインタフェースの課題を与え、その課題とは、例えば、交差点で曲ることを含む、ストリートレベルのビュー内のナビゲーションに対処することと、地図上のユーザのロケーションおよび向きをストリートレベルのビュー内のユーザのロケーションおよび向きと関連づけることとの両方を、絶対項（例えば、緯度、経度および進行方向）で、ならびに都市のストリートおよび都市の交差点のようなランドマークに対するものとして、行うことである。Ｍｉｃｒｏｓｏｆｔ（登録商標）  Ｖｉｒｔｕａｌ  Ｅａｒｔｈ（ｈｔｔｐ：／／ｐｒｅｖｉｅｗ．ｌｏｃａｌ．ｌｉｖｅ．ｃｏｍ）によって支援されるＡ９  ＢｌｏｃｋＶｉｅｗ（もはやオンラインではない）およびＷｉｎｄｏｗｓ（登録商標）  Ｌｉｖｅ  Ｌｏｃａｌ  Ｔｅｃｈｎｏｌｏｇｙ  Ｐｒｅｖｉｅｗは、近時、都市のストリートレベルのビューに使用できるインタフェースを提供しようと試みた。Ａ９  ＢｌｏｃｋＶｉｅｗは、画像が２つの細片（ｓｔｒｉｐ）になるよう平坦にすることによって、向きの問題に対処したので、ユーザは、３６０度見渡す自由を有さない。Ｗｉｎｄｏｗｓ（登録商標）  Ｌｉｖｅ  Ｌｏｃａｌは、ストリートレベルの画像についての「車」のビューを与え、「車」のビューは、地図ビュー上の車のアバターを操作することによって、９０度単位で回転される。
【発明の概要】
【課題を解決するための手段】
【０００３】
本発明は、パノラマのイメージを描画すること（ｒｅｎｄｅｒｉｎｇ）および閲覧すること（ｖｉｅｗｉｎｇ）と、パノラマのイメージに注釈をつけること（ａｎｎｏｔａｔｉｎｇ）とに関連する。第１の実施形態において、一方法が、パノラマのイメージを閲覧するために用いられ得る。該方法は、第１のパノラマのイメージの少なくとも一部を受け取ることと、該第１のパノラマのイメージの一部を表示するビューポートを与えることとを含む。該ビューポートは、該第１のパノラマのイメージと共に描画される３次元の覆いを含む。該第１のパノラマのイメージと共に該３次元の覆いが描画される場合、該第１のパノラマのイメージの向きにおける変更と一致するように、３次元の空間において該３次元の覆いの向きが変更される。
【０００４】
第２の実施形態において、一システムが、パノラマのイメージを閲覧するために用いられ得る。該システムは、第１のパノラマのイメージの少なくとも一部を受け取るパノラマビューア（Ｐａｎｏｒａｍａ  Ｖｉｅｗｅｒ）であって、該パノラマビューアは、ビューポートを与え、該ビューポートは、該第１のパノラマのイメージの一部を表示する、パノラマビューアを含む。該ビューポートは、該パノラマのイメージと共に描画される３次元の覆いを含む。該パノラマビューアは、該パノラマのイメージと共に該３次元の覆いが描画される場合、該ビューポート内の該パノラマのイメージの向きにおける変更と一致するように、３次元の空間において該３次元の覆いの向きを変更する。
【０００５】
第３の実施形態において、一方法が、表面を描画するために用いられ得る。該方法は、ビューポートから該表面への第１の変換によって画定される、該表面上の領域を計算することと、該領域から該ビューポートにマップする第２の変換を計算することと、該領域と交わる、イメージの一部を決定することとを含む。最後に、該領域と交わる、該イメージの一部に、該第２の変換は、適用され、変換されたイメージをもたらす。該変換されたイメージは、表示のためにビューポートに描画される。
【０００６】
第４の実施形態において、一システムが表面を描画する。ビューポートから該表面への第１の変換によって画定される、該表面上の領域を計算するサーバーを、該システムは含む。該サーバーはまた、該領域から該ビューポートにマップする第２の変換を計算する。該表面上の該領域と交わる、イメージの一部を決定するパノラマビューアを、該システムはさらに含む。該表面上の該領域と交わる、該イメージの一部に、該パノラマビューアは、該第２の変換を適用し、第２の変換されたイメージをもたらす。該変換されたイメージは、表示のためにビューポートに描画される。
【０００７】
第５の実施形態において、一方法が、パノラマに対する注釈を処理するために用いられ得る。該方法は、第１のパノラマの中のフィーチャー（ｆｅａｔｕｒｅ）に対する第１のユーザ注釈を受け取ることと、第２のパノラマの中の該フィーチャーに対する第２のユーザ注釈を受け取ることを含む。該フィーチャーに対する該第１のユーザ注釈に対して生成されるデータと該フィーチャーに対する該第２のユーザ注釈に対して生成されるデータとの交わりに基づいて、座標が決定される。最後に、該フィーチャーを表現する注釈に関連して、該座標が格納される。
【０００８】
第６の実施形態において、一システムが、パノラマに対する注釈を処理するために用いられ得る。該システムは、第１のパノラマの中のフィーチャーに対する第１のユーザ注釈を受け取るサーバーであって、第２のパノラマの中の該フィーチャーに対する第２のユーザ注釈を受け取るサーバーを含む。該サーバーは、該フィーチャーに対する該第１のユーザ注釈の第１のロケーション、および該フィーチャーに対する該第２のユーザ注釈に対する第２のロケーションに基づいて該フィーチャーのロケーションを決定する。
【０００９】
さらに、本発明の実施形態、特色および利点と、本発明の様々な実施形態の構造および動作とが、添付の図面への言及と共に、下記に詳細に述べられる。
例えば、本発明は以下の項目を提供する。
（項目１）
パノラマのイメージを閲覧する方法であって、
該方法は、
（ａ）第１のパノラマのイメージの少なくとも一部を受け取ることと、
（ｂ）該第１のパノラマのイメージの一部を表示するビューポートを与えることであって、該ビューポートは、該第１のパノラマのイメージと共に描画される３次元の覆いを含む、ことと、
（ｃ）該第１のパノラマのイメージと共に該３次元の覆いが描画される場合、該第１のパノラマのイメージの向きにおける変更と一致するように、３次元の空間において該３次元の覆いの向きを変更することと
を含む、方法。
（項目２）
上記受け取ること（ａ）がストリートレベルの画像を受け取ることを含む、項目１に記載の方法。
（項目３）
上記与えること（ｂ）が上記覆いの中にナビゲーションアイコンを表示することを含み、該ナビゲーションアイコンは、パノラマのイメージの間をナビゲートするように用いられる、項目１および項目２のうちのいずれか一項に記載の方法。
（項目４）
上記ナビゲーションアイコンをユーザが選択することに応答して、第２のパノラマのイメージを決定することであって、該第２のパノラマのイメージは、上記第１のパノラマのイメージのロケーションに対して所定の方向に位置し、該方向は、上記３次元の覆いの中の該ナビゲーションアイコンの位置に対応する、ことと、
上記ビューポートの中の該第２のパノラマのイメージの少なくとも一部を表示することと
をさらに含む、項目３に記載の方法。
（項目５）
地図上の第１の位置にユーザの向きのキャラクターを表示することであって、該第１の位置は、上記第１のパノラマのイメージのロケーションに対応する、ことと、
上記ナビゲーションアイコンをユーザが選択することに応答して、地図上の第２の位置に該ユーザの向きのキャラクターを表示することであって、該第２の位置は、該第１の位置に対して所定の方向に位置し、該方向は、上記３次元の覆いの中の該ナビゲーションアイコンの位置に対応する、ことと
をさらに含む、項目３に記載の方法。
（項目６）
パノラマのイメージを閲覧するシステムであって、
該システムは、
第１のパノラマのイメージの少なくとも一部を受け取るパノラマビューアであって、該パノラマビューアは、ビューポートを与え、該ビューポートは、該第１のパノラマのイメージの一部を表示し、該パノラマのイメージと共に描画される３次元の覆いを含む、パノラマビューア
を含み、該パノラマビューアは、該パノラマのイメージと共に該３次元の覆いが描画される場合、該ビューポート内の該パノラマのイメージの向きにおける変更と一致するように、３次元の空間において該３次元の覆いの向きを変更する、システム。
（項目７）
上記パノラマのイメージがストリートレベルの画像を含む、項目６に記載のシステム。（項目８）
上記覆いが、パノラマのイメージの間をナビゲートするように用いられるナビゲーションアイコンを含む、項目６および項目７のうちのいずれか一項に記載のシステム。
（項目９）
上記パノラマビューアは、ユーザが上記ナビゲーションアイコンを選択することに応答して、第２のパノラマのイメージを決定し、上記ビューポートの中の該第２のパノラマのイメージの少なくとも一部を表示し、
該第２のパノラマのイメージは、上記第１のパノラマのイメージのロケーションに対して所定の方向に位置し、該方向は、上記３次元の覆いの中の該ナビゲーションアイコンの位置に対応する、項目８に記載のシステム。
（項目１０）
上記パノラマビューアは、地図上の第１の位置にユーザの向きのキャラクターを表示し、該第１の位置は、上記第１のパノラマのイメージのロケーションに対応する、項目８に記載のシステム。
（項目１１）
上記パノラマビューアは、ユーザが上記ナビゲーションアイコンを選択することに応答して、地図上の第２の位置にユーザの向きのキャラクターを表示し、
該第２の位置は、上記第１の位置に対して所定の方向にあり、該方向は、上記３次元の覆いの中の該ナビゲーションアイコンの位置に対応する、項目１０に記載のシステム。
（項目１２）
表面を描画する方法であって、
該方法は、
（ａ）ビューポートから該表面への第１の変換によって画定される、該表面上の領域を計算することと、
（ｂ）該領域から該ビューポートにマップする第２の変換を計算することと、
（ｃ）該領域と交わる、イメージの一部を決定することと、
（ｄ）変換されたイメージを得るための領域と交わる、該イメージの一部に該第２の変換を適用することであって、該変換されたイメージは、表示のためにビューポートに描画される、ことと
を含む、方法。
（項目１３）
上記計算すること（ａ）が円柱上の領域を計算することを含む、項目１２に記載の方法。
（項目１４）
上記計算すること（ａ）が、第１のメッシュ上の領域を計算することを含み、該領域は、第２のメッシュから該第１のメッシュへの第１の変換によって画定され、
上記計算すること（ｂ）が、第２の変換を計算することを含み、該第２の変換は、該第１のメッシュから該第２のメッシュへマップする、項目１２および項目１３のうちのいずれか一項に記載の方法。
（項目１５）
上記計算すること（ａ）が、ボクセルからピクセルへの連続的な変換として、第１の変換を計算することを含み、
上記計算すること（ｂ）が、ボクセルからピクセルへの連続的な変換として、第２の変換を計算することを含む、項目１２および項目１３のうちのいずれか一項に記載の方法。（項目１６）
（ｅ）上記イメージを移すことと、
（ｆ）該（ｅ）で移されたイメージの第２の部分を決定することであって、該第２の部分は、上記（ａ）で計算された領域と交わる、ことと、
（ｇ）上記（ｂ）で計算される第２の変換を、該（ｆ）で決定されたイメージの該第２の部分に適用し、第２の変換されたイメージをもたらすことであって、該第２の変換されたイメージは、表示のためにビューポートに描画される、ことと
をさらに含む、項目１２または項目１３のいずれか一項に記載の方法。
（項目１７）
上記（ｄ）で決定された変換されたイメージと上記（ｇ）で決定された第２の変換されたイメージとの間の補間を決定することをさらに含む、項目１６に記載の方法。
（項目１８）
上記イメージを取り込んだカメラの角度に基づいて該イメージを調整することをさらに含む、項目１２に記載の方法。
（項目１９）
上記決定すること（ｃ）が、上記領域と交わるパノラマのイメージの一部を決定することを含む、項目１２、項目１３および項目１８のうちのいずれか一項に記載の方法。
（項目２０）
表面を描画するシステムであって、
該システムは、
ビューポートから該表面への第１の変換によって画定される、該表面上の領域を計算するサーバーであって、該領域から該ビューポートにマップする第２の変換を計算するサーバーと、
該表面上の該領域と交わる、イメージの一部を決定するパノラマビューアであって、該表面上の該領域と交わる、該イメージの一部に、該パノラマビューアは、該第２の変換を適用し、第１の変換されたイメージをもたらし、該第１の変換されたイメージは、表示のためにビューポートに描画される、パノラマビューアと
を含む、システム。
（項目２１）
上記表面は円柱である、項目２０に記載のシステム。
（項目２２）
メッシュが上記ビューポート上に画定され、メッシュが上記表面上に画定され、上記第１の変換および上記第２の変換が、１つのメッシュからもう一方のメッシュへの変換である、項目２０に記載のシステム。
（項目２３）
上記第１の変換および上記第２の変換が、ボクセルからピクセルへの連続的な変換である、項目２０に記載のシステム。
（項目２４）
上記パノラマビューアは、ユーザの入力に応答してイメージを移し、該移されたイメージの第２の部分を決定し、該第２の部分は、上記計算された領域と交わり、該パノラマビューアは、上記第２の変換を、該決定されたイメージの該第２の部分に適用し、第２の変換されたイメージをもたらし、該第２の変換されたイメージは、表示のためにビューポートに描画される、項目２０、項目２１、項目２２および項目２３のうちのいずれか一項に記載のシステム。
（項目２５）
上記パノラマビューアが、第１の変換されたイメージと第２の変換されたイメージとの間の補間を決定する、項目２４に記載のシステム。
（項目２６）
上記イメージは、該イメージを取り込んだカメラの角度に基づいて調整される、項目２０に記載のシステム。
（項目２７）
上記イメージはパノラマのイメージである、項目２０、項目２１、項目２２、項目２３および項目２６のうちのいずれか一項に記載のシステム。
（項目２８）
パノラマへの注釈を処理する方法であって、
該方法は、
（ａ）第１のパノラマの中のフィーチャーに対する第１のユーザ注釈を受け取ることと、
（ｂ）第２のパノラマの中の該フィーチャーに対する第２のユーザ注釈を受け取ることと、
（ｃ）該フィーチャーに対する該第１のユーザ注釈に対して生成されるデータと該フィーチャーに対する該第２のユーザ注釈に対して生成されるデータとの交わりに基づいて座標を決定することと、
（ｄ）該フィーチャーを表現する注釈に関連した該座標を格納することと
を含む、方法。
（項目２９）
（ｅ）第３のパノラマ内に注釈を描画することであって、上記座標に従って該第３のパノラマ上に該注釈を投影することを含む、こと
をさらに含む、項目２８に記載の方法。
（項目３０）
上記決定すること（ｃ）は、上記フィーチャーに対する該第１のユーザ注釈に対して生成されるデータと該フィーチャーに対する該第２のユーザ注釈に対して生成されるデータとの交わりに基づいて３次元の座標を決定することを含む、項目２８に記載の方法。
（項目３１）
上記受け取ること（ａ）は、上記第１のユーザ注釈を受け取ることを含み、該第１のユーザ注釈は、第１のメタデータを含み、
上記受け取ること（ｂ）は、上記第２のユーザ注釈を受け取ることを含み、該第２のユーザ注釈は、第２のメタデータを含む、項目２８に記載の方法。
（項目３２）
上記受け取ること（ａ）は、上記第１のユーザ注釈を受け取ることを含み、該第１のユーザ注釈は、上記第１のパノラマのイメージの第１の縦揺れ、第１の横揺れおよびロケーションを含み、
上記受けること（ｂ）は、上記第２のユーザ注釈を受け取ることを含み、該第２のユーザ注釈は、上記第２のパノラマのイメージの第２の縦揺れ、第２の横揺れおよびロケーションを含む、項目２８、項目２９、項目３０および項目３１のうちのいずれか一項に記載の方法。
（項目３３）
上記決定すること（ｃ）は、上記第１のパノラマのイメージの第１の縦揺れ、第１の横揺れおよびロケーション、ならびに上記第２のパノラマのイメージの第２の縦揺れ、第２の横揺れおよびロケーションに基づいて上記交わりを決定することを含む、項目３２に記載の方法。
（項目３４）
パノラマの注釈を処理するシステムであって、
該システムは、
第１のパノラマの中のフィーチャーに対する第１のユーザ注釈を受け取るサーバーであって、該サーバーは、第２のパノラマの中の該フィーチャーに対する第２のユーザ注釈を受け取り、該フィーチャーに対する該第１のユーザ注釈の第１のロケーションおよび該フィーチャーに対する該第２のユーザ注釈に対する第２のロケーションに基づいて該フィーチャーのロケーションを決定するサーバー
を含む、システム。
（項目３５）
第３のパノラマ内に上記注釈を描画するパノラマビューアであって、上記フィーチャーの上記ロケーションに従って該第３のパノラマ上に該注釈を投影するパノラマビューアをさらに含む、項目３４に記載のシステム。
（項目３６）
上記フィーチャーの上記ロケーションが３次元の座標によって画定される、項目３４に記載のシステム。
（項目３７）
上記第１の注釈は、第１のメタデータを含み、上記第２の注釈は、第２のメタデータを含む、項目３４、項目３５および項目３６のうちのいずれか一項に記載のシステム。
【図面の簡単な説明】
【００１０】
本発明の実施形態が、添付の図面への言及と共に、述べられる。複数の図面において、同じ参照番号は、同一の要素または機能的に類似した要素を示し得る。
【図１】図１は、一実施形態の実施に適した例示的な分散型のシステムの図である。
【図２】図２は、一実施形態に従って、どのように地図作成サービスがパノラマビューアと統合され得るかの例を説明する図である。
【図３】図３は、一実施形態に従った、ブラウザディスプレイの一例を描く。
【図４】図４は、一実施形態に従って、パノラマビューアによって行われる例示的な処理を説明するフローチャートである。
【図５】図５は、例示的なエクステンシビル・マークアップ・ランゲージ（ＸＭＬ）設定情報を描く。
【図６】図６は、パノラマのイメージの例を説明する。
【図７Ａ】図７Ａ、７Ｂおよび７Ｃは、パノラマビューアのビューポートとのユーザのやり取りを説明する。
【図７Ｂ】図７Ａ、７Ｂおよび７Ｃは、パノラマビューアのビューポートとのユーザのやり取りを説明する。
【図７Ｃ】図７Ａ、７Ｂおよび７Ｃは、パノラマビューアのビューポートとのユーザのやり取りを説明する。
【図８】図８は、一実施形態に従って、レンダラー（ｒｅｎｄｅｒｅｒ）によって行われる処理のフローチャートである。
【図９Ａ】図９Ａ、９Ｂおよび９Ｃは、表面と予め計算された領域とビューポートとの間の関係を説明する。
【図９Ｂ】図９Ａ、９Ｂおよび９Ｃは、表面と予め計算された領域とビューポートとの間の関係を説明する。
【図９Ｃ】図９Ａ、９Ｂおよび９Ｃは、表面と予め計算された領域とビューポートとの間の関係を説明する。
【図１０Ａ】図１０Ａおよび１０Ｂは、変換パラメータの生成についての単純な例を説明する。
【図１０Ｂ】図１０Ａおよび１０Ｂは、変換パラメータの生成についての単純な例を説明する。
【図１１】図１１は、本発明の一実施形態に従って、曲げられたパノラマの例を描く。
【図１２】図１２は、図１１のパノラマを形成するための横揺れおよび縦揺れに基づく例示的な変換を描く。
【図１３】図１３は、本発明の一実施形態に従って表示される例示的なパノラマイメージを描く。
【図１４】図１４は、一実施形態に従った、ユーザ注釈に対する座標を生成する方法を説明する図である。
【図１５】図１５は、一実施形態に従った、ユーザ注釈座標の生成において行われる処理のフローチャートである。
【００１１】
本発明は、添付の図面への言及と共に述べられる。要素が最初に現れる図面は、対応する参照番号の中の最も左側の数字または最も左側の複数の数字によって典型的に示される。
【発明を実施するための形態】
【００１２】
本発明は、パノラマのイメージを描画することおよび閲覧することと、パノラマのイメージに注釈をつけることと、そのアプリケーションとに関連する。本発明の明細書の発明を実施するための形態において、「一実施形態」、「実施形態」、「例示的実施形態」などへの言及は、述べられる実施形態が特定の特色か、特定の構造か、または特定の特徴かを含み得ることを示すが、必ずしも全ての実施形態が、特定の特色、構造または特徴を含まないことがあり得る。その上、そのような語句は、必ずしも同じ実施形態を参照しない。さらに、特定の特色、構造または特徴が、実施形態に関して述べられる場合、他の実施形態に関してそのような特色、構造または特徴をもたらすことは、明白に述べられるか否かに関わらず当業者の有する知識の範囲内で提示される。
【００１３】
図１は、本発明の実施形態の実施に適した分散型のシステムである。クライアント１１０は、例えばインターネットまたはローカルエリアネットワークのようなネットワークを渡って、１つ以上のサーバー１５０と通信する。クライアント１１０は、プロセッサと、ローカルメモリと、ディスプレイと、キーボードまたはマウスのような１つ以上の入力装置とを有する汎用コンピュータであり得る。あるいは、クライアント１１０は、例えばモバイルハンドセットのようなコンピューティング装置に特化され得る。サーバー１５０は、同様に、クライアント１１０にデータを供給できる任意の汎用コンピュータを用いてインプリメントされ得る。
【００１４】
クライアント１１０は、パノラマビューア１２０を実行し、パノラマビューア１２０の動作はさらに本明細書に述べられる。
【００１５】
図１によって説明される通り、パノラマビューア１２０は、サーバー（単数または複数）１５０からの設定情報１３０を要求する。本明細書にさらに詳しく論じられる通り、設定情報は、ロードされるパノラマについてのメタ情報を含み、そのメタ情報は、パノラマ内に他のパノラマへのリンクについての情報を含む。実施形態において、設定情報は、エクステンシビル・マークアップ・ランゲージ（ＸＭＬ）のような形式で与えられる。パノラマビューア１２０は、パノラマに対して、例えばパノラマのイメージの形式またはパノラマのイメージタイルの形式で、ビジュアルアセット（ｖｉｓｕａｌ  ａｓｓｅｔ）１４０を検索する（ｒｅｔｒｉｅｖｅ）。別の実施形態において、ビジュアルアセットは、設定情報を関係のあるファイル形式で含む。本明細書にさらに述べられる通り、パノラマビューア１２０は、設定情報１３０およびビジュアルアセット１４０から生成されるような、パノラマおよびさらなるユーザインタフェース要素のビジュアル表現（ｖｉｓｕａｌ  ｒｅｐｒｅｓｅｎｔａｔｉｏｎ）を、クライアントディスプレイ上に与える。ユーザが、パノラマのビジュアル表現を操作するために入力装置とやり取りするときに、パノラマビューア１２０は、必要に応じて、ビジュアル表現をアップデートし、さらなる設定情報およびビジュアルアセットをダウンロードするように処理する。
【００１６】
一実施形態において、パノラマビューア１２０は、スタンドアローンのアプリケーションであり得、すなわちそれは、Ｍｏｚｉｌｌａ  ＦｉｒｅｆｏｘまたはＭｉｃｒｏｓｏｆｔ（登録商標）  Ｉｎｔｅｒｎｅｔ  Ｅｘｐｌｏｒｅｒのようなブラウザ１１５内で実行され得る。パノラマビューア１２０は、例えば、ブラウザ１１５内のスクリプトとしてか、ブラウザ１１５内のプラグインとしてか、またはＡｄｏｂｅ（Ｍａｃｒｏｍｅｄｉａ）Ｆｌａｓｈプラグインのようなブラウザプラグイン内で実行するプログラムとして実行され得る。一実施形態において、パノラマビューア１２０は、参照により本明細書内にその全てが援用される米国特許第７，１５８，８７８号「ＤＩＧＩＴＡＬ  ＭＡＰＰＩＮＧ  ＳＹＳＴＥＭ」で述べられるような、地図作成サービスと統合される。
【００１７】
図２は、どのように地図作成サービス２１０がパノラマビューア１２０と統合され得るかの例を説明する。地図作成サービス２１０は、地図のビジュアル表現を、例えば地図タイルのグリッドへのビューポートとして表示する。地図作成システム２１０は、マークアップ要素およびスクリプト要素の組み合わせを用いて（例えば、ＨＴＭＬおよびＪａｖａ（登録商標）ｓｃｒｉｐｔを用いて）、インプリメントされる。ビューポートが動かされるとき、地図作成サービス２１０は、要求された地図タイルがそれまでにローカルキャッシュメモリにキャッシュされていないことを仮定して、サーバー（単数または複数）１５０からのさらなる地図タイル２２０を要求する。地図タイル２２０を供給するサーバー（単数または複数）は、パノラマタイル１４０か、または本明細書に含まれる他のデータかを供給するサーバー（単数または複数）と、明白に同一か、または明白に異なり得る。
【００１８】
一実施形態において、ブラウザ１１５が、サーバー（単数または複数）１５０からパノラマビューア１２０に対してプログラム２５０をダウンロードし、プログラム２５０を動かすのに必要な全てのプラグインをインスタンス化する（ｉｎｓｔａｎｔｉａｔｅ）ように進行することを、地図作成サービス２１０は要求し得る。プログラム２５０は、Ｆｌａｓｈファイルか、または一部の他の実行可能なコンテンツの形式かであり得る。パノラマビューア１２０は、上記に述べられるように実行および動作する。あるいは、設定情報１３０および対等のパノラマタイル１４０は、地図作成サービス２１０によって検索され得、パノラマビューア１２０に渡され得る。パノラマビューア１２０および地図作成サービス２１０は、ユーザインタフェース要素の動作を整合させる（ｃｏｏｒｄｉｎａｔｅ）ように通信し、ユーザにパノラマビューア１２０または地図作成サービス２１０のどちらかとやり取りすることを可能にするように通信し、ロケーションの変更または向きの変更が両方に反映されるように通信する。
【００１９】
図３は、ブラウザディスプレイ３００の一例であり、ブラウザディスプレイ３００は、地図作成サービス２１０のような地図作成サービスと、パノラマビューア１２０のような統合されるパノラマビューアとの両方を与える。地図作成サービスは、「Ｓｔｒｅｅｔ  Ｖｉｅｗ」とタイトルをつけられるボタン３１０を提供し、ボタン３１０は、選択されたときに、好ましくは、パノラマデータが利用可能であるエリアの地図の外観を変更する。例えば、図３において、利用可能なパノラマデータを有するストリートがハイライトされる。このハイライトは、例えば、色をつけられた輪郭および／もしくは陰影をつけられた輪郭であるか、色をつけられた覆いおよび／もしくは陰影をつけられた覆いであるか、または色および／もしくは陰影の変更かであり得る。これは、地図作成サービスに供給される地図タイルと共に透明イメージを用いることによって、または地図作成サービスに供給される地図タイルの中にその効果を直接含むことによってインプリメントされ得る。
【００２０】
地図作成サービスは、地図上の地点をさらに選択することによって、ユーザにパノラマビューアを起動させることを可能にする。ユーザによって地点が選択されたとき、キャラクターアイコン３２０またはアバターアイコン３２０は、地図上の地点で表示される。一実施形態において、アバターアイコンは、アバターアイコンがどの方向に面しているかのインジケータを含み、そのインジケータは、図３において、アバターアイコンの下の矢印として表される。
【００２１】
一実施形態において、パノラマビューアが地図作成サービスによってインスタンス化されるときに、パノラマビューアは、アバターアイコン３２０と関連した情報の吹き出しウィンドウに埋め込まれるビューポート３３０の形式で与えられる。ビューポート３３０内のパノラマのビジュアル表現の向きは、アバターアイコン３２０の向きと一致する。ユーザがビューポート３３０内でパノラマのビジュアル表現を操作したとき、パノラマビューアは、向きまたはロケーションの全ての変更を地図作成サービスに通知することにより、地図作成サービスがアバターアイコン３２０の向きおよびロケーションをアップデートし得る。同じように、ユーザが、地図作成サービス内でアバターアイコン３２０の向きまたはロケーションを操作したとき、地図作成サービスは、パノラマビューワーに通知することにより、パノラマビューワーがそのビジュアル表現をアップデートし得る。
【００２２】
一実施例において、パノラマビューアのビューポート３３０は、選択されたエリアのパノラマのイメージを与える。ユーザは、３６０度見渡すために、イメージ上をクリックし、イメージの周りにドラッグし得る。図３に描かれる例示的なビューポート３３０において、様々なユーザインタフェース要素は、基礎をなすパノラマに追加される。これらの要素は、例えば、ビューポートの左脇上のズームおよびパニング制御（例えばナビゲーションボタン）と、パノラマ自体の中に直接に提供されるライン／バー、矢印およびテキストの形式の注釈の左脇上のズームおよびパニング制御とのようなナビゲーション入力を含む。注釈は、３次元の様式で描画され、３次元の様式は、パノラマに描かれる３次元の景色におおよそ一致する。
【００２３】
図３において、例えば、ビューポート３３０におけるライン／バーは、対応する地図に描かれるストリートに対応し、さらに地図に描かれるストリートと同じ色で描画され得る。複数の矢印が（クリックすることによって、またはストリートラインに沿ってドラッグすることによって）ユーザによって選択可能であり、矢印は、別の利用可能なパノラマが存在するそれぞれの方向に進む。これらは、ユーザがストリートを上方および下方へナビゲートする（ｎａｖｉｇａｔｅ）こと（すなわち、そのストリートが閲覧される立場から、立場を変更すること）を可能にする。ユーザが３６０度見渡すとき、ラインが基礎をなすストリートの上に残存し、矢印がいつでもスクリーン上に見えるように、ラインおよび矢印は、基礎をなす画像を滑らかにたどる。これは、まっすぐ前方を見る間か、または店先のそばを見る間、ユーザがストリートに沿ってナビゲートすることを可能にする。
【００２４】
ユーザがビューポート内をナビゲートするために矢印上をクリックするとき、ズームクロスフェード効果および他のビジュアル合図は、ユーザに動きの感覚を与える。ユーザが２つのストリートの交差点に到着するとき、それぞれのストリートに対して一つの緑のラインおよび二つの矢印が存在する。これらの全てが同時に見え、全てがラベルで表示されることにより、ユーザは、最新のロケーションを知ることができ、任意の方向に進み得る。この技術は、難なく、４つより多い方向を有する複合の交差点を収容できる縮尺にし得る。ユーザが、道は続くがさらに利用可能な画像がない「行き止まり」に到達するとき、矢印は、ユーザがナビゲートし得る方向を示すストリート上に一つだけ存在する。他の方向について、イメージに埋め込まれる記号およびメッセージは、この方向において画像が利用可能でないことをユーザに通知するように与えられ得る。
【００２５】
ユーザインタフェースは、ストリートを歩いて行くためのラインに沿ってナビゲートすることに制限されず、有用な場合にユーザがそのライン要素からわき道へそれること（例えば、何かを近くで見るためにストリートの向かい側に渡ること）を可能にするように難なく拡張され得る。その上、ストリートからスナップオフ（ｓｎａｐ  ｏｆｆ）することと、近隣のエリア内で自由にナビゲートすることとをユーザが所望することが予期され得る環境（例えば、公園、広場、ショッピングエリアまたは他の歩行者にとって都合のよい公共の場所（Ｐｅｄｅｓｔｒｉａｎ−ｆｒｉｅｎｄｌｙ  ｐｕｂｌｉｃ  ｐｌａｃｅ））が都市内に存在する。そのインタフェースは、この機能性を提供するために、「自由な動きのゾーン」を用いて難なく高度化される。ユーザインタフェースが分離したストリートレベルのパノラマ間のナビゲーションのコンテキストの中で提供されるが、ストリートに沿ってナビゲートすることがビデオと同じ程度に滑らかであり得るように、ユーザがパノラマのデータの比較的連続的な集合を介してナビゲートすることを可能にするようにユーザインタフェースが同様によく用いられ得ることもまた、留意されるべきである。
【００２６】
ユーザインタフェース要素の動作およびインプリメンテーションは、下記にさらに詳細に述べられる。
【００２７】
図４は、本発明の実施形態に従った、例えばパノラマビューア１２０のようなパノラマビューアによって行われる処理の典型的なフローチャートである。
【００２８】
ステップ４０２において、パノラマビューアは、与えられる初めのパノラマに対する識別子と、ビューポートのサイズおよびパノラマ内で閲覧される向きのような様々なビューポートパラメータとを受け取る。この情報は、例えば地図作成サービスにおいてＦｌａｓｈプラグインとＪａｖａ（登録商標）ｓｃｒｉｐｔとの間でＦｌａｓｈｖａｒｓまたはＥｘｔｅｒｎａｌＩｎｔｅｒｆａｃｅを用いることによって、地図作成サービスからパノラマビューアへ渡され得る。
【００２９】
ステップ４０４において、パノラマビューアはパノラマ識別子を用い、それによりサーバーからの設定情報（例えばＸＭＬファイル）を要求する。図５は、典型的なＸＭＬ設定情報５００を描き、典型的なＸＭＬ設定情報５００は、下記にさらに詳細に論じられる。ＸＭＬは構文解析され、その情報は、パノラマビューアによる使用のために様々なデータ構造にロードされる。一実施形態において、ＸＭＬは、最新のパノラマのデータプロパティおよび投影プロパティのようなパノラマビューアに対する情報と、他のパノラマへのリンクを含むパノラマ内の注釈／リンクについての情報とを含む。
【００３０】
ステップ４０６において、パノラマビューアは、パノラマに対するビジュアルアセットを要求し、受け取ったビジュアルアセットを、例えばローカルメモリ／ローカルストレージに格納する。一実施形態において、パノラマビューアは、ビジュアルアセットのキャッシュを維持し得、帯域幅の使い方をキャッシュに存在しないビジュアルアセットの検索に制限する。図６は、初めのパノラマのイメージ６００の例を説明する。完全なパノラマのイメージ６００は、パノラマビューアによって検索され得るか、またはパノラマのイメージ６００は、複数のパノラマイメージタイルに分割され得、そのタイルは、パノラマビューアによって必要なときにのみ要求され得る。
【００３１】
ステップ４０８において、パノラマビューアは、ビューポートの中のパノラマのビジュアル表現をステップ４１０において描画することに備えて、設定情報およびビジュアルアセットを処理する。ビジュアルアセットに関して、パノラマビューアは、パノラマイメージタイルを、ビューポートとオーバーラップする完全なパノラマイメージの一部に組み立て得る。本明細書にさらに論じられる通り、パノラマビューアは、平坦な表面としてか、または例えば円柱または球のようなテクスチャーマッピングされた３次元の表面としてかのパノラマのイメージを与え得る。ビューポートの中に与えられる注釈の覆いに関して、パノラマビューアは、設定情報を用い、それにより例えばビューポートの中に与えられるライン／バーおよび矢印のようなこれらの様々な要素に対する外形およびロケーションを計算する。
【００３２】
一実施形態において、ポリゴン／外形は、パノラマに描かれる空間に対応する３次元の空間にモデル化される。これらのポリゴン／外形は、例えばピンホールカメラモデル（例えば、焦点距離はビューポートの高さに回転中心の一定の相対的な深さを掛けて生成され得る）を用いてモデル化され得る。注釈の覆いのポリゴン／外形は、ビューポートの向きの変更に一致する方法で、３次元の空間における注釈の覆いのポリゴン／外形の向きを変更する。一実施形態において、ポリゴン／外形は、パノラマにおけるユーザの視点の最新の向きと設定情報で特定されるような注釈の方向との間の差分に等しい角度で回転される。本明細書にさらに述べられる通り、ポリゴン／外形は、平坦でないパノラマを考慮に入れるために異なった空間の軸を中心にしてさらに変換され得る。
【００３３】
ステップ４１０において、ビューポートにおけるパノラマのビジュアル表現は、描画される。
【００３４】
ステップ４１２において、パノラマビューアは、例えばマウスイベントおよびキーボードイベントのような入力イベントを取り込むことによって、入力を受け取り、管理する。パノラマビューアは、例えば、ユーザがビューポートをパンした（例えば、マウスをドラッグすることによって、またはパン制御ボタンを選択することによって）かどうか、ズームすることを選択した（例えば、パノラマ上をクリックすることによって、またはマウスでビューポートの左側のズームスライダー制御を動かすことによって）かどうか、または別のパノラマへのリンクを選択した（例えば、マウスで矢印上をクリックすることによって）かどうかを検出する。
【００３５】
ステップ４２０において、ユーザがビューポートをパンしたかどうかに関して判定がされる。ユーザがビューポートをパンした場合、制御はステップ４２２へ移る。ユーザがビューポートをパンしなかった場合、制御はステップ４３０へ移る。
【００３６】
ステップ４２２において、パノラマビューアは、サーバーまたはキャッシュのどちらかから検索される必要があるいずれかのパノラマイメージタイルとビューポートがオーバーラップするかどうかを判定する。
【００３７】
ステップ４２４において、本明細書に詳細にさらに述べられる通り、パノラマビューアは、異なった向きにおいてビューポートが正確に描画されることを可能にするために、必要な計算を実行する。
【００３８】
ステップ４２６において、パノラマビューアは、地図作成サービスにユーザによって選択された新たな向きを知らせることにより、地図作成サービスは、そのアバターアイコンの面しているインジケータをアップデートし得る。パノラマビューアは、ビューポート要素に対する外形およびロケーションを再計算し、ビューポートを描画する。この点を説明するために、図３からのパノラマビューアビューポートを描く図７Ａを考慮されたい。図７Ｂは、ユーザがパノラマを左にパンするように選択した後の結果を示す。パノラマビューアがパノラマの向きを変更するとき、パノラマに描かれる道路に対応するライン／バーは、それらの向きを変更することに留意されたい。
【００３９】
ステップ４３０において、ユーザがビューポートをズームしたかどうかに関して判定がされる。ユーザがビューポートをズームした場合、制御はステップ４３２へ移る。ユーザがビューポートをズームしなかった場合、制御はステップ４４０へ移る。
【００４０】
ステップ４３２において、パノラマビューアは、例えば、サーバーからの（またはキャッシュからの）新たなより高い解像度パノラマイメージタイルを要求するかどうか、または（例えば、そこでそのようなより高い解像度タイルが全く存在しないとき）存在するタイルを異なったクローズアップの解像度で利用するかどうかを判定する。
【００４１】
ステップ４３４において、ビューポートパラメータは、異なったズームレベルを反映するように変更される。推移は、パノラマの次のズームレベルに勢いよくズームする性質を持つ概観を与えるように、ズームレベルの間で提供され得る。図７Ｃは、ユーザが図７Ａの中のフィーチャー上にズームインするように選択した後の結果を示す。
【００４２】
ステップ４４０において、ユーザが別のパノラマへのリンクを選択したかどうかに関して判定がされる。ユーザが別のパノラマへのリンクを選択した場合、制御はステップ４４２へ移る。ユーザが別のパノラマへのリンクを選択しなかった場合、制御はステップ４１２へ移る。
【００４３】
ステップ４４２において、パノラマビューアは、オリジナルのパノラマと新たなパノラマとの間の推移の処理を始めるように進行する。パノラマビューアは、例えば、ユーザに動きの感覚を与えるように、オリジナルのパノラマを新たなパノラマへズームし得、新たなパノラマへクロスフェードを行い得る。あるいは、パノラマビューアは、２つのパノラマの間で実際の映像の推移を再生し得る。
【００４４】
ステップ４４４において、パノラマビューアは、地図作成サービスにユーザによって選択された新たなロケーションを知らせることによって、地図作成サービスは、そのアバターアイコンのロケーションをアップデートし得、それに応じて地図をスクロールし得る。
【００４５】
一実施形態において、パノラマビューアは、任意の有利なプログラミング言語か、または任意の有利なプログラミングのスタイルかを用いてインプリメントされ得る。例えば、パノラマビューアは、ＸＭＬ設定情報、注釈、テクスチャー生成、タイル管理およびメッシュ生成を扱うように用意される別個のクラスを有するオブジェクト指向のプログラミングを用いて、インプリメントされ得る。
【００４６】
図５は、典型的なＸＭＬ設定情報５００（例えばメタデータ）を明記する。図５に示される例によって説明される通り、設定情報に対するスキーマは、「ｄａｔａ＿ｐｒｏｐｅｒｔｉｅｓ」、「ｐｒｏｊｅｃｔｉｏｎ＿ｐｒｏｐｅｒｔｉｅｓ」および「ａｎｎｏｔａｔｉｏｎ＿ｐｒｏｐｅｒｔｉｅｓ」に系統立てられる。
【００４７】
下位群のＤａｔａ＿Ｐｒｏｐｅｒｔｉｅｓは、「ｐａｎｏ＿ｉｄ」（例えば、パノラマに対するユニークな識別子）ならびに「ｉｍａｇｅ＿ｗｉｄｔｈ」および「ｉｍａｇｅ＿ｈｅｉｇｈｔ」（例えば、タイルに分けられる前のパノラマのイメージの次元）ならびに「ｔｉｌｅ＿ｗｉｄｔｈ」および「ｔｉｌｅ＿ｈｅｉｇｈｔ」（例えばタイルの次元）ならびに「ｌａｔ」および「ｌｎｇ」（例えば、最新のパノラマの座標）ならびに「ｎｕｍ＿ｚｏｏｍ＿ｌｅｖｅｌｓ」（例えば、ユーザがパノラマビューアの中で閲覧できるズームレベルの数値）のような属性を含む。この下位群はまた、「ｔｅｘｔ」（例えば、それは最新のパノラマのストリート名を表現するのに用いられ得る）、「ｃｏｐｙｒｉｇｈｔ」（例えば、コピーライト情報）および「ｓｔｒｅｅｔ＿ｒａｎｇｅ」（例えば、与えられるストリートについての番号の範囲）のような要素を含む。
【００４８】
下位群のＰｒｏｊｅｃｔｉｏｎ＿ｐｒｏｐｅｒｔｉｅｓは、「Ｐａｎｏ＿ｙａｗ＿ｄｅｇ」（例えば、パノラマのイメージを生成したイメージを取り込んだ乗物の向き）ならびに「ｔｉｌｔ＿ｙａｗ＿ｄｅｇ」および「ｔｉｌｔ＿ｐｉｔｃｈ＿ｄｅｇ」（例えば、本明細書にさらに述べられる通り、勾配をつけられたフィーチャーを有するパノラマを処理するために有用な、最も高い勾配のラインの横揺れおよび縦揺れ）ならびに「ｖｅｒｔｉｃａｌ＿ｓｃａｌｅ」（例えば、比較的低いズームレベルで見えるｙ軸に沿ったイメージの比）のような属性を含む。
【００４９】
下位群のＡｎｎｏｔａｔｉｏｎ＿ｐｒｏｐｅｒｔｉｅｓは、「ｈｏｒｉｚｏｎ＿ｈｅｉｇｈｔ＿ｆｒａｃｔｉｏｎ」（例えば、注釈とタイルの画像との間の適合度を最大にするように調整され得る地平線からの垂直の位置（高さ）（見える細片の比として表される））および「ａｎｎｏｔａｔｉｏｎ＿ｈｅｉｇｈｔ＿ｆｒａｃｔｉｏｎ」（例えば、注釈を含む図面からの垂直の位置（高さ）（見える細片の比として表される））のような属性を含む。この下位群はまた、「ｐａｎｏ＿ｌｉｎｋ」の下位群を含み、「ｐａｎｏ＿ｌｉｎｋ」の下位群は、リンク記号のプロパティを述べ、リンク記号は、ユーザが近傍のパノラマか、または別の関連したドキュメントかへナビゲートすることを可能にする。「ｌｉｎｋ」下位群は、「ｌｉｎｋ＿ｔｅｘｔ」（例えば、ランディング（ｌａｎｄｉｎｇ）パノラマの解説）を要素として含み、次に述べるものを属性として含む。「ｙａｗ＿ｄｅｇ」（例えば、リンクが指す方向）、「ｐａｎｏ＿ｉｄ」（例えば、リンクされるパノラマに対する識別子）および「ｒｏａｄ＿ａｒｇｂ」（例えば、地図上の道路の色のような、道路の属性）（示されていない）。その下位群は、パノラマの中の任意のフィーチャーを識別する「ｆｌｏａｔｉｎｇ＿ｔｅｘｔ」グループまたは「ｆｌｏａｔｉｎｇ＿ｔｅｘｔ」要素をまた含み得、任意のリンク（例えば、ローカルデータリポジトリまたはウェブサイトへの）をまた備え得る（示されていない）。
【００５０】
設定情報に対する上記のスキーマが、単に説明的であり、ＸＭＬに頼らない技術を用いることを含む多数の有利な方法のうちのいずれかの方法で設計され得ることに留意されたい。
【００５１】
図８は、本発明の一実施形態に従って、レンダラーによって行われる処理のフローチャートである。
【００５２】
ステップ８０２において、レンダラーは、逆方向の変換によってビューポートの予めのイメージを予め計算する。これは、表面の一部を画定し、それは、本明細書に「予め計算される領域」として言及される。図９Ａは、これを、長方形のビューポート９２０と共に円柱の表面９００のコンテキストで説明し、そのことは、逆方向の変換によって予め計算された領域９１０を画定する。ビューポートが長方形である必要がないことと、その技術が離散化される円柱（メッシュに基づく）に対してか、または連続的なボクセルとピクセルのマッピングに対して働くこととは留意されたい。例えば、メッシュは、対応するメッシュが円柱上にある状態で、ビューポート上で画定され得る。これらのメッシュは、一様である必要がなく、順方向または逆方向のマッピングによって画定されるような互いのイメージである。円柱上のメッシュは、多くの場合、円柱の一部をカバーするだけである。連続的な変換の場合において、ビューポートの予めのイメージは、円柱の連続的な領域を画定し得る。
【００５３】
ステップ８０４において、レンダラーは、変換を予め計算し、変換は、それぞれのピクセルを予め計算された領域からビューポートにおけるピクセルにマップする。ある意味、円柱は空間の中で静止して立っていることが想定される。変更する円柱にテクスチャーイメージをアタッチする（ａｔｔａｃｈ）代わりに、テクスチャーは円柱上で「スライドする」ことが想定される。
【００５４】
ステップ８０６において、レンダラーは、ユーザの入力に応答してイメージ／テクスチャーを移す。
【００５５】
ステップ８０８において、レンダラーは、イメージ／テクスチャーのその一部を決定し、イメージ／テクスチャーは、表面の予め計算された領域と交わる。これは、ビューポートの中で描画される必要があるピクセルのセットを画定する。ユーザが近時、視点を変更した場合、これはアップデートされる必要がある。より正確に、ステップ８０６において、ビューポートの左側または右側への任意のパンは、対応する方向におけるテクスチャーを移すことによって難なく達成され得、それにより予め計算される領域を用いて異なった交わりを生成する。同じように、上方または下方への任意のパンは、これらの方向に沿ってテクスチャーを移すことによって達成される。パンするいずれの任意の方向も、対応する方向のテクスチャーを単に移すことによって達成される。予め計算された領域との新たな交わりは、いつも生成される。これは、図９Ｂおよび図９Ｃにおいて説明され、そこで、９５０は予め計算された領域を表現し、９６０はイメージ／テクスチャーを表現する。
【００５６】
ステップ８１０において、予め計算された変換は、イメージ／テクスチャーの一部に適用され、イメージ／テクスチャーの一部は、予め計算された領域と交わる。
【００５７】
最後に、ステップ８１２において、変換された画像は、ビューポートに描画される。
【００５８】
一実施形態において、レンダラーは、直線構成の投影のプロパティを利用することにより、パノラマのイメージの描画のスピードを上げる。円柱のような表面が、際限のないように閲覧される場合、それは、自然な動作（例えば、軸に沿った移動、および軸を中心にした回転）を有するＧが与えられるグループである。同じように、際限のないように閲覧される場合、テクスチャーはまた、面における移動が与えられるグループＨである。ＧとＨとの間に標準的な準同型が存在することがわかる。言い換えれば、例えばｘ方向において、その軸を中心にした円柱の回転は、テクスチャーの移動に等しい。例えばｙ方向において、その軸に沿った円柱の移動は、テクスチャーの移動に等しい。これは、レンダラーに、全ての投影パラメータを予め計算させることを可能にし、テクスチャーの移動としてビューポートの変更をシミュレートさせることを可能にする。図１０Ａおよび図１０Ｂは、スクリーン空間からテクスチャー空間への投影パラメータを計算する方法の例を説明する。図１０Ａおよび図１０Ｂによって説明される通り、
（１）スクリーン１０２０上の点Ｍが座標（ｘ，ｙ）を有する場合、それは空間において座標（ｘ，ｙ，Ｒ）を有し、そこでＲは円柱１０１０の半径である。
（２）この場合、
【００５９】
【数１】
2014170580.tif 000003
【００６０】
であり、テクスチャー空間において、点Ｐは次の座標を有する。
【００６１】
【数２】
2014170580.tif 000004
【００６２】
最新のズームレベルに基づく動的なテクスチャーが生成され、イメージ空間の中に位置づけられ得る。ユーザが視点を変更するとき（例えば、ズームすることまたはパンすることによって）、このテクスチャーは変化する。このテクスチャーは、適切なレベルおよび適切な縮尺でタイルの角錐からタイルを連結することによって得られ得る。一部のタイルが欠けている場合、タイルの角錐における親のレベルに向かってタイル上にフォールバックし（ｆａｌｌ  ｂａｃｋ）得る。テクスチャーは、円柱の上にマップされるようにモデル化される。投影は、スクリーン空間を覆って行われる。この非線形の投影は、区分的にアフィン（ａｆｆｉｎｅ）変換として近似され得る。より正確に、円柱およびスクリーン空間は、三角形のメッシュを用いて離散化され得る。それぞれの三角形は、それを覆うテクスチャーの１つを線形に（またはむしろ、アフィンに）マッピングすることによって描画され得る。これは、３つの点上のアフィン変換のアクション（従って、三角形の使用）によってアフィン変換がユニークに決定されるので、２次元の面におけるアフィン変換としてｗｅｌｌ−ｄｅｆｉｎｅｄである。メッシュは、スクリーン空間において（かつ、テクスチャー空間においてではない）一様にされ得る。スクリーンメッシュは、ズームレベルにかかわらず、常に同じである。異なったテクスチャーメッシュは、ズームレベルに依存して用いられ得る。それぞれの三角形に対して、テクスチャーメッシュは、スクリーンメッシュにおけるユニークな三角形と、ユニークな（アフィン）変換マトリックスとに対応する。そのようなマトリックスは、スクリーンマトリックスとテクスチャーマトリックス（の逆）の積として予め計算され得る。
【００６３】
ユーザがパンしたとき、レンダラーが行う必要がある全てのことは、テクスチャーを調整および／またはリフレッシュすることである。これは、それがメモリコピーから成るため、敏速である。大きなひとまとまりのピクセルをコピーすることは、種々のプログラミング言語において、通常、非常に最適化される。
【００６４】
一実施形態において、ズームインすることは、水平なビジョンのフィールドおよび垂直なビジョンのフィールドの両方を２つに分割することと、テクスチャーを生成するように次のズームレベルを用いることから成る。ユーザがズームイン／ズームアウトする場合、パノラマビューアは、アニメーションを滑らかにするように、いくつかのビットマップイメージを予めキャッシュし得る。投影自体に関する限り、不可欠なズームレベルに対して、変換マトリックスの様々なセットを用い得る。不可欠でないズームレベルに対して、前のズームレベルと次のズームレベルとの間に、変換マトリックス（それでも敏速な）を線形に補間し得る。
【００６５】
ピクセルが四角であることが想定される場合において、それらは、均一の連続した角度と対応する。与えられるピクセルのビジョンの基本フィールドは、水平の方向および垂直の方向において同じである。これは、トレードオフ（ｔｒａｄｅ−ｏｆｆ）がなされることを可能にする。例えば、直線を厳密に保つことを選択し得るが、これは、側部において比較的激しい歪みになる。あるいは、直線が少し曲がった状態になるようにすることを決め得、それにより歪みの量を減らし得る。一実施形態において、オリジナルのイメージの高さは、ビューポートの高さに縮尺される。ピクセルが四角であるため、ビューポートの高さ分のビューポートの幅の比は、ビジョンの水平のフィールドを決定する。
【００６６】
円柱よりはむしろ球の場合において、上記の想定は、もはや当てはまらない。それゆえに、ビジョンベクトルが円柱の軸に垂直の状態での円柱の軸に沿った動きしか行われないので、上記の技術は、単独で、上方／下方への本来のパンをシミュレートし得ない。それでも、上方／下方への本来のパンのモーションは、一連の変換を予め計算することと、変換の間に線形に補間することによってシミュレートされ得る。
【００６７】
一実施形態において、パノラマビューアは、平坦でないパノラマを扱うように設定される。どのパノラマも、平坦および水平なフィーチャーを描くとは限らない、例えば、Ｓａｎ  Ｆｒａｎｃｉｓｃｏの多くのストリートを考慮されたい。例えば、パノラマを取り込むために用いられる、乗物の上に乗せられるカメラは、地面に対して平行である。このように、急な傾斜の上を走ることは、間違った方向に向けられた写真をもたらし得る。それゆえに、そのような状況において、現実の世界における垂直な建物がテクスチャー空間において垂直であることを保証するように、パノラマを曲げることは、有利であり得る。図１１は、どのようにしてパノラマ１１００がそう曲げられ得るかの例を描く。図１２によって説明される通り、その例は、周期的な関数におおよそ従い、その関数は、パノラマの勾配を考慮に入れる方法で、ビューポートの配置、および注釈の生成を導くのに用いられ得る。
【００６８】
本明細書に示される通り、設定情報は、パノラマにおける最も高い勾配の横揺れおよび縦揺れのような投影プロパティを含み得る。図１２によって説明される通り、パノラマビューアは、曲げられたパノラマの正弦曲線の細片にビューポートを押し込めるために、最も急な勾配の方向の横揺れおよび縦揺れを用い得る。ビューポートにおける注釈要素の描画はまた、パノラマの勾配の横揺れ情報および縦揺れ情報を考慮に入れるために修正され得る。ライン／バーおよび矢印の空間の向きは、横揺れ情報および縦揺れ情報に基づいて変換され得るか、あるいは、注釈の横揺れと最も急な勾配の横揺れとの間の関連に基づいて評価され得る。図１３は、パノラマの勾配についての設定情報に関してのそのような処理の結果を説明する。パノラマは、急な勾配をつけられたストリートについてのパノラマのイメージの中の垂直な建物を正確に配置する。その上、道路を描くライン／バー（例えばストリートラインメタデータ）は、ストリートの勾配におおよそ一致する角度で傾けられる。
【００６９】
一実施形態において、パノラマビューアはまた、パノラマイメージへのユーザ注釈を促進することが可能である。パノラマへのユーザ注釈は、３次元空間における注釈を参照する方法に対する課題を表す。
【００７０】
図１４および図１５は、３次元空間においてユーザ注釈に対処する実施形態を説明する。図１５において説明される処理は、パノラマビューア（または地図作成サービス）で、サーバーで、またはその２つの組み合わせで、生じ得る。
【００７１】
図１５を参照すると、ステップ１５０２において、ユーザは、１つのパノラマに対する注釈を入力する。パノラマビューアは、多数の異なった方法のうちのいずれかのユーザ入力を受け取り得、ユーザが注釈をつけることを所望するパノラマ上のクリックイベントを即座に受け取ることによることを含む。パノラマ上の注釈の２次元のロケーションは、一部の有利な座標システム（例えば、パノラマイメージのロケーションによるか、または横揺れおよび縦揺れの座標による）において記録される。
【００７２】
ステップ１５０４において、ユーザは、パノラマビューアにおいて近くの別のパノラマにナビゲートし、注釈をつけられる同じフィーチャーを捜し出し、再び第２のパノラマに対して注釈を入力する。パノラマビューアまたは地図作成サービスはまた、十分想定されるように、タイトル、リンク、グラフィックスなどのような注釈に関連した更なるメタデータを加える機能を差し出す。
【００７３】
ステップ１５０６において、２つのパノラマ上の注釈の座標は、その注釈に対する３次元の座標を生成するのに用いられる。図１４において説明される通り、パノラマ１４１０、パノラマ１４２０に対するイメージを撮ったカメラの位置が知られ、かつ２次元のイメージに関連するユーザ入力の注釈座標が知られるものと仮定して、１４５０に描かれるようなその２つの交わりを計算することは、可能である。その結果は、注釈に対する３次元の座標である。
【００７４】
ステップ１５０８において、注釈に対する３次元の座標は、その注釈に割り当てられ、注釈のデータベースの中に格納される。注釈は、計算された座標の、一部の有利な範囲内の任意のパノラマ（ユーザによってオリジナルに注釈をつけられなかったパノラマを含む）に含められ得る。
【００７５】
あるいは、関連する縦揺れの情報が注釈にとって特に重要でない場合には、両方のパノラマ上の１次元の横揺れ方向としてユーザ注釈を受け取ることが可能であり、そのことは、注釈への２次元の土地のコード（ｇｅｏｃｏｄｅ）の割り当てを（デフォルトの縦揺れの情報の有無を問わず）促進する。
【００７６】
本発明の様々な実施形態が上記に述べられたが、それらが例示のために与えられたことと、それらが制限されないことは理解されるべきである。当業者にとって、本発明の範囲から逸脱することなくその中で様々な改変がなされ得ることは明らかである。さらに、本明細書（概要の項および要約の項を除く）に提供される、本発明の、発明を実施するための形態が、特許請求の範囲を解釈するのに用いられるように意図されることは、正しく認識されるべきである。概要の項および要約の項は、発明者らによって予期されるような、本発明の１つ以上の例示的実施形態（しかし、全ての実施形態ではない）を明記する。
【００７７】
特定の実施形態についての前述の解説は、本発明の全体的な本質を十分に明かすものであり、本発明は、（当業者の知識を応用することによって）特定の実施形態のような様々な用途に対して、必要以上の実験なしに、本発明の全体的な概念から逸脱することなく、難なく改良および／または適合され得る。それゆえ、そのような適合および改良は、本明細書で与えられる教示および示唆に基づいて、開示される実施形態の均等物の意味内および範囲内にすることが意図される。本発明の詳述についての専門用語または表現法が、教示および示唆の観点において当業者によって解釈され得るように、本明細書での表現法または専門用語が解説の目的のためであって制限の目的のためではないことは、理解されるべきである。
【図１】
2014170580.tif 000005
【図２】
2014170580.tif 000006
【図３】
2014170580.tif 000007
【図４】
2014170580.tif 000008
【図５】
2014170580.tif 000009
【図６】
2014170580.tif 000010
【図７Ａ】
2014170580.tif 000011
【図７Ｂ】
2014170580.tif 000012
【図７Ｃ】
2014170580.tif 000013
【図８】
2014170580.tif 000014
【図９Ａ】
2014170580.tif 000015
【図９Ｂ】
2014170580.tif 000016
【図９Ｃ】
2014170580.tif 000017
【図１０Ａ】
2014170580.tif 000018
【図１０Ｂ】
2014170580.tif 000019
【図１１】
2014170580.tif 000020
【図１２】
2014170580.tif 000021
【図１３】
2014170580.tif 000022
【図１４】
2014170580.tif 000023
【図１５】
2014170580.tif 000024