説明

デジタルマッピングシステムにおけるタイルの生成と供給

【課題】見た目に美しい地図の効率的なオンライン供給を可能にするデジタルのタイルベースマッピングシステムを提供する。
【解決手段】画像タイルベースのデジタルマッピングシステムは、オフラインセッション中に地図タイルを生成し、これらタイルの選択されたセットを要求された場合にクライアントへ供給するよう構成されている。また、タイルベースのマッピングシステムにおいて、地図ラベルが地図ファイルの境界を横断する場合のような、地図ラベルおよび他のかかる特徴を取り扱うことに対する解決策である。種々の処理環境(例えば、サーバまたはその他のコンピュータデバイス)が、システムで採用できる。

【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
この出願は、2005年2月7日出願の米国仮特許出願第(未通知)号で表題「デジタルマッピングシステムにおいてタイルを生成するための方法および装置」<弁理士整理番号159164−0008(P005Z)>、2004年5月3日出願の第60/567,946号、および2004年3月22日出願の第60/555,501号の利益を主張する。加えて、この出願は2005年2月5日出願の米国特許出願第(未通知)号で表題「デジタルマッピングシステム」<弁理士整理番号159164−0005(P004)>の一部継続出願である。加えて、この出願は2005年3月23日出願の米国特許出願第(未通知)号で表題「サブ画素ビットマップを使用するグラフィックスの生成、格納、および表示」<弁理士整理番号24207−10217>に関連する。これら出願のそれぞれはその全体を引用して本明細書に組み込む。
【0002】
本発明は、マッピングシステムに関し、より詳細にはデジタル環境におけるマッピングシステムに関する。
【背景技術】
【0003】
コンピュータ化したマッピングシステムは、地理的場所についての情報を検索、識別、および発見するために開発されてきた。かかるコンピュータ化したマッピングシステムの1つの形体は、旅行計画インターネットウェブサイトを含んでいる。5千万を超える月毎の固有ユーザにより、かかる地図サイトは、非常に人気のある供与である。かかるサイトの例は、AOL社のMapQuest、ヤフー社のTelcontar社ベースの地図、およびマイクロソフト社のMapPoint.netスイートを含む。かかるサイトは全て、これから説明するような、共通のモデルにならって動作する。
【0004】
ウェブユーザが新規の地図ビューを(例えば、郵便住所を記入することで、または現在の地図ビューの付近にあるナビゲーションリンクをクリックすることで)求める場合、ユーザのウェブブラウザは、新規地図ビューの境界を示すリクエストをウェブサーバへ送る。ウェブサーバは、次に対応するベクターベースの地図データをデータベースから抽出し、地図のビットマップ画像を作図する。サーバは、そこでビットマップをユーザのウェブブラウザが対応している画像フォーマットへ変換し、画像を、時にはHTMLに埋め込んで、それが表示できるようにユーザのウェブブラウザへ返す。
【0005】
他の地図ウェブサイト、例えば英国のMultiMapsおよびオーストラリアのWhereIs等は、代わりにラスタベースの地図データベースを利用する。これらの事例では、ベクターを抽出し、地図画像を作図することは必要でない。むしろ、これらの機能は、大きい予め描画した画像の適切な一部を単に抽出することに置き換えられる。
【0006】
ベクターベースであろうとラスタベースであろうと、これらの既存のシステムは、普通には非常に劣悪な性能を示す。とりわけ、結果として得られる地図は、小さく動きが遅い傾向がある。例えば、既存の地図ビューを西へ、ビューの幅の、例えば50%だけパンする簡単なタスクを考える。従来のシステムは、普通には全く新規の画像を生成し、新規の画像をサーバからユーザのブラウザへ送信する。かかるシステムは、新規と古い地図ビューの間の50%の重複を認知し生かすことができないので、無駄が多い。ベクターベースの場合において、リアルタイムでベクターから地図画像を生成する必要がある追加様態は、一般的に読み難く、専門的な外観と雰囲気に欠ける地図の結果となる傾向があり、それによってユーザの体験を損ねている。
【0007】
他のベンダは、そのユーザがダウンロードしてインストールするカスタムソフトウェアを書くことを選んだ。この後者の手法はユーザの体験に劇的な改善を招くことができるとはいえ、ユーザのコンピュータ上にソフトウェアをインストールする必要性は、広範囲に及ぶ受入を阻害するかもしれない。
【0008】
従って、必要なのは、見た目に美しい地図の効率的なオンライン配信を容易にするデジタルマッピング(地図作成)技法である。
【発明の概要】
【0009】
本発明の1つの実施の形態は、タイルベースのデジタルマッピングシステムのための地図タイルを生成するためのシステムを提供する。システムは、デジタル地図画像を生成するための地図ペインターモジュール、デジタル地図画像から地図タイルを生成するためのタイル作成手段、およびタイル作成手段によって生成される地図タイルを格納するためのタイル記憶装置を含む。1つのかかる実施の形態では、地図ペインターモジュールは、デジタル地図画像が生成される所与の領域に対する地理的データを要求および受信するよう動作可能である。ここでは、地図ペインターモジュールによってアクセス可能である地図データ記憶装置は、所与の領域に対する1セット以上の地理的データを格納するために使用できる。地図データ記憶装置は、例えば、1セットのリッチマッピングフォーマット(RMF)ファイルを含んでいてもよい。1つの特定の構成では、遠隔マッピングエンジン(RME)ライブラリが、地図ペインターモジュールが地理的データにアクセスすることを容認するアプリケーションプログラムインタフェースを有する。
【0010】
タイル作成手段は、例えば、地図タイルが生成されるべき領域およびズームレベルを定義する構成ファイルに従い動作してもよい。構成ファイルは更に、使用する地理的データセットの少なくとも1セットおよびラベル配置情報を含む地図の作成方法を定義してもよい。タイル作成手段は、地図ペインターモジュールを使用して構成ファイルに定義された領域に対するデジタル地図画像を生成できる。1つの特定の実施の形態では、タイル作成手段は、構成ファイルに定義された大きい領域をより小さい領域へ分割するよう成され、地図ペインターモジュールを使用してこれらのより小さい領域に対するデジタル地図画像を生成する。タイル作成手段は更に、生成された地図タイルを所望の画像フォーマット(例えば、サブ画素ビットマップ、GIF、PNG、TIFF、またはJPEG)にコード化し、フォーマット付の地図タイルを格納するように構成されてもよい。システムは、更に、ユーザからの地図リクエストに応答して、タイル記憶装置に格納された地図タイルを供給するように構成される地図タイル供給システムを含んでいてもよい。
【0011】
本発明の別の実施の形態は、ユーザからの地図リクエストに応答して地図タイルを供給するように構成された地図タイル供給システムを提供する。システムは、ユーザによって要求された1つ以上の地図タイルを供給するための複数のフロントエンドタイルサーバを含む。リクエストディストリビュータが、複数のフロントエンドタイルサーバ間で地図タイルに対するリクエストを分配するために使用される。また、システムに含まれるのは、複数のバックエンドタイルサーバであり、複数のフロントエンドタイルサーバと通信可能に結合されている。各バックエンドタイルサーバは、(例えば、ディスク上でローカルにあるか、またはネットワーク上の)地図タイルへのアクセスを有し、要求された地図タイルを対応するフロントエンドタイルサーバへ提供するよう構成される。
【0012】
フロントエンドタイルサーバの少なくとも1つは、1つ以上の単色地図タイルを識別するよう構成でき、バックエンドタイルサーバの1つからこれらの単色地図タイルを要求する必要なく、単色地図タイルを供給するよう構成される。1つのかかる実施の形態では、1つ以上の単色地図タイルが、少なくとも1つのフロントエンドタイルサーバに含まれたメモリキャッシュに格納され、それによってこれらの単色地図タイルを供給することに関連するディスクアクセスに対する必要性を低減する。別のかかる実施の形態では、ユーザは、コンピュータデバイスを使用して少なくとも1つのフロントエンドタイルサーバと通信しており、少なくとも1つのフロントエンドタイルサーバは、コンピュータデバイスにローカルで利用可能である単色地図タイルをコンピュータデバイスに使用させ、それによりかかるタイルは供給される必要がない。
【0013】
地図タイルのそれぞれは、例えば、地図タイルのN×Nブロックに関連でき、地図タイルが要求されるたびに、N×Nブロックに対応する全てのN2タイルが供給できる。N2タイルの全てがキャッシュに格納できてもよい。他の実施の形態では、地図タイルは、例えば、地図タイルのN×Mブロックに関連させる(すなわち、ブロックは正方形である必要はない)。バックエンドサーバの数は、各バックエンドサーバが地図タイルの特定サブセットを供給することに使用できるようにしてもよい。ここでは、各バックエンドサーバは、その対応するサブセットの全てまたは一部をキャッシュに格納する能力があってもよい。各バックエンドタイルサーバは、地図タイルのサブセットの供給専用であり、各フロントエンドタイルサーバは、地図タイルに対するユーザリクエストを満足させることに使用する適切なバックエンドサーバを識別するように構成できる。1つのかかる実施の形態では、各フロントエンドタイルサーバは、適切な地図タイル座標に基づくハッシュ関数を使用して、バックエンドサーバを識別する。バックエンドタイルサーバは、どのサブセットを供給しているかを知る必要はないことに留意されたい、それは展開を簡略化できる。
【0014】
バックエンドタイルサーバがその地図タイルの負荷の供給に利用不可であることに応答して、各フロントエンドタイルサーバは、その負荷を残りのバックエンドタイルサーバ間で分配するよう構成できる。1つのかかる実施の形態では、各フロントエンドタイルサーバは、地図タイル座標に基づくハッシュ関数および試行カウンタを使用して、負荷を分配する。システムは更に、地図タイルを生成するための、タイル作成手段を含む地図タイル生成システムを含んでいてもよい。生成された地図タイルを格納するためのタイル記憶装置も、備えることができ、フロントエンドサーバおよび/またはバックエンドサーバのキャッシュで利用可能ではない地図タイルがタイル記憶装置からアクセスできる。
【0015】
本発明の別の実施の形態は、タイルベースのデジタルマッピング方法を提供する。方法は、デジタル地図画像から地図タイルを生成すること、地図タイルを格納すること、およびユーザの地図リクエストに応答して地図タイルの1つ以上を供給することを含む。方法は更に、ユーザのコンピュータデバイスにローカルで利用可能である単色地図タイルを識別することを含んでいてもよい。方法は更に、デジタル地図画像を生成することを含み、それは地図タイルが生成されるべき領域およびズームレベルを定義することを含む。デジタル地図画像を生成することは、例えば、使用する地理的データセットの少なくとも1セットおよびラベル配置情報を含む地図の作成方法を定義することを含んでいてもよい。地図タイルを格納することは、生成された地図タイルを所望の画像フォーマットにコード化すること、およびフォーマット付の地図タイルを格納することを含んでいてもよい。地図タイルの1つ以上を供給することは、供給された地図タイルをキャッシュに格納することを含んでいてもよい。
【0016】
1つの特定の実施の形態では、デジタル地図画像から地図タイルを生成することは、作図されるべき領域、および各領域が作図される必要がある種々のズームレベルを識別すること;領域を様々なズームレベルで必要に応じてサブ領域に分割し、それによりそれぞれのサブ領域が利用可能なメモリ内で予め描画でき;各サブ領域を所与のズームレベルで予め描画すること;予め描画した各サブ領域を描画領域に分割し、それにより各描画が利用可能なメモリ内で描画でき;描画領域を描画し、結果として得られた画像を地図タイルに切り分けること;を含んでいてもよい。1つのかかる事例では、ズームレベルでのサブ領域のそれぞれがタスクを表し、それにより領域およびズームレベルによって定義されたタスクの一覧表を提供し、並列処理がこれらのタスクを実行することへ適用される。別のかかる事例では、要求しているユーザへ表示されるべき地図は解像度を有し、描画は表示されるべき地図の解像度よりN倍大きい解像度で行われ(例えば、N>=2)、描画によって生成されたビットマップは、タイルをサブ画素ビットマップとして生成するための入力として使用される。
【0017】
本発明の別の実施の形態は、デジタル地図タイルをデジタル地図データから生成するための方法を提供する。方法は、作図されるべき領域および各領域が作図される必要がある種々のズームレベルを識別することを含む。方法は、領域を様々なズームレベルで必要に応じてサブ領域に分割し、それによりそれぞれのサブ領域は利用可能なメモリ内で予め描画できることに続く。方法は、各サブ領域を所与のズームレベルで予め描画すること、次いで予め描画した各サブ領域を描画領域に分割し、それによりそれぞれの描画領域は利用可能なメモリ内で描画できることに続く。方法は、画像を生成するように描画領域を描画すること、そして画像を地図タイルに分割することに続く。各サブ領域を予め描画することは、例えば、地理的データセットの少なくとも1セットおよびデジタル地図画像の構築方法ついての命令の表現にアクセスすることを含んでいてもよい。命令は、例として、構成ファイルに表すことができる。サブ領域は、それぞれが各ズームレベルに対する所定の固定サイズを有することができる。1つの特定の実施の形態では、予め描画する決定は、問題のある特徴がサブ領域の間の境界線を横断することを防止する。代替で、別の実施の形態では、予め描画する決定は、特徴がサブ領域の間の境界線を横断することを容認する。かかる事例では、境界線を横断する特徴に関連した2つの整列するサブ領域は、同時に予め描画されることを容認されない。予め描画する決定は、格納でき、その結果それらは(特徴がサブ領域の間の境界線を横断することを可能にする)その後の予め描画するタスクに使用できる。
【0018】
本明細書に説明した特徴および利点は、全てを包括したのでなく、とりわけ、多くの追加の特徴および利点が、図および説明を勘案して当該技術に精通する者に明白であろう。その上、明細書に使用した言葉は、読み易さおよび解説的目的のために主に選択されており、発明の主題の範囲を限定しないことに留意されたい。
【図面の簡単な説明】
【0019】
【図1】本発明の1つの実施の形態に従って構成されたタイルベースのデジタルマッピングシステムのブロック図である。
【0020】
【図2】図1のシステムに採用できる処理環境のブロック図である。
【0021】
【図3】本発明の1つの実施の形態に従ってデジタルマッピングシステムのための地図タイルを生成するために構成されたシステムのブロック図である。
【0022】
【図4】地図ラベルが地図タイルの境界を横断するタイルベースのマッピングシステムのシナリオを示す。
【0023】
【図5】地図ラベルが地図タイルの境界を横断するタイルベースのマッピングシステムのシナリオを示す。
【0024】
【図6】本発明の実施の形態に従って、図4および図5に示すシナリオに対する解決策を示し、ここでは地図ラベルは地図タイルの境界を横断することを容認されない。
【0025】
【図7】本発明の実施の形態に従って、図4および図5に示すシナリオに対する別の解決策を示し、ここでは地図タイルの境界を横断する地図ラベルは2つの部分にわたり作図される。
【図8】本発明の実施の形態に従って構成された地図タイル供給システムのブロック図である。
【発明を実施するための形態】
【0026】
見た目に美しい地図の効率的なオンライン供給を可能にするデジタルのタイルベースマッピング技法が開示される。1つの特定の実施の形態では、画像タイルベースのデジタルマッピングシステムが、オフラインセッション中に地図タイルを生成し、これらのタイルの選択されたセットを要求された場合にクライアントへ供給するよう構成されている。また、提供されるのは、タイルベースのマッピングシステムにおいて、例えば、地図ラベルまたは他の特徴が地図タイルの境界を横断する場合のような、地図ラベルおよび他のかかる特徴を取り扱うことに対する解決策である。種々の処理環境(例えば、サーバまたはその他のコンピュータデバイス)が、システムで採用できる。
【0027】
本明細書に説明した機能は、コンピュータプログラム命令によって実現されてもよい。これらの命令は、コンピュータまたはその他の処理環境の中へ読み込まれてマシンを生成でき、それにより命令は本発明の種々の実施の形態に従ってタイルベースのマッピング技法を実践するよう実行される。これらのコンピュータプログラム命令はまた、製品を提供するようプロセッサ可読媒体内にコード化されてもよい。数多くのどのようなプログラミング言語またはその組み合わせ(例えば、C、C++、HTML)も、コンピュータプログラム命令を実装することに使用できる。本発明の他の実施の形態は、特設のハードウェア、例えばフィールドプログラマブルゲートアレー(FPGA)または特定用途向け集積回路(ASIC)技術等によって実装できる。同様に、この開示に照らして明白であろうように、ハードウェアおよびソフトウェアの組み合わせは、本発明の他の実施の形態を実装することに使用できる。
【0028】
システムの概観
図1は、本発明の1つの実施の形態に従って構成されたタイルベースのデジタルマッピングシステムのブロック図である。図示のように、システムは、ネットワーク105へ接続されたコンピュータデバイス103を含む。種々の供給システムもまた、ウェブ供給システム110、タイル供給システム115、および場所データ供給システム120を含むネットワーク105へ接続さる。他のコンピュータデバイス(不図示)も、ネットワーク105経由で供給システム110、115、および120と通信してもよい。
【0029】
コンピュータデバイス103は、演算するために構成されたどのような種類のデバイスであってもよく、例えばパーソナルコンピュータまたはラップトップ、携帯電話、携帯型情報端末、車両に配置されるナビゲーションシステム、携帯式GPSシステム等である。コンピュータデバイス103は、ユーザがネットワーク105上で他のデバイスおよびシステムとインタフェースおよび通信することを容認するブラウザ(または他の同様なアプリケーション)を含む。ブラウザの例は、マイクロソフト社Internet Explorerブラウザ、ネットスケープ社Navigatorブラウザ、Mozilla Firefoxブラウザ、PalmSource社Web Browser、またはネットワーク105と通信する能力のあるいずれか他の閲覧もしくはアプリケーションソフトウェアを含む。一般的に言うと、コンピュータデバイス103は、ユーザがネットワーク105経由で供給システム110、115、および120にアクセスすることを容認するどのようなデバイスであってもよい。
【0030】
ウェブ供給システム110は、総体的システムの一部であり、それは初期のHTML(ハイパーテキスト記述言語)、画像、スクリプト言語(例えば、JavaScript、JScript、Visual Basic Script)、XSLT(拡張性スタイル言語変換)および、コンピュータデバイス103上のブラウザによって使用される他の静的要素を配信する。この供給システム110は、負荷分散スキームの下で動作する1つ以上のサーバを含んでいてもよく、各サーバ(またはサーバの組み合わせ)はコンピュータデバイス103に応答し、それと対話するように構成されることに留意されたい。ウェブ供給システム110は、この開示に照らして明白であろうように、従来の技術で実現できる。
【0031】
タイル供給システム115は、総体的システムの一部であり、コンピュータデバイス103からのリクエストに応答して個々の地図タイルを配信することを担当し、各タイルは、例えば、総体的タイルベースの地図へ座標付けるx,yおよびz値によって一意的に定義される。他のタイル識別スキームも同じく使用できる。供給システム115は、負荷分散スキームの下で動作する1つ以上のサーバを含んでいてもよく、各サーバ(またはサーバの組み合わせ)はコンピュータデバイス103に応答し、それと対話するように構成される。タイル供給システム115に関連したアーキテクチャおよび機能性の例は、図8を参照して更に検討する。
【0032】
場所データ供給システム120は、種々の形体の場所データをコンピュータデバイス103へ配信する総体的システムの一部である。その機能は、例えば、番地の地理的場所を見出すこと、ドライブ道案内を生成およびフォーマット化すること、およびクエリーに対する場所特定の結果を検索すること(例えば、グーグル社のLocal Searchサービスのような)を含む。他のサービスもまた、提供されてもよい。一般的に、ユーザが検索文字列を記入する場合、それはコンピュータデバイス103によってリクエスト内へ入れられ、ネットワーク105経由で場所データ供給システム120へ送られる。場所データ供給システム120は次いで、リクエストの求める内容を決定し、種々のサブシステム、例えばジオコーダ、ルート指定エンジン、および個所の検索索引等からの適切なデータとともに、コンピュータデバイス103がユーザへデータを提示することに使用できるフォーマットで(例えば、ブラウザ経由で)応答する。
【0033】
ネットワーク105は、ローカルエリアネットワーク(例えば、イントラネット)、広域ネットワーク(例えば、インターネット)、またはその幾つかの組み合わせ等のどのような種類の通信ネットワークであってもよい。代替で、ネットワーク105は、コンピュータデバイス103と供給システム110、115、および120との間の直接的接続であってもよい。一般的に、コンピュータデバイス103、ネットワーク105、および/または供給システム110、115、および120は、多種多様な通信プロトコルを使用して、どのような種類の有線または無線の接続経由で通信してもよい。
【0034】
図2は、図1のシステムに採用できる処理環境のブロック図である。例として、コンピュータデバイス103、供給システム110、115、および120に含まれたいずれかのサーバは、図示の処理環境を使用して構成できる。幾多の他の処理環境も同じく使用でき、本発明はどのような1つのかかる実施の形態に限定される意図ではない。図2はただ単に1つの可能性のある例として提供される。
【0035】
図示のように、処理環境のこの例は、バス200、1つ以上のプロセッサ205、主メモリ210、読出専用メモリ(ROM)215、記憶装置220、1つ以上の入力デバイス225、1つ以上の出力デバイス230、および通信インタフェース235を含む。バス200は、処理環境の構成要素の間での通信を許容する1つ以上の導線を含んでもよく、従来のバス技術を使用して実現できる。
【0036】
プロセッサ205は、命令を解釈して実行するどのような種類の従来のプロセッサ、マイクロプロセッサ、または処理ロジックを含んでもよい。主メモリ210は、プロセッサ205による実行のための情報および命令を格納するランダムアクセスメモリ(RAM)または別の種類の動的記憶装置を含んでいてもよい。ROM215は、プロセッサ205による使用のための情報および命令を格納する従来のROM装置または別の種類の不揮発性記憶装置を含んでいてもよい。記憶装置220は、例えば、磁気および/または光学記録媒体およびその対応する駆動部を含んでいてもよい。主メモリ210は、一般にアクセスされるデータ(例えば、地図タイル)を一時的に格納するためのキャッシュメモリも含んでもよいことに留意されたい。かかるキャッシュは、データを求めるリクエストが受信されるたびに記憶装置220にアクセスする必要性を解消することになり、それによって処理時間を低減する。
【0037】
入力デバイス225は、キーボード、マウス、ペン、スタイラス、手書き認識、音声認識、生体メカニズム等のユーザが情報を処理環境へ入力することを許容する1つ以上の従来のメカニズムを含んでいてもよい。出力デバイス230は、ディスプレイ、プリンタ、スピーカ等のユーザへ情報を出力する1つ以上の従来のメカニズムを含んでいてもよい。通信インタフェース235は、処理環境が他のデバイスおよび/またはシステムと通信することを可能にするどのようなトランシーバと同様のメカニズムを含んでいてもよい。例えば、通信インタフェース235は、ネットワーク105経由で別のデバイスまたはシステムと通信するためのモデム(例えば、56K、DSL、またはケーブル)を含んでいてもよい。
【0038】
1つの実施の形態の操作では、コンピュータデバイス103が、タイル供給システム115に格納されている地図情報を要求する。(タイル供給システム115に含まれる)フロントエンドサーバは、コンピュータデバイス103または「クライアント側」によって発信されたクエリーに、クライアント側のブラウザによってアクセスされる(例えば、JavaScriptまたは別のスクリプト言語での)命令を含むウェブページを返すことによって応答する。このようにして、クライアントのコンピュータデバイス103は、必要に応じてタイル供給システム115から地図タイルを要求し、タイル供給システムは要求された地図画像に関連したタイルを供給する。要求された地図画像は次いで、要求された地図画像を形成する1セットのタイルをウェブブラウザ中で一緒に組み合わせることによってコンピュータデバイス103で表示される。地図タイルは「予め描画」できるが、それは、図3を参照して検討するオフラインフェーズ中に地図タイルが生成されることを意味する。
【0039】
ユーザのウェブブラウザ上で大きいラスタ画像のいずれかのサブ領域ビューを地図画像として再現するために、所望のビューを一緒にカバーする最少セットのタイルのみを使用するブラウザ側のスクリプトが使用できる。従って、ユーザは地図の供給されたセクションを見ることができ、そこで見ている地図のセクションを(例えば、入力デバイス225のカーソルを使用して地図を1方向にドラッグすることによって)変更し、それによって、その時点でブラウザのウィンドウ内の新規の地図の場所を埋める新規の地図タイルを供給させる。効果としては、要望どうりに拡大/縮小でき、更に新規の場所へ適応できる仮想的にエンドレスな地図である。本発明の実施の形態に従って構成されたタイルベースのデジタルマッピングシステムによって可能となったこの特徴だけでなく、その他も前もって組み込んだ特許出願で表題「デジタルマッピングシステム」で更に詳細に検討されている。どのような所与の実現様態についても、タイルのサイズは、以下のトレードオフを前提として、経験的に確定できる:(1)より大きいタイルは所与のビューを生成することに必要なタイルの合計サイズを(画素およびバイトの両方で)増大させる傾向がある;その一方で、(2)より小さいタイルは所与のビューを生成することに必要な別々のリクエスト(例えば、HTTPリクエスト)の数を増大させる傾向がある。
【0040】
代替で、サーバ側(例えば、タイル供給システム115)上のタイルのデータベースを使用するのでなく、それぞれのタイルは、http://<domain>/7/-18/1/-145_12_7.gif等の一意のURLを使用してアクセス可能な別々のファイルに格納でき、ここではこの例でのディレクトリパス 7/-18/1 は、この事例では単に(-145,12,7) に等しいタイル座標だけによって決まる。簡略化するために、それぞれのズームレベルzの第1タイルは、タイルの左上画素が座標(0,0,z)を有するように配置できる。この設定は、それぞれのタイルへの一意の座標三重項の割り当てを、タイルの左上画素の画素のxおよびy座標をそれぞれタイルの幅および高さで整数除算することによって容易にする。従って、幾つかの実施の形態では、緯度/経度の座標、画素の(x,y,z)座標およびタイルの(x,y,z)座標の合計3つの座標系が利用されることに留意されたい。座標系のこの特定の選定は、本発明を限定する意図ではなく、幾つかの実施の形態で使用されるアルゴリズムを説明することで補助するように選択された。一般的に、どのような一貫性のある座標系または指標付け方式もここでは使用できる。次に、それぞれの画素は一意のタイルに属し、その座標は容易に演算できる。
【0041】
1つの実施の形態では、ズームレベルは、0からZまで番号付けられ、0は街路レベルに最も近いレベルを、Zは街路レベルから最も遠く離れたレベルを表す。関心事の領域内の任意の緯度/経度の点が、原点つまりオリゴ(例えば連続した米国の地理的中心等)として指定および定義される。次いで、それぞれのズームレベルzで、座標三重項(0,0,z)が、この原点を含むzレベルのラスタ画像の画素へ割り当てられる。x軸座標が左から右へ延び、y軸座標が上から下へ延びる標準的なコンピュータグラフィックスの規約を使用して、一意の座標三重項(x,y,z)が、それぞれのラスタ画像のそれぞれの画素へ割り当てられる。
【0042】
座標変換ルーチンが、ズームレベルzを与えられると、緯度/経度の座標対を適切な(x,y,z)画素座標へ変換し、その逆も同様に行われる。この変換の詳細は、初回にラスタ画像を生成することに使用された地図投影によって決まる。
【0043】
タイル生成
図3は、本発明の1つの実施の形態に従ってデジタルマッピングシステムのための地図タイルを生成するために構成されたシステムのブロック図である。
【0044】
先に述べたように、地図システムによってカバーされた領域全体の1セットの大きい連続した予め描画したラスタ画像が、ユーザに透過であるオフラインプロセスで生成できる。かかる1セットのラスタ画像が、例えば、街路のレベルから国のレベルまでの範囲に及ぶズームレベルのそれぞれについて提供される。これらの大きい画像は、その後タイルに切り分けられ、タイルはそこで適切な画像フォーマット(例えば、GIF)にコード化される。図3に示すシステムの目的は、所与の1セットの領域およびズームレベルをカバーする完全な1セットのタイルを生成することである。
【0045】
一般的に、地図タイルが作成され得る地図画像を生成するプロセスは、予め描画することと、描画することの2つの論理的プロセスに分割できる。予め描画するプロセスでは、地図の作図の仕方についての決定が、利用可能な地図データおよび構成データに基づいて成される。描画プロセスでは、実際の地図作成が、ビットマップ画像を生成すること、または地図作成をベクターベースのフォーマットで定義することのいずれかによって行われる。両プロセスのために、スピードが高度に望まれる。コンピュータによるデバイスまたは他の好適な処理環境のメモリ内でプロセスを実践することが、充分なスピードを達成する1つの方法である。
【0046】
1つの実施の形態において、予め描画するプロセスは、全ての必要な地図データ(地図画像が作図できる地理的データセット)、およびメモリ内での地図の構築方法についての決定の表現へのアクセスを有する。この決定は、例えば、構成ファイル中に表現できる。描画プロセスは、作図されるべきものの定義と一緒に、ビットマップがメモリ内で作図されるようにしてもよい。幾つかの(しかし全てではない)事例では、予め描画するプロセスは、利用可能なメモリ量の関係で描画プロセスよりずっと大きい領域をカバーできる。
【0047】
例えば、米国およびカナダの大陸全体をカバーするために、数億ものタイルが必要であるかもしれず、タイルのための合計ファイルサイズは数百ギガバイト程度もデータである。要望に応じて基調を成すデータから地図画像を作図する代わりに、地図全体がセクション(タイル)で予め作図され、適切なタイルが必要である場合にクライアントへ送られる。結局ユーザのウェブブラウザ上で組み立てられ、表示されるそれぞれのタイルベースの地図画像は、大きい既定のラスタ画像の1つのサブ領域(普通には長方形の形状にされる)に一致する。大きい領域に対するタイル生成を本明細書で検討する。
【0048】
タイル生成プロセスは、タイル作成手段305を実行することで開始される。領域を作図するために、タイル作成手段305は地図ペインターモジュール310を使用して画像を生成する。地図ペインターモジュール310は、所与の領域に対する地理的データを市販のRME(遠隔マッピングエンジン)ライブラリ315を通して入手し、RMEライブラリは地図ペインターモジュール310が地図データ記憶装置320へアクセスすることを容認するアプリケーションプログラムインタフェース(API)を採用する。代替の実施の形態では、地図ペインターモジュール310は地図データ記憶装置に直接的にアクセスするように構成でき、それによって市販のRMEライブラリ315の必要性を解消することに留意されたい。いずれにしても、地図ペインターモジュール310は作図モジュールとして動作し、ここではグラフィックスライブラリは、所望の外見を持つビットマップを生成することに使用できる。ビットマップ地図画像をアンチエイリアス処理させるために、これは、グラフィックスライブラリによって、または地図画像を要望より高い解像度で作図することによって、次いで適切な方法(例えばバイリニアまたはバイキュービック再サンプリング等)で画像を縮小するか、サブ画素ビットマップを生成する能力のあるソフトウェアへの入力としてより高い解像度のビットマップを使用することによって行うことができる。1つの特定のかかる実施の形態は、マイクロソフト社のGDI/GDI+を4倍の解像度で使用して地図画像を作図し、次いでそれぞれの512×512画素領域を1つの128×128サブ画素のビットマップタイルに変換することによってサブ画素ビットマップを生成する。
【0049】
タイル記憶装置300は、タイル作成手段305によって生成されたタイルが保存される場所である。1つの実施の形態では、記憶装置300は、簡単なディスクに基づく記憶システムとして実現されるが、それは大量のデータを効率的に受信および格納する能力のあるどのようなシステムであってもよかろう。通常のファイルシステムは、多大の数の小さいファイルを取り扱う場合に非効率的になることが多いから、タイルは複合ファイルに格納してもよい。1つの特定の実施の形態では、(予め組み込んだ米国仮特許出願第60/555,501号で検討したように)タイルは、サブ画素ビットマップとして格納されるが、どのようなビットマップまたはベクターベースのフォーマットも代わりに使用できよう。一旦地図タイルがタイル記憶装置300に格納されると、地図タイルは、要求しているクライアントへタイルを供給するデジタルマッピングシステムに対して最適化されてもよい様式で、タイルを(複数のブロックでまたは一時に1つで)読出し、それらをキャッシュに格納するプロセスに利用できる。
【0050】
タイル作成手段305は、構成ファイルで開始でき、構成ファイルは、タイルが生成されるべき領域およびズームレベル、使用するデータセット、および(例えば、色の明細、種々の特徴に対する外見、ラベルの配置等により)地図の作成方法を定義する。構成ファイルは、地図データ記憶装置320に存在しない手で配置したラベル等の追加のデータも含むことができる。1つの実施の形態では、構成ファイルは、タイル作成手段305が(地図ペインターモジュール310を使用して)地図画像を作図することに必要である全ての構成データを含む、拡張性文書記述言語(XML)でフォーマットされたテキストファイルとして実現される。この開示に照らして明白であろうように、タイル作成手段305を実行するための他のフォーマットおよび解決策も同じく使用できよう。
【0051】
明らかにしたように、タイル作成手段305は、地図ペインターモジュール310を使用して構成ファイルに定義された領域についての地図画像を作図する。1つの特定の場合には、地図の作図は、興味のある点(POI)および住所等の地理的特徴、道路と鉄道線路、都市、公園等の特徴の点、線、および領域を定義するベクターデータから目標の領域(例えば、米国中西部もしくはサンフランシスコ市、またはどこか他の地理的領域)のビットマップ画像を生成するプロセスである。領域が大きい場合、地図ペインターモジュール310が作図し、作図した地図画像全体をメモリに格納することは非実用的であり、そのためタイル作成手段305は、領域をより小さい領域に分割でき、これらを一時に1つ作図できる。大きい領域に対するタイル生成を、本明細書で更に検討する。作図されている領域が単一の連続的な画像を構成することが望ましいから、この分割は問題につながり得る。何故なら、領域の異なる部分に対しての作図決定がこれらの部分の間の境界線で位置合わせしないことがあるからである。
【0052】
1つの解決策は、図6を参照して更に検討するが、ラベルおよびその他の問題のある特徴に現在作図されている領域の内側でのみ全面的に作図されるように強制することである。この解決策は部分的に作図したラベルを防止するが、かかる特徴を配置するための可能性の範囲を限定するため、境界線に沿った地図画像の品質を低下させることがある。例として、2つの別々に作図された領域の間のような境界線を横断する道路には、別々に作図されたのでなければラベルが配置されたであろうよりずっと接近して、同じラベルが境界線の両側に配置されることがあろう。別の解決策は、図7を参照して更に検討するが、問題のある特徴を境界線に沿って配置するための決定を保存し、そこでそれに続く領域を作図する場合にこれらの決定を配慮することである。これは特徴を不都合な方式で境界線の両側に配置することを単に回避するように行われてもよいし、または特徴が境界線と無関係に配置されることを容認することもある(例えば、かかる特徴が境界線を横断することを容認することにより)。
【0053】
領域を作図するために、タイル作成手段305は、地図ペインターモジュール310を使用でき、地図ペインターモジュール310へ作図されるべき領域、所望の縮尺比、含まれるべき地理的データセット、作図すべき特徴、およびかかる特徴の作図の仕方についての妥当な情報を中継する。応答では、地図ペインターモジュール310は対応するデジタル地図画像を返し、地図画像は、タイル作成手段305によってタイルに変えられ、サブ画素ビットマップ(もしくはいずれかのビットマップまたはベクターベースのフォーマット)等の所望のフォーマットでタイル記憶装置300に格納される。
【0054】
1つの特定の実施の形態では、128×128画素のタイルサイズが使用され、タイルはGIFフォーマットで格納される。他の実施の形態は、256×256画素のタイルサイズを使用してもよく、GIF、PNG、TIFF、またはJPEGフォーマットのいずれかで格納される。それぞれの特定の実現様態の要件次第で、他のタイルサイズおよび画像格納フォーマットも、使用されてもよい。これらのタイルは一般的に規則正しい長方形のグリッドを形成し、この性質は1つの実施の形態でシステム実現を容易にする。しかし、クライアント側(例えば、コンピュータデバイス103)上での組み立てを容認するどのような形状およびサイズのタイルへの大きいラスタ画像のどのような他の分割も、また、本発明の効果を達成するために使用されてもよいことに留意されたい。
【0055】
これまでに検討したように、RMEライブラリ315は、RMF(リッチマッピングフォーマット)ファイルからのデータを照会することに使用できる市販の1つのソフトウェアである。RMEライブラリ315は、2つ以上の項目の地理的関係を関与させる情報を要求する空間的クエリーに対応している。クエリーの例は、「所与の領域内で該当する地図特徴は何か?」または「所与の領域内で該当する一定の閾値より高い優先レベルを有する地図特徴は何か?」である。空間的クエリーの結果は、地図画像そして究極的に地図タイルを生成することに使用される。RMFファイルは、他の地図フォーマットをRMFへコンパイルすることで生成される。このプロセスの恩恵は、RMFファイルにコンパイルできるあらゆる種類の地図データファイルフォーマットが、RMEライブラリ315を通して一貫性のある様式で照会できることにある。ファイルフォーマットおよびライブラリのどのような組み合わせも説明したシステムに使用できるが、唯一の要件は、所与の領域に対する地理的データを入手するために地図ペインターモジュール310が使用できるサービスが存在することに留意されたい。
【0056】
地図データ記憶装置320は、ディスク上に格納された地理的地図データであり、それはRMEライブラリ315によってアクセスされる。1つの実施の形態では、格納された地図データは、Telcontar社(デジタル地図およびナビゲーション情報の商用プロバイダ)によって1セットのRMF(リッチ地図フォーマット)ファイルにコンパイルされた市販のNavTechデータを備える。RMFは、空間的クエリーの処理のために最適化された従来の地図データフォーマットである。従って、一旦空間的にフォーマットされたデータセットにある項目が見付かると、すぐ近くの他の項目も比較的容易に見付けられる。しかし、地図データを記憶装置320内で編成することには、順次または層状等の多くの他の方式が存在することに留意されたい。使用する厳密なファイル/データセットは、タイル作成手段305の実行を制御することに使用した構成ファイルによって定義できる。どのような出所の地図データもここで置換でき、RMEライブラリ315および地図データ記憶装置320は、地図ペインターモジュール310が使用できるAPIを持つ1つのシステムであることができよう。代替で、RMEライブラリ315およびAPIの機能性は、地図ペインターモジュール310の中へ統合されてもよい。他の構成が本明細書の開示に照らして明白であろう。
【0057】
大きい領域に対するタイル生成
先に指摘したように、予め描画するプロセスは、(幾つかの事例では)利用可能なメモリ量の関係で描画プロセスよりずっと大きい領域をカバーできる。図3のシステムによって実践されるタイル生成プロセスへの改良が、大きい領域(例えば、米国およびカナダの大陸)についてタイル生成を実施可能にするように成され得る。1つの実施の形態では、構成ファイルで定義された全てのタイルの生成のためのプロセスは、以下のとおりに進行する。
【0058】
第1に、タイル作成手段305は、作図される必要がある全ての領域および作図される必要がある種々のズームレベルを調べて、領域を様々なズームレベルで必要であるサブ領域に分割し、それによりそれぞれのサブ領域は所与のメモリ量で予め描画できる。決定は所与の領域に対する実際のデータに基づくことができる。代替で、このステップをできる限り短くするために、サブ領域に対する固定のサイズ、またはそれぞれのズームレベルに対する固定のサイズが使用できる。ズームレベルでのサブ領域のそれぞれが、それ自体のタスクになり、領域およびズームレベルで定義され、一覧表に格納され、そして多大の数のタイル作成手段305がこれらのタスクを実行することへ適用できる(例えば、並列処理を使用して)。
【0059】
これらのサブ領域の間の境界線を横切る問題を回避するために、予め描画するプロセスは、問題のある特徴がこれらの境界線を横断しないことを確実でき、それによってそれぞれのサブ領域が予め描画されることを可能にし、その後に独立して全面的に描画される(図6)。代替で、1つの予め描画するプロセス中に成された決定が保存でき、それでそれらはその後の予め描画タスクにおいてアクセスでき、それにより特徴はサブ領域の間の境界線を横断できる(図7)。これは、2つの整列するサブ領域を同時に予め描画されることを回避するため、幾らかの調整を必要とする(多数のタイル作成手段305が配所される並列処理スキームを想定して)。
【0060】
タイル作成手段305がタスクの1つを一覧表から取る場合に、それは、サブ領域をタスクによって定義されたズームレベルで予め描画し、次いでサブ領域を利用可能なメモリ内で描画するのに足りる小さい描画領域に分割する。タイル作成手段305は、そこで一時に1つの描画領域を描画することへ進行し、結果として得られる画像をタイルに切り分け、そしてタイルをタイル記憶装置300に収納する。1つの特定の実施の形態では、描画は、要望の解像度の4倍で行われ、結果として得られるビットマップは、タイルをサブ画素ビットマップとして生成するための入力として使用されるが、他のサイズおよびフォーマットが、所望の出力次第で使用できる。それらの配置についての全ての決定は予め描画するプロセス中に行われるので、ラベル等の特徴は描画領域の間の境界線を横断できることに留意されたい。サブ領域がメモリ内で予め描画されおよび描画されることの両方で十分に小さくされる場合、ラベル等の特徴を配置する上で制約を強いる境界線との間の距離は少なく、結果として得られる地図は、一般的に品質が劣ることにも留意されたい。
【0061】
(例えば、タイルの境界線を横切る)途切れた特徴のない連続的な地図を描出するタイルを生成するための既に述べた方策に加えて、特徴の配置についての決定は、一定の半径の外側のどのようなものもラベルの配置に影響することがないような方式で、その半径内の地図データのみに基づいて成されることができる。かかるシステムでは、予め描画され描画されている領域がサブ領域を越えた(サブ領域の外側の半径までの)地図データにアクセスできる限り、ラベル等の特徴が横断することができない境界線を識別する必要はないかもしれない。予め描画するコードの充分な改良および十分に大きい半径により、かかるシステムは、これまでに説明した方法と比べても品質において遜色ない結果を生成できるかもしれない。都市または湖等の領域をラベル付ける場合、予め描画するプロセスは、地図データから特徴全体を読み込むことができ、ラベルを配置する処を決定する特徴のみを使用できる。これは、かかるラベルまたは同様な特徴の配置についての決定は、隣接のサブ領域についても同じであることを意味し、それでこれらの特徴は境界線を横断することを容認され得る。
【0062】
タイルベースのマッピングシステムの課題と解決策
以下は、図4から図7を参照して、これまでに説明した連続性技法の適用例を解説する。
【0063】
マッピングシステムの実施の形態は大きい領域(例えば、国、大陸、または地球でさえもの規模)を扱うことがあるから、一時に全面的領域のビットマップへのアクセスを有することは、実用的でないことがある。この課題に対処するために、これまでに明らかにしたように、全面的領域をより小さいサブ領域に分割し、一時に1つのサブ領域に対するタイルを生成することが望ましいことがある。全面的地図画像の中にエラーを導入することなくこれを行うために、1つの実施の形態はタイルおよびサブ領域にわたる連続性の課題に対処する。図4は、普通のラベル配置問題を示し、ここでは地図ラベル(「Main Street」)が地図タイルの境界(サブ領域の境界線と称する)を横断し、その一方で、図5は、それぞれのサブ領域が独立して作図される場合に出現することがある問題を示す。
【0064】
図6は、本発明の実施の形態に従って、図4および図5に示す問題に対する解決策を示し、ここでは地図ラベルは地図タイルの境界を横断することを容認されない。この手法は、サブ領域の間の境界線を横切る問題を引起すことができよう特徴が予め描画するプロセス中に配置されることを確実にし、それにより地図におけるエラーを解消するかそうでなければ低減する。
【0065】
例として、道路または鉄道線路に対する名前ラベルは、予め描画するプロセス中に配置され、そのため、それらはこれらのサブ領域の境界線を横断せず、最終的な地図が(例えば、図5に示すような)一部のみそこにあるラベルを持たないことを確実にする。都市または湖等の領域に対するラベルは、かかる特徴の形状のみに依存して配置できる。これは、かかるラベルを配置するために、特徴の一部が他のサブ領域にある場合でさえ、ラベル付けされる特徴全体が取り出されなくてはならず、ラベルが全面的領域の形状に基づいて配置されなくてはならない。重なり合ったラベルの出現を最少限にすることを追求するシステムでは、領域ラベルは、道路および鉄道線路等の他の特徴に対するラベルの前に配置されるべきであり、それによりこれらの他の特徴が1つのサブ領域において領域ラベルに影響を及ぼすことはない。何故なら、これらの影響は隣接するサブ領域での地図を作図している作図プロセスへは不明であろうし、それ故に領域ラベルの厳密な同一の配置はもはや保証されないからである。
【0066】
図7は、本発明の別の実施の形態に従って、図4および図5に示す問題に対する解決策を示し、ここでは地図タイルの境界を横断する地図ラベルは2つの部分にわたり作図される。この解決策は、それぞれのサブ領域に対する予め描画するプロセス中に成された決定を格納し、同じ特徴(またはその一部分)を含む領域だけでなく、これまでに作図した領域における特徴およびラベルの配置についての情報に基づいて特徴およびラベルを移動させるかもしれない隣接する領域を作図するためのその後のプロセスへ決定を利用可能にすることによって実現できる。
【0067】
かかる事例では、地図作成モジュール(例えば、図3に示す地図ペインターモジュール310)は、サブ領域の境界線を考慮することなくラベルを(例えば、道路上に)配置できる。これは、かかる境界線を横断するラベルが、隣接するサブ領域に対する作図プロセスに保存され利用可能であるためである。隣接するサブ領域は、横断しているラベルの配置に関する情報を受信し、その配置をそれ自体として使用し、それによりラベルは再度作図され、隣接するサブ領域にあるラベルの一部はその場所につき生成されたタイルに含まれる。この手法は、サブ領域の境界線の異なる側のタイルが境界線を横切って延びる特徴およびラベルを有することができる性質を容易にし、それによって特徴およびラベルの配置のプロセスがサブ領域の境界線を無視することを容認する。
【0068】
同じ手法が、経路標識および領域ラベルの配置へ適用できる(そしてそれはラベル付けされている領域全体を調べるという以前に述べた方法と組み合わされてもよい)。道路へ割り当てられた高低(高さで順番付けた)を有する交差する道路の作図の仕方に関する予め描画する決定は、同様に行うことができる。かかる高低を持つ道路の事例では、1セットの交差する道路を取巻く領域が、それが隣接する道路と独立していると見なされるような方式で確定され、この領域に対する決定が行われ、保存され、そのため、その決定は隣接するサブ領域、特に、高低に関して隔離されていると見られる領域と共用しているサブ領域の作図のために利用可能である。
【0069】
種々の市販ベンダから入手可能な地図データは、適用範囲と品質で大いに異なることが多い。高品質である地図を達成するために、多数の出所からのデータを組み合わせることが必要なことがある。例えば、1つのセットのデータは空港領域および空港の滑走路の最も詳細な輪郭線を有することがあるであろうし、その一方で、別のセットは空港ラベルが配置できる箇所および空港の行き帰りのドライブ道案内を生成するために使用されるべき個所についての情報を有することがあろう。多数の地図データセットの長所を生かすために、地図ペインターモジュール310は、ただ1つのセットのデータだけからでなく、様々なセットの情報を様々な出所から取得するように構成されてもよい。
【0070】
多数のズームレベルでタイルとして利用可能な大きい連続的な地図という概念は、地図領域が多数の国および大陸でさえもカバーする場合にも魅力的である。重ねて、かかるシステムは、作図している地図をサブ領域に分割すること、および様々な国について利用可能な地図タイルセットにアクセスすることについてこれまでに説明した方法を使用して実現されてもよい。これは、例えば、ただ米国の地図だけの代わりに、北アメリカ大陸全体または地球全体でさえにも対するあらゆる種類のズームレベルで単一の切れ目のない地図が生成できることを意味する。
【0071】
タイル供給
タイル供給は、この開示に照らして明白であろうように、多数の方式で実現できる。1つの手法は、それぞれのタイルにファイル名を与え、それを個々のファイルとして格納する。タイルは、そこでサーバ上に収納でき、サーバはローカルでまたはネットワークの上でリクエストによってタイルを利用可能にする。ウェブベースのシステムについて、このサーバは、それぞれのタイルを緯度、経度、およびズームレベルに従い名前付けるHTTPサーバであってもよい。この手法は、特にタイルの数が非常に多くなり得るので、供給システムに幾らかの負担をかけることがある。
【0072】
供給システムが多大の数のタイルによって引起された負担を軽減するように組み立てできる多くの方式が存在する。例えば、地図タイルを求めるリクエストを受信するシステムは、全面的なセットのタイルまたはそのサブセットをそれぞれが含む1つ以上の効率的な記憶媒体(例えば、ローカルキャッシュ)へのアクセスを有していてもよく、次いで記憶媒体からタイルを取り出し、それをリクエストに応答して中継することができる。
【0073】
図8は、本発明の実施の形態に従って構成された地図タイル供給システムのブロック図である。この構成の例は、図1のタイル供給システム115を実現することに使用できるが、記憶装置システムの一部が故障した場合にシステムを良好に応答させようと努め、大きいセットのタイルおよび大量のトラフィックを取り扱うこともできる。
【0074】
図示のように、タイル供給システムは、タイルフロントエンド(TFE)およびタイルバックエンド(TBE)の2種類のタイルサーバを含む。これらのサーバは内部ネットワークまたは他の媒体の上で通信してもよい。システムの外側から(例えば、外部ネットワーク経由で)来るタイルに対するリクエストは、負荷分散スキームを実現するリクエスト分配サブシステムによりTFE間で均等に分配される。関与したTFEは、そこで適切なTBEから地図タイルを要求し、それを要求している当事者へ返す。
【0075】
1つの可能性のある実施の形態では、タイルの全ては、それぞれのTBEのディスク記憶装置設備(例えば、記憶装置220、それは、タイル記憶装置300であってもよい)に格納されてもよい。ここでは、ディスク記憶装置設備が使用され、タイルがTFEによって要求されるたびに、タイルを含む8×8ブロックにある64タイルの残りもディスクから読出され、それがTBEのメモリキャッシュ(例えば、主メモリ210)にあるとかなり予期できる。この実施の形態はタイルの8×8ブロックを使用し、それにより合計64の隣接するタイルを同じズームレベルで提供できる。他の実施の形態は、他のブロック寸法(例えば、N×NまたはM×N)を使用できる。
【0076】
従って、同じTBEからの同じ8×8ブロックにあるタイルに対するその後のどのようなリクエストも、8×8ブロックがより最近のリクエストによってメモリキャッシュから排除されていなければ、ディスクアクセスの必要性なく、従って、より効率的に取り扱いできる。排除された場合、要求されたタイルはディスクから読出しでき、8×8ブロックは、再度メモリキャッシュに収納されてもよい。従って、TBEのメモリキャッシュのサイズと頻繁にアクセスされるタイルに対するリクエストの量との間のバランスが配慮される場合、リクエストは高い比率でメモリキャッシュから取り扱いでき、それぞれのTBEをより効率的にする。
【0077】
1つの実施の形態では、TFEは、TBE間でリクエストを分配することに使用されてよく、それにより不当に数多くのTBEを使用することなく、できる限りメモリキャッシュからのように供給間で合理的にバランスを取る方式で機能してよく、その一方で、なお全面的なタイルセットを効率的に供給できる。メモリキャッシュから供給するタイルの比率を増大させるために、TFEの全てに所与のタイル(例えば、または8×8セットのタイル)に対するリクエストを同じTBEへ向けさせることが望ましいことがあるか、および/または、TBE上の負荷が均等に分配されることが望ましいことがあり、それによりそれぞれのTBEからより全面的に便益を得る。
【0078】
例として、20のTBEがあり、それぞれが総体的地図の1/20をキャッシュに格納する能力があることを想定する。従って、地図データを求めるどのような1つのリクエストも対応するTBEによってキャッシュメモリを使用して処理できよう。1つのTBEが故障した場合、その負荷は残存する19のTBE間で分配できる。かかる事例では、それぞれの残存するTBEのキャッシュメモリは、故障したTBEの負荷のその分担を含むように(「学習」の期間の後に)結局増えることになろう。
【0079】
これらの機能は、1つの実施の形態でそれぞれのTFE上で同じハッシュ関数を使用することで実現されてもよい。ハッシュ関数は、所与のタイルを要求するTBEの番号を返す(または、その番号を演算することに使用できる)。1つの実施の形態でタイルは8×8のブロックでメモリに格納されているから、ブロックにあるそれぞれのタイルは同じTBEから要求されるべきである。この実現様態では、それぞれのタイルは、緯度および経度に基づいたxおよびy値、ならびにタイルが作図されたズームレベルを表すz値で順次に番号付けられてよい。1つの実施の形態では、ブロックは、同様に、ブロックが含むタイルのxおよびy値の対のいずれもにつき8で整数除算した結果にそのxおよびyが等しくなるように番号付けられてもよい。従って、ハッシュ関数は、1つの実施の形態で、Hash(x div 8, y div 8, z)と記述できる。Hash(x div 8, y div 8, z) MOD Nで、NはシステムにあるTBEの数であるので、ハッシュ関数によって返される値は、そこで、使用するTBEに対応する番号を計算することに使用されてもよい。
【0080】
このハッシュ関数手法は、一旦システムが適度のサイズに達して、個々のタイル間での負荷の分配の仕方についての知見がない場合に、タイル供給システム上で負荷を均等に分配する補助を行ってもよい。しかし、この手法は、TBEの1つが機能を停止した場合にシステムを支障なく機能させる課題に対処しない。
【0081】
この課題に対処するために、1つの実施の形態で別の入力、具体的には、TBEからタイルを取り出すときに成される試行回数が、ハッシュ関数へ加えられてよい。この実施の形態では、ハッシュ関数は、Hash(x div 8, y div 8, z, #attempts)と記述されてもよい。従って、TFEがタイルをTBEから取り出すその第1試行で失敗した場合、TFEは、#attemptの開始値(例えば、0または1)へ1を加えることで#attemptを増大させてよく、そこでハッシュ関数を再度実行させてもよく、ここではタイルに対してTFEを次のTBEに行かせる。このプロセスは、タイルが取り出しされるか、#attemptが事前設定の閾値、普通にはシステムにあるTBEの数より大幅に大きい数に到達するまで繰り返されてもよい。
【0082】
この手法は数多くの利点を提供する。具体的には、TBEが止まった場合、通常ならそれが供給するタイルは、ハッシュ関数によって分配され、残存するTBEによって代わりに供給されることになる。これはTFEまたはTBEの間の連絡なしに起こり得る、そして総体的システムの応答時間にほとんど影響を与えないこともある。更にシステムを強化するために、1つの実施の形態で、システム内を動き回る失敗したリクエストの数を限定するように、TFEは、故障したTBEへのリクエストを短時間の間スキップするか、または故障したTBEへのリクエストの固定数をスキップするか、またはその幾つかの組み合わせをすることがある。
【0083】
システムは、また、多数のTBEの故障も取り扱うことがあり、短い遅滞の後に、TBEが再度作働を開始した後にまたは置き換えられた後に、故障したTBEの使用を開始することもある(以前に述べた失敗したリクエストを低減するための時間法または計数法が実現された場合)。また、例えば、合計N台のTBEを持つシステムは、これらのTBEのM台が故障した場合、失敗した試行によって引起された応答時間の少しの増大を除き、一定時間の後に安定化し、N−M台のTBEのみでシステムとして機能できる。負荷分散スキームを持つ多くのフェイルオーバーは、ここに説明した原理に基づいて明白であろう。
【0084】
地図描画プロセスで生成されたタイルは、単一色を有するタイルの比率を多く含むことがある。普通には、この状況は、水域、陸地、公園、都市、構内、および他のかかる領域のために使用される色で発生することがある。同じ単一の色を自体の中に有するタイルは同一であるから、TBE上で必要である記憶量は、1つの実施の形態でこれらのタイルを個々に格納しないことで大いに低減されることがある。幾つかの実現様態では、これは、そうでなければ必要とされる記憶スペースの90+%を節約することがある。
【0085】
1つの実施の形態でシステムがこれらの単色タイルを供給できるようにするために、作成されたそれぞれのタイルについての情報を含む指標が作成されてもよい(例えば、タイルは、通常のタイル、特定色の単色タイル、破損したタイル、または行方不明のタイルであるかもしれない)。かかる指標は、1つの実現様態でTFEに格納されてよく、単色タイルが要求される場合にはいつもTFEがクライアントへ正しい色のタイルを送ることを容認する。これらの汎用の単色タイルは、TFE上のメモリキャッシュに(例えば、主メモリ210に)格納されてもよく、それらの供給をできる限り効率的にする。指標は、また、TBEマシン上に格納されてもよく、その事例では汎用のタイルはTBEからTFEへ配信され、そこで要求している当事者へ中継されることになろう。
【0086】
別の実施の形態では、単色タイルに関する情報は、全面的に、地図領域の一部のためか、または単一タイルのため、のいずれかでクライアント側に存在してもよい。指標がシステムの供給部分に存在する場合、供給部分は情報を求めるリクエストに応答してもよく、そしてクライアントは、クライアントが現在表示している領域に対する情報を単に要求し、情報を使用して単色タイルを要求することを回避する。別の実施の形態は、TFEが(またはTFEを通してTBEが)、タイルを求めるリクエストに、タイルで、ではなくて、要求されたタイルがある種の色のみを含み、従って受信する側の汎用タイルで置き換えできるという情報を返すことで応答することを容認する。いずれのかかる事例でも、TBEまたはTFEは、遠隔のコンピュータデバイスにローカルで利用可能である単色地図タイルを使用させ、それによりかかるタイルは供給される必要がない。この開示に照らして明白であろうように、作図された地図中のフルセットのタイル内の単色タイルについての知見に基づいて最適化を実現する幾つかの方式が存在する。
【0087】
本発明の実施の形態の前述の説明は、図示と説明の目的で提示された。網羅的であることや、開示したまさにその形態に本発明を限定することは意図していない。多くの改変および変形が、この開示に照らして可能である。本発明の範囲は、この詳細な説明によってではなく、この文書に添付の特許請求の範囲によって限定されることを意図している。
【符号の説明】
【0088】
103 コンピュータデバイス
105 ネットワーク
110 ウェブ供給システム
115 タイル供給システム
120 場所データ供給システム

【特許請求の範囲】
【請求項1】
タイルベースのデジタルマッピングシステムのための地図タイルを生成するためのシステムであって、
地図データ記憶装置から取得した地理的データに基づきデジタル地図画像を生成するための地図ペインターモジュールと、
前記デジタル地図画像から地図タイルを生成するためのタイル作成手段であって、生成されるべき地図タイルの領域およびズームレベルを定義し、使用する地理的データセットの少なくとも1セットを定義し、かつ、ラベル配置情報を含む地図の描き方を定義する構成ファイルに従って動作し、前記地図ペインターモジュールを使用して前記構成ファイルによる定義に従って前記領域のデジタル地図画像を、前記地図タイルとして、生成する前記タイル作成手段と、ここで、各地図タイルの境界線の周辺に描かれる前記ラベル配置情報の配置は、前記構成ファイル内の定義に従って調整可能であり、
前記タイル作成手段によって生成された地図タイルを格納するためのタイル記憶装置と、
を備えるシステム。
【請求項2】
前記地図ペインターモジュールは、前記デジタル地図画像が生成される所与の領域に対する地理的データを要求および受信するように動作可能である、
請求項1のシステム。
【請求項3】
前記地図データ記憶装置は、前記地図ペインターモジュールによってアクセス可能である所与の記憶領域に対応して1セット以上の前記地理的データを格納する、請求項2のシステム。
【請求項4】
前記地図データ記憶装置は、1セットのリッチマッピングフォーマット(RMF)ファイルを含む請求項3のシステム。
【請求項5】
前記地図ペインターモジュールが前記地理的データへアクセスすることを容認するアプリケーションプログラムインタフェースで構成される遠隔マッピングエンジン(RME)ライブラリを、更に備える請求項2のシステム。
【請求項6】
前記タイル作成手段は、前記構成ファイルに定義された大きい領域をより小さい領域に分割するよう成され、前記地図ペインターモジュールを使用してこれらのより小さい領域に対する前記デジタル地図画像を生成する、請求項1のシステム。
【請求項7】
前記タイル作成手段は、情報を前記地図ペインターモジュールへ渡し、前記渡した情報に基づく対応デジタル画像を前記地図ペインターモジュールから受信し、前記画像をタイルに分割するよう動作可能である、請求項1のシステム。
【請求項8】
前記タイル作成手段は、更に、前記生成された地図タイルを所望の画像フォーマットにコード化し、前記フォーマット付の地図タイルを格納するよう構成される、請求項1のシステム。
【請求項9】
前記所望の画像フォーマットは、サブ画素ビットマップである、請求項1のシステム。
【請求項10】
ユーザからの地図リクエストに応答して、前記タイル記憶装置に格納された地図タイルを供給するよう構成される地図タイル供給システムを、更に備える請求項1のシステム。
【請求項11】
前記地図タイル供給システムは、更に、
ユーザによって要求される1つ以上の地図タイルを供給するための複数のフロントエンドタイルサーバと、
前記複数のフロントエンドタイルサーバ間で地図タイルに対するリクエストを分配するためのリクエストディストリビュータと、
前記複数のフロントエンドタイルサーバと通信可能に結合される複数のバックエンドタイルサーバであって、それぞれは、前記タイル作成手段によって生成される前記地図タイルへのアクセスを有し、要求された地図タイルを対応するフロントエンドタイルサーバへ提供するよう構成されるバックエンドタイルサーバと、
を備える請求項10のシステム。
【請求項12】
1以上のサーバーコンピュータによって実行される、タイルベースのデジタルマッピング方法であって、
デジタル地図画像から地図タイルを生成することと、
前記地図タイルを格納することと、
ユーザの地図リクエストに応答して、前記地図タイルの1つ以上を供給することと、
を備え、
前記地図タイルの1つ以上を供給することは、ユーザのコンピュータデバイスがローカルに利用可能な単色地図タイルを識別することと、該ユーザのコンピュータデバイスがローカルに利用可能な該単色地図タイルは供給しないようにすることを含むことを特徴とする方法。
【請求項13】
地図タイルが生成されるべき領域およびズームレベルを定義することを含む前記デジタル地図画像を生成することを、更に備える請求項12の方法。
【請求項14】
前記デジタル地図画像を生成することは、更に、使用する地理的データセットの少なくとも1セット、およびラベル配置情報を含む地図の作成方法を定義することを含む、請求項13の方法。
【請求項15】
前記地図タイルを格納することは、前記生成された地図タイルを所望の画像フォーマットにコード化することと、前記フォーマット付の地図タイルを格納することとを含む、請求項12の方法。
【請求項16】
前記所望の画像フォーマットは、サブ画素ビットマップである、請求項15の方法。
【請求項17】
前記地図タイルの1つ以上を供給することは、前記供給された地図タイルをキャッシュに格納することを含む、請求項12の方法。
【請求項18】
デジタル地図画像から地図タイルを生成することは、
作図されるべき領域、および各領域が作図される必要がある種々のズームレベルを特定することと、
前記特定された領域を前記特定された種々のズームレベルで必要に応じてサブ領域に分割することと、該分割は、各サブ領域が利用可能なメモリ内で予め描画され得るようになされるものであり、
前記各サブ領域を所与のズームレベルで予め描画することと、
前記予め描画した各サブ領域を描画領域に分割することと、該分割は、各描画領域が前記利用可能なメモリ内で描画され得るようになされるものであり、
前記描画領域を描画し、結果として得られた画像を地図タイルに分割することと、
を含む請求項12の方法。
【請求項19】
ズームレベルでの前記サブ領域のそれぞれは、タスクを表し、それにより領域およびズームレベルによって定義されるタスクの一覧表を提供し、並列処理がこれらのタスクを実行することへ適用される、請求項18の方法。
【請求項20】
前記要求しているユーザへ表示されるべき前記地図は解像度を有し、前記描画は表示されるべき前記地図の前記解像度よりN倍大きい解像度で行われ、前記描画によって生成される前記ビットマップはタイルをサブ画素ビットマップとして生成するための入力として使用される、請求項18の方法。
【請求項21】
地図タイルをデジタル地図画像から生成することは、
作図されるべき領域を特定することと、
前記領域をサブ領域に分割することと、該分割は、それぞれのサブ領域が利用可能なメモリ内で予め描画され得るようになされるものであり、
前記各サブ領域を予め描画することと、
前記予め描画した各サブ領域を描画領域に分割することと、該分割は、各描画領域が前記利用可能なメモリ内で描画され得るようになされるものであり、
前記描画領域を描画することと、
を含む請求項12の方法。
【請求項22】
1以上のサーバーコンピュータによって実行される、デジタル地図タイルをデジタル地図データから生成するための方法であって、
作図されるべき領域、および各領域が作図される必要がある種々のズームレベルを特定することと、
前記特定された領域を前記特定された種々のズームレベルで必要に応じてサブ領域に分割することと、該分割は、各サブ領域が利用可能なメモリ内で予め描画され得るようになされるものであり、
前記各サブ領域を所与のズームレベルで予め描画することと、
前記予め描画した各サブ領域を描画領域に分割することと、該分割は、各描画領域が前記利用可能なメモリ内で描画され得るようになされるものであり、
前記描画領域を描画して画像を生成することと、
前記画像を地図タイルに分割することと、
を備える方法。
【請求項23】
前記各サブ領域を予め描画することは、地理的データセットの少なくとも1つおよび前記デジタル地図画像の構築方法についての命令の表現にアクセスすることを含む、請求項22の方法。
【請求項24】
前記命令は、構成ファイル内に表される、請求項23の方法。
【請求項25】
前記サブ領域は、それぞれが所定の固定サイズを有する、請求項22の方法。
【請求項26】
前記サブ領域は、それぞれが各ズームレベルに対する所定の固定サイズを有する、請求項22の方法。
【請求項27】
前記予め描画することによる決定事項は、問題のある特徴がサブ領域間の境界線を横断することを防止することを含む、請求項22の方法。
【請求項28】
前記予め描画することによる決定事項は、格納され、その結果それらはその後の予め描画するタスクに使用できる、請求項22の方法。
【請求項29】
前記予め描画することによる決定事項は、特徴がサブ領域間の境界線を横断することを容認することを含む、請求項22の方法。
【請求項30】
前記境界線を横断する前記特徴に関連する2つの整列するサブ領域は、同時に予め描画されることを容認されない、請求項29の方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate


【公開番号】特開2012−168961(P2012−168961A)
【公開日】平成24年9月6日(2012.9.6)
【国際特許分類】
【出願番号】特願2012−83413(P2012−83413)
【出願日】平成24年3月31日(2012.3.31)
【分割の表示】特願2007−505107(P2007−505107)の分割
【原出願日】平成17年3月23日(2005.3.23)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.JAVASCRIPT
【出願人】(505281067)グーグル インコーポレイテッド (58)
【氏名又は名称原語表記】GOOGLE INC.
【Fターム(参考)】