(57)【要約】      （修正有）【課題】マップ画像およびデータの永続的キャッシングを提供する。【解決手段】空間サーバ１２は、クライアントデバイス１４の画像リクエストを受信し、ハッシュ関数を画像リクエストに適用して、標準化識別子を生成する。ＧＩＳ（地球情報システム）クライアント１６は、標準化識別子、標準化識別子もしくはＧＩＳデータと関連付けられたＧＩＳデータの属性または標準化識別子に対応する格納された識別子と関連付けられたＧＩＳデータの属性を使用して、クライアントデバイスに表示するために、標準化識別子もしくは格納された識別子と関連付けられたＧＩＳデータを検索もしくはキャッシュするかどうかを判断する。【選択図】図１
2016192205.tif 000002
【特許請求の範囲】
【請求項１】
地理情報システム（ＧＩＳ）クライアントデバイス（１４）であって、
クライアントプロセッサ（２６０）と、
ＧＩＳデータを格納するよう適合されたローカルメモリ（２１０）と、
コンピュータ可読媒体とを備え、
前記コンピュータ可読媒体が、前記クライアントプロセッサ（２６０）によって実行される場合に、前記ＧＩＳクライアントデバイス（１４）に、
ＧＩＳデータに対するリクエストを生成して、前記リクエストを空間サーバ（１２）に送信させ、
前記空間サーバ（１２）から、前記リクエストされたＧＩＳデータの少なくとも一部に対応する標準化識別子を受信させ、
前記標準化識別子が前記ローカルメモリ（２１０）内の格納された識別子に対応する場合、前記標準化識別子および前記格納された識別子の一方または両方に対応するＧＩＳデータを前記ローカルメモリ（２１０）から検索するかどうかを判断させ、
前記標準化識別子がマップクライアントと関連付けられた格納された識別子に対応しない場合、前記標準化識別子および前記格納された識別子の一方または両方に対応するＧＩＳデータを前記空間サーバ（１２）から検索させて、前記検索されたＧＩＳデータのいずれかをキャッシュするかどうかを判断させる、
命令を格納する、
地理情報システム（ＧＩＳ）クライアントデバイス（１４）。
【請求項２】
前記命令が、前記ＧＩＳクライアントデバイス（１４）に、前記空間サーバ（１２）によって送信することができるＧＩＳデータにアクセスするために前記空間サーバ（１２）への十分な接続を前記ＧＩＳクライアントデバイス（１４）が有するかどうかを判断することによって、前記標準化識別子および前記格納された識別子の一方または両方に対応する以前に格納されたＧＩＳデータを、前記ローカルメモリ（２１０）から検索するかどうかをさらに判断させる、請求項１に記載のＧＩＳクライアントデバイス（１４）。
【請求項３】
前記ＧＩＳクライアントデバイス（１４）が、前記空間サーバ（１２）に前記リクエストを送信する前に前記ＧＩＳクライアントデバイス（１４）が前記空間サーバ（１２）への十分な接続を有するかどうかを判断する、請求項２に記載のＧＩＳクライアントデバイス（１４）。
【請求項４】
前記命令が、前記ＧＩＳクライアントデバイス（１４）に、前記標準化識別子および前記格納された識別子の一方または両方に対応する以前に格納されたＧＩＳデータを、以下、すなわち、前記以前に格納されたＧＩＳデータのアクセスの頻度、前記以前に格納されたＧＩＳデータの経過時間、前記以前に格納されたＧＩＳデータの相対的な経過時間、前記以前に格納されたＧＩＳデータの前記ローカルメモリ（２１０）内での保管の継続期間、および前記以前に格納されたＧＩＳデータのバージョンの少なくとも１つを判断することによって、前記ローカルメモリ（２１０）から検索するかどうかをさらに判断させる、請求項１に記載のＧＩＳクライアントデバイス（１４）。
【請求項５】
前記空間サーバ（１２）から受信した前記標準化識別子が、複数のタイル画像を備えるマップ画像の少なくとも一部に対応する、請求項１に記載のＧＩＳクライアントデバイス（１４）。
【請求項６】
前記命令が、前記ＧＩＳデバイス（１４）に、
ローカルメモリ（２１０）の前記利用可能なストレージ容量が所定の容量閾値と少なくとも等しい場合、前記検索されたＧＩＳデータを前記ローカルメモリ（２１０）に格納することによって、および
前記ローカルメモリ（２１０）の前記利用可能なストレージ容量が所定の容量閾値未満である場合、前記ローカルメモリ（２１０）に以前に格納されたＧＩＳデータを、前記空間サーバ（１２）から検索された前記ＧＩＳデータと、以下、すなわち、前記格納されたＧＩＳデータのアクセスの頻度、前記格納されたＧＩＳデータの経過時間、前記格納されたＧＩＳデータの相対的な経過時間、前記格納されたマップＧＩＳの前記ローカルメモリ（２１０）内での保管の継続期間、および前記格納されたＧＩＳデータのバージョンの少なくとも１つに基づいて、置換することによって、
前記検索されたＧＩＳデータのいずれをキャッシュするかどうかをさらに判断させる、請求項１に記載のＧＩＳクライアントデバイス（１４）。
【請求項７】
前記ローカルメモリ（２１０）に以前に格納されたＧＩＳデータを、前記格納されたＧＩＳデータのアクセスの頻度に基づいて前記空間サーバ（１２）から検索された前記ＧＩＳデータと置換することが、前記検索されたＧＩＳデータとの置換のために以前に格納されたＧＩＳデータを選択するために、前記以前に格納されたＧＩＳデータと関連付けられた頻度データを、所定の頻度閾値と比較することを備える、請求項６に記載のＧＩＳクライアントデバイス（１４）。
【請求項８】
前記ローカルメモリ（２１０）に以前に格納されたＧＩＳデータを、前記格納されたＧＩＳデータの経過時間に基づいて前記空間サーバ（１２）から検索された前記ＧＩＳデータと置換することが、前記検索されたＧＩＳデータとの置換のために以前に格納されたＧＩＳデータを選択するために、前記以前に格納されたＧＩＳデータと関連付けられた経過時間データを、所定の経過時間閾値と比較することを備える、請求項６に記載のＧＩＳクライアントデバイス（１４）。
【請求項９】
前記ローカルメモリ（２１０）に以前に格納されたＧＩＳデータを、前記格納されたＧＩＳデータの相対的な経過時間に基づいて前記空間サーバ（１２）から検索された前記ＧＩＳデータと置換することが、前記ローカルメモリ（２１０）に格納された最も古いＧＩＳデータを識別するために前記以前に格納されたＧＩＳデータと関連付けられた経過時間データを比較することを備える、請求項６に記載のＧＩＳクライアントデバイス（１４）。
【請求項１０】
前記ローカルメモリ（２１０）に以前に格納されたＧＩＳデータを、前記ローカルメモリ（２１０）内の前記格納されたマップＧＩＳの保管の継続期間に基づいて前記空間サーバ（１２）から検索された前記ＧＩＳデータと置換することが、置換のために以前に格納されたＧＩＳデータを選択するために、前記以前に格納されたＧＩＳデータと所定の継続期間閾値とに関連付けられたタイムスタンプを前記検索されたＧＩＳデータと比較することを備える、請求項６に記載のＧＩＳクライアントデバイス（１４）。
【請求項１１】
前記ローカルメモリ（２１０）内に以前に格納されたＧＩＳデータを、前記格納されたＧＩＳデータのバージョンに基づいて、前記空間サーバ（１２）から検索された前記ＧＩＳデータと置換することが、前記格納された識別子に対応する前記以前に格納されたＧＩＳデータの前記バージョンが前記標準化識別子と関連付けられた前記ＧＩＳの前記バージョンよりも少なくとも所定の程度だけ古いかどうかを判断することを備え、そうである場合、前記検索されたＧＩＳデータと置換するために、前記以前に格納されたＧＩＳデータを選択することを備える、請求項６に記載のＧＩＳクライアントデバイス（１４）。
【請求項１２】
前記標準化識別子が、ハッシュコードを含む、請求項１に記載のＧＩＳクライアントデバイス（１４）。
【請求項１３】
前記格納された命令が、前記クライアントプロセッサ（２６０）によって実行される場合、前記ＧＩＳクライアントデバイス（１４）に、前記標準化識別子を含む前記リクエストを前記空間サーバ（１２）に送信する前に前記標準化識別子をさらに生成させる、請求項１に記載のＧＩＳクライアントデバイス（１４）。
【請求項１４】
前記ＧＩＳクライアントデバイス（１４）が、前記リクエストの少なくとも１つの要素にハッシュ関数を適用することによって、前記標準化識別子を生成する、請求項１３に記載のＧＩＳクライアントデバイス（１４）。
【請求項１５】
地理情報システム（ＧＩＳ）クライアントデバイス（１４）であって、
クライアントプロセッサ（２６０）と、
ＧＩＳデータを格納するよう適合されるローカルメモリ（２１０）と、
コンピュータ可読媒体とを備え、
前記コンピュータ可読媒体が、前記クライアントプロセッサ（２６０）によって実行された場合に、前記ＧＩＳクライアントデバイス（１４）に、
ＧＩＳデータに対するリクエストを生成させ、
前記リクエストを空間サーバ（１２）に送信させ、
前記空間サーバ（１２）から、前記リクエストされたＧＩＳデータの少なくとも一部と関連付けられる属性データを受信させ、
前記属性データに基づき、前記受信したＧＩＳデータのいずれかをキャッシュするかどうかを判断させる、
命令を格納する、
地理情報システム（ＧＩＳ）クライアントデバイス（１４）。
【請求項１６】
前記リクエストが、前記リクエストされたＧＩＳデータの少なくとも一部に対応する標準化識別子を含む、請求項１５に記載のＧＩＳクライアントデバイス（１４）。
【請求項１７】
前記ＧＩＳクライアントデバイス（１４）が、前記リクエストの少なくとも１つの要素にハッシュ関数を適用することによって、前記標準化識別子を生成する、請求項１６に記載のＧＩＳクライアントデバイス（１４）。
【請求項１８】
前記命令が、前記ＧＩＳクライアントデバイス（１４）に、
前記ローカルメモリ（２１０）の利用可能なストレージ容量が所定の容量閾値と少なくとも等しい場合、前記検索されたＧＩＳデータを前記ローカルメモリ（２１０）に格納することによって、および
前記ローカルメモリ（２１０）の前記利用可能なストレージ容量が所定の容量閾値未満である場合、前記ローカルメモリ（２１０）に以前に格納されたＧＩＳデータを、前記空間サーバ（１２）から検索された前記ＧＩＳデータと、以下、すなわち、前記格納されたＧＩＳデータのアクセスの頻度、前記格納されたＧＩＳデータの経過時間、前記格納されたＧＩＳデータの相対的な経過時間、前記格納されたマップＧＩＳの前記ローカルメモリ（２１０）内での保管の継続期間、および前記格納されたＧＩＳデータのバージョンの少なくとも１つに基づいて、置換することによって、
前記受信したＧＩＳデータのいずれをキャッシュするかどうかを判断させる、請求項１５に記載のＧＩＳクライアントデバイス（１４）。
【請求項１９】
前記命令が、前記ＧＩＳクライアントデバイス（１４）に、前記属性データに少なくとも部分的に基づいて、前記リクエストされたＧＩＳデータを検索するかどうかをさらに判断させる、請求項１５に記載のＧＩＳクライアントデバイス（１４）。
【請求項２０】
前記命令が、前記ＧＩＳクライアントデバイス（１４）に、前記ＧＩＳクライアントデバイス（１４）が前記空間サーバに対して十分な接続性を有するかどうか判断することに少なくとも部分的に基づいて、前記リクエストされたＧＩＳデータを検索するかどうかをさらに判断させる、請求項１５に記載のＧＩＳクライアントデバイス（１４）。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、ＧＩＳマッピングシステムに関し、より具体的には、ＧＩＳクライアント内のＧＩＳマップ画像および他のＧＩＳデータの永続的キャッシュを維持するためのシステムおよび方法に関する。
【背景技術】
【０００２】
地理情報システム（ＧＩＳ）は、地球を空間的に参照したデータおよび関連属性を取得、格納、解析、および管理する。ＧＩＳは、空間的または地理的データをエンドユーザに提示するためのハードウェア、ソフトウェア、およびデータを統合することができる。ＧＩＳは、サーバ、ウェブブラウザ、デスクトップ、およびモバイルデバイスなどの、任意の数のデバイスもしくはアプリケーション内で、または任意の数のデバイスもしくはアプリケーションと共に、機能することができる。ＧＩＳは、建物、道路、および公共施設などの項目の位置についての情報を提供することができる。
【０００３】
ＧＩＳは、モザイク内に数百万のタイル画像を配置して、巨大なシームレス画像と錯覚する画像を生成することができる。各タイルは、例えば、２５６×２５６ピクセルの画像を含む。数百万のタイル画像を編成するために、座標系を使用し、それにより、各タイル画像は、タイルの位置を説明するｘおよびｙ座標により識別される。ｚ座標は、ズームレベルを説明するために使用される。例えば、システム内の第１のタイル画像は、ｘ／ｙ／ｚ座標が０／０／０である。
【０００４】
ＧＩＳは、リクエストを生成して、遠隔空間サーバ（例えば、マップサーバ）に送信することができるＧＩＳマップクライアントを含む。遠隔空間サーバは、特定のリクエストに応答して、どのタイル画像を検索して、ＧＩＳクライアントに供給する必要があるかを判断する。ＧＩＳクライアントは、マップサーバからタイル画像をダウンロードして、ページ上にそのタイル画像を位置付けることによって、マップをレンダリングする。タイル画像は、リクエストされたマップをレンダリングする処理の間、ランダム・アクセス・メモリ内に格納することができる。
【０００５】
ダウンロードされたＧＩＳタイル画像から構成されるマップのレンダリングと関連付けられたデータ伝送によって、リクエストの複雑度、通信ネットワークの接続性、およびＧＩＳプロセッサの電力制約などの要因による、望まない遅延が起こり、ＧＩＳ、マップクライアント、または空間サーバのプロセッサリソースを消耗させる可能性がある。さらに、マップクライアントと関連したリクエストデバイスまたはシステムは、例えば、地理的中断またはネットワーク中断のため、準最適接続の期間を経験するモバイルデバイスである可能性がある。そのような環境において、マップレンダリングは、遅くなるか、または不可能となる可能性があり、信頼性に負の影響を与える。
【０００６】
タイル画像の生成および／またはレンダリングと関連付けられた制約に対処するために、さまざまな取り組みが行われてきた。例えば、マップは、リクエストしているクライアントと関連付けられたローカルメモリ内のキャッシュから検索されたタイル画像を使用することによって少なくとも部分的に生成することができ、タイルは、位置または識別子などのマップ特性に基づいて、ＧＩＳサーバによって編集された「抽出物」として格納される。ＧＩＳサーバが、必要なタイル画像および関連データを検索することによって抽出物を生成すると、抽出物は、リクエストしているデバイスに送信することができ、後の検索のために、再びキャッシュに格納することができる。後のリクエストのために同じタイル画像が必要な場合、ローカルメモリからタイル画像を検索することによって、ターンアラウンドタイムが大幅に削減され、タイル画像が、リクエストしているクライアントの接続状態にかかわらず、利用可能になる。しかしながら、このアプローチは、必要なタイル画像を格納するためにクライアント側メモリリソースの相当な割当を必要とし、ＧＩＳサーバはまた、抽出物を準備および送信するために、十分なハードウェア、ファームウェア、またはソフトウェアリソースを維持しなければならない。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】米国特許出願公開２０１３／００１３７２９号明細書
【発明の概要】
【０００８】
上記の欠点を考えた場合、ローカルメモリ内にデータ（タイル画像など）を選択的ならびに永続的に格納することによって、および永続的キャッシュを維持するために使用されるローカル・メモリ・リソースを論理的に管理することによって、ローカルリソースおよび遠隔リソースの両方の使用を最適化しながら、ＧＩＳクライアントに対して、効率的および確実にＧＩＳマップを生成するシステムおよび方法に対する必要性が存在する。上記した「抽出物」アプローチとは対照的に、不揮発性ローカルメモリにおけるキャッシュは、タイル画像がサーバレベルでの大規模な処理を行うことなくＧＩＳサーバによって供給されるので、必要に応じて使用され、例えば、頻繁にアクセスされるマップまたはマップ区分における、特定の構成要素を再現するために、どのタイル画像をキャッシュすべきかを判断するのはクライアントである。
【０００９】
本開示は、メモリにＧＩＳマップ画像および他の関連付けられたＧＩＳデータを格納するために使用されるＧＩＳに関する。本システムは、空間サーバから１つまたは複数のタイル画像（例えば、マップタイル）を検索し、不揮発性ローカルメモリにタイル画像を格納するための動作をプロセッサに実行させる命令を備える、コンピュータ可読ストレージデバイスを含む。
【００１０】
タイル画像は、データベースから検索され、クライアントデバイスから空間サーバによって受信された画像リクエストに応答して、空間サーバによってコンパイルされる。画像リクエストは、典型的に、アドレスまたは位置座標を含むか、アドレスまたは位置座標の形式であり、空間サーバによって送信される前にさらに変換してもよい。次いで、ＧＩＳサーバは、画像リクエストを、標準化画像リクエストに変換し、ハッシュ関数を標準化画像リクエストに適用して、画像リクエストに応答する個々の、または集合的ＧＩＳマップ画像データ（例えば、タイル画像、アセットデータ、アセット状態）を識別する標準化識別子（例えば、ハッシュコード）を生成する。この場合も、抽出物を生成する代わりに、ＧＩＳサーバは、ハッシュコードを生成し、抽出物に含まれるであろうタイル画像を識別する。
【００１１】
各標準化識別子は、次いで、リクエストしているＧＩＳクライアントに通信され、ＧＩＳクライアントは、次いで、各標準化識別子を、ＧＩＳクライアントと関連付けられたローカルメモリ内に以前に格納された標準識別子（予め格納された識別子）のリポジトリと比較する。空間サーバから検索された標準化識別子がローカルメモリ内で見つからない場合、ＧＩＳクライアントは、空間サーバから標準化識別子と関連付けられたＧＩＳデータをダウンロードし、リクエスト画像をレンダリングする。ダウンロードされたデータは、少なくとも最初に、または部分的に、揮発性メモリに格納することができる。
【００１２】
例えば、タイル画像などのＧＩＳデータが空間サーバから検索された場合、リクエストされたタイル画像は、次いで、ＧＩＳクライアントによって、一般に、保管のために所定の容量を有する、デバイスの不揮発性ローカルメモリに格納することができる。当業者は、メモリを仕切ることができるか、または特定の目的のために割り当て、必要に応じて再割り当てすることができるという点で、メモリリソースを、フレキシブルまたはバーチャルとすることができ、そのため、所定の容量が必ずしも固定されていないことを容易に理解するであろう。さらに、所定の容量の利用は、物理的ストレージ空間の、ある割合、例えば、９５％に限定することができる。
【００１３】
クライアントデバイスのローカルメモリに標準化識別子と関連付けられたタイル画像を格納する前に、ＧＩＳクライアントは、ローカルメモリの容量を評価し、保管するための所定の容量に達したかどうか、またはタイル画像を格納することによって超過するかどうかを判断する。ローカルメモリが格納すべきタイル画像を収容できない、または収容しない場合、ＧＩＳクライアントは、少なくとも１つの以前に格納されたタイル画像を識別し、本開示で説明する１つまたは複数の方法により、ローカルメモリから除去する（すなわち、削除または上書きする）。
【００１４】
いくつかの実施形態において、以前に格納されたタイル画像は、以前に格納された画像がローカルメモリにいつ格納されたかを特定するために関連付けられたタイムインデックス（例えば、タイムスタンプ）に基づいて、ローカルストレージから除去される。例えば、以前に格納されたタイル画像が、Ｘ日以上の間、ローカルメモリ内に格納されている場合、除去するために選択される可能性がある。したがって、ＧＩＳクライアントは、除去するために、最も古いタイル画像を選択することができる、または、代わりに、あるカテゴリ内の最も古いタイル画像を選択することができる。
【００１５】
いくつかの実施形態において、以前に格納された画像は、使用の頻度に基づいて、ローカルストレージから削除され、例えば、定義された期間（例えば、頻度窓）の間にローカルメモリから以前に格納された画像が検索された回数を特定するために関連付けられた頻度識別子を使用して追跡することができる。例えば、以前に格納されたタイル画像の検索頻度が低かった場合、場合によっては、過去Ｘ日の間にＹ回未満しかローカルメモリから検索されなかった場合、除去するために選択される可能性がある。したがって、ＧＩＳクライアントは、除去するために、最も使用されていないタイル画像を選択することができ、または、代わりに、あるカテゴリ内の最も使用されていないタイル画像を選択することができる。これらの実施形態において、頻度窓が、以前に格納されたタイル画像がローカルメモリに格納されてから時間経過しなかった場合、除去のために選択されない可能性があり、本処理は、関連付けられたタイムインデックスが、少なくとも頻度窓を定義する期間、格納されていたことを示すまで、除去のために以前に格納されたタイル画像を評価しないない可能性がある。バージョン制御もまた、例えば、マップ上のアセットが変化した場合、またはマッピングされた地理そのものが変化した場合、キャッシュマップ画像またはマップ画像の要素を最新の状態に保つことを確実にするために使用することができる。
【００１６】
いくつかの実施形態において、リクエストしているＧＩＳクライアントに空間サーバによって通信された標準化識別子がローカルメモリ内に以前に格納された標準識別子のリポジトリ内で発見された場合、ＧＩＳクライアントは、以前に格納されたタイル画像が最新の状態を保つことを確実にしながら、タイル画像をダウンロードするかどうかを判断する。例えば、以前に格納されたタイル画像は、リクエストされたタイル画像の標準化識別子が、格納された画像の格納された識別子と一致した場合、およびリクエストされたタイル画像が、保管ではなく生成の観点から、以前に格納されたタイル画像より新しい場合に除去される可能性がある。
【００１７】
空間サーバから検索された標準化識別子がローカルメモリ内で見つからない場合、ＧＩＳクライアントは、空間サーバから標準化識別子と関連付けられたＧＩＳデータをダウンロードし、リクエスト画像をレンダリングする。
【００１８】
ある実施形態において、タイル画像を除去するかどうかの判断は、上述の、または実質的に同等の方法の一部または全ての組み合わせに基づく。
【００１９】
いくつかの実施形態において、２つ以上の以前に格納されたタイル画像を、十分なスペースをもたらすために、ローカルストレージから除去することができる。実際に、どのタイル画像をローカルストレージから除去すべきかを判断する動作は、ローカルストレージ内に十分なスペースが得られるまで繰り返すことができる。
【００２０】
いくつかの実施形態において、ＧＩＳクライアントは、ローカルメモリから、標準化識別子および格納された識別子の一方または両方に対応する以前に格納されたＧＩＳデータを検索するかどうかを判断する。そうする場合、ＧＩＳクライアントは、ＧＩＳクライアントがＧＩＳデータにアクセスするために空間サーバに十分な接続性を有するかどうかを判断する。いくつかの実施形態において、ＧＩＳクライアントは、空間サーバにリクエストを送信する前に、十分な接続性が、ＧＩＳクライアントと空間サーバとの間に確立されたかどうかを判断する。
【００２１】
ＧＩＳクライアントが以前に格納されたＧＩＳデータを検索するかどうかを判断している場合、ＧＩＳクライアントは、さらに、または代わりに、以前に格納されたＧＩＳデータのアクセス頻度、以前に格納されたＧＩＳデータの相対的な経過時間、ローカルメモリ内の以前に格納されたＧＩＳデータの保管の継続期間、および／または以前に格納されたＧＩＳデータのバージョンを判断することができる。
【００２２】
いくつかの実施形態において、ＧＩＳクライアントは、検索されたＧＩＳデータのいずれかをキャッシュするかどうかを判断する。ローカルメモリの利用可能なストレージ容量が、所定の容量閾値に少なくとも等しい場合、検索されたＧＩＳデータは、ローカルメモリに格納される。ローカルメモリの利用可能なストレージ容量が所定の容量閾値未満である場合、検索されたＧＩＳデータは、ローカルメモリに以前に格納されたＧＩＳデータと置換される。ＧＩＳデータの置換は、以前に格納されたＧＩＳデータのアクセスの頻度、および以前に格納されたＧＩＳデータの経過時間などに基づくことができる。
【００２３】
いくつかの実施形態において、ＧＩＳクライアントは、以前に格納されたＧＩＳデータと関連付けられた頻度データと、所定の頻度閾値とを比較し、検索されたＧＩＳデータと置換するために、以前に格納されたＧＩＳデータを選択する。いくつかの実施形態において、ＧＩＳクライアントは、以前に格納されたＧＩＳデータと関連付けられた経過時間データを比較し、ローカルメモリに格納された最も古いＧＩＳデータを識別する。いくつかの実施形態において、ＧＩＳクライアントは、以前に格納されたＧＩＳデータと所定の継続期間閾値とに関連付けられたタイムスタンプを、置換のために以前に格納されたＧＩＳデータを選択するために、検索されたＧＩＳデータと比較する。
【００２４】
本技術は、１つまたは複数のタイル画像を空間サーバから検索し、タイル画像を不揮発性ローカルメモリに格納するための方法をさらに開示する。ローカルメモリの所定の容量に達した場合、ＧＩＳは、１つまたは複数の以前に格納されたタイル画像をローカルメモリから除去することを判断する。
【００２５】
本発明のこれらの、および他の特徴、態様、および利点は、以下の詳細な説明を添付図面を参照して読むと、より理解されるであろう。添付図面において、同様の参照符号は、図面を通じて、同様の項目を意味する。
【図面の簡単な説明】
【００２６】
【図１】地理情報システム（ＧＩＳ）の例示的な実施形態のブロック図である。
【図２】図１のＧＩＳの入力インターフェースおよび出力インターフェースを含むクライアントデバイス制御器およびサーバ制御器のブロック図である。
【図３】図２の制御器の例示的なキャッシュシーケンスを示すフローチャートである。
【発明を実施するための形態】
【００２７】
本発明の１つまたは複数の特定の実施形態について以下で説明する。これらの実施形態に関する簡潔な説明を提供するために、実際の実装態様に関する全ての特徴について本明細書に説明するわけではない。いずれのそのような実際の実装態様の開発において、任意のエンジニアリングもしくは設計プロジェクトの場合と同様に、多数の実装形態特有の決定を、ある実装態様から他の実装態様に変更するなどの、システム関連の制約およびビジネス関連の制約との適合などの、開発者の特定の目的を達成するために行わなければならないことを認識すべきである。さらに、そのような開発努力は、複雑であり、時間を消費するものであろうが、本開示の利点を有する当業者とって、設計、製作、および製造の日常的な仕事であろうことを認識すべきである。
【００２８】
本発明のさまざまな実施形態の要素を導入する場合、冠詞「１つの（ａ）」、「１つの（ａｎ）」、「前記（ｔｈｅ）」、および「前記（ｓａｉｄ）」は、その要素が１つまたは複数存在することを意味することを意図する。「備える（ｃｏｍｐｒｉｓｉｎｇ）」、「含む（ｉｎｃｌｕｄｉｎｇ）」、および「有する（ｈａｖｉｎｇ）」という用語は、記載された要素以外の追加の要素が存在する可能性を含む、および意味することを意図する。
【００２９】
本発明の実施形態は、シグネチャを使用するマップキャッシング（例えば、シグネチャベース・マップ・キャッシング）または他の一意の識別子によりマップおよび画像サービスを提供するための方法、システム、およびコンピュータサーバに関する。特性の特定のセットを有するマップをリクエストする場合、クライアントアプリケーションは、シグネチャベース・マップ・サービスを提供するマップサーバへの送信のために標準化されたフォーマットか、または適したフォーマットにリクエストをフォーマットすることができる。クライアントアプリケーションは、ネットワークを介した空間サーバとの通信の状態にかかわらず、クライアントデバイスによる後の使用のために、クライアントデバイスのストレージに、リクエストされたマップを格納することができる。実施形態は、マップ画像サービスでのキャッシュの使用に焦点を当てるが、さらなる実施形態を、配布する必要のある非地理的および非マップベースオブジェクトに適用することができる。
【００３０】
図１は、地理情報システム（ＧＩＳ）１０の一実施形態のブロック図である。本実施形態において、ＧＩＳ１０は、一般的に、少なくとも１つのクライアントデバイス１４または特定のクライアントベースをサポートすることができるサーバ１２から成り、クライアントベースは、クライアントデバイス１４の地理的領域またはクラスタによって定義することができ、その全てが、ネットワーク２４などの通信媒体によって接続される。最も簡潔には、ＧＩＳ１０は、インターネットなどのネットワーク２４によって空間サーバ１２と通信する複数のクライアントデバイス１４を含む。
【００３１】
クライアントデバイス１４は、これらに限定されないが、コンピュータ、モバイルデバイス（例えば、スマートフォンおよびタブレット）、サーバ、ルータ、ネットワークコンピュータ、およびスマートグリッド構成要素などの、ネットワーク２４を介して他のデバイスに接続することを可能にする任意のデバイスとすることができる。各クライアントデバイス１４は、マップ画像および関連付けられたデータに対するインターフェースを提供するためのディスプレイ１５もしくは他の手段を含むか、またはディスプレイ１５もしくは他の手段にアクセスすることができる。各クライアントデバイス１４は、クライアントデバイス１４などの機能を処理および制御するための制御器を備える。制御器は、これらに限定されないが、１つまたは複数のプロセッサおよびメモリなどの構成要素を含み、それらの一部は、不揮発性である。
【００３２】
図２は、クライアント制御器２００を示し、クライアント制御器２００は、プログラマブル論理制御器（ＰＬＣ）などの調整可能なハードウェア装置とすることができる。クライアント制御器２００は、コードライブラリ、静的解析ツール、ソフトウェア、ハードウェア、またはファームウェアなどを使用することによって開発することができる。
【００３３】
クライアント制御器２００は、ローカルメモリ２１０を含む。ローカルメモリ２１０は、アプリケーション、データベース、オペレーティングシステム（ＯＳ）、およびＩ／Ｏデバイスドライバを含む、いくつかのカテゴリのハードウェア、ファームウェア、ソフトウェア、およびデータとインターフェースすることができる。
【００３４】
ローカルメモリ２１０は、これらに限定されないが、ダイナミックＲＡＭ、スタティックＲＡＭ、同期ダイナミックＲＡＭなどのランダム・アクセス・メモリ（ＲＡＭ）などの揮発性メモリを含むことができる。ローカルメモリ２１０の少なくとも一部は、これらに限定されないが、消去可能プログラマブルＲＯＭ、電子的消去可能プログラマブルＲＯＭ、プログラマブルＲＯＭ、コンパクトディスクＲＯＭ、テープ、ディスク、およびフロッピーディスクなどのリードオンリメモリ（ＲＯＭ）などの不揮発性メモリ２１３である。不揮発性メモリ２１３は、空間サーバ１２への接続が制限されるか、または不可能な場合に、情報を格納および検索するために使用することができる。例えば、不揮発性メモリ２１３は、クライアントデバイス１４が空間サーバ１２と通信できない場合に検索する必要のあるタイル画像および他のＧＩＳデータを格納するために使用する。
【００３５】
不揮発性メモリ２１３は、保管するための所定の容量を有するが、当業者は、容量が、新しい所定の容量を得るために再配分または拡張することができることを認識するであろう。保管するための所定の容量に達するまで、および場合によっては頻繁に使用されるＧＩＳデータを維持するために選択されるまで、空間サーバ１２からリクエストおよび検索されたＧＩＳデータは、不揮発性メモリ２１３に格納することができる。しかしながら、保管のための所定の容量に達した場合、１つまたは複数の以前に格納されたマップ画像が、ローカルストレージの不揮発性メモリ２１３から除去され、新規リクエストされたＧＩＳデータを格納するためにスペースを生成する。
【００３６】
プロセッサ２６０は、プログラムまたはソフトウェアアプリケーション内の、特に、メモリ２１０に格納された、命令を実行するためのハードウェアまたはファームウェアデバイスである。動作中、プロセッサ２６０は、メモリ２１０内に格納されたソフトウェアを実行し、メモリ２１０に、およびメモリ２１０からデータを通信し、一般に、ソフトウェアに従ってクライアントデバイス１４の動作を制御するよう構成される。
【００３７】
Ｉ／Ｏインターフェース２７０は、クライアントデバイス１４と関連付けられた入力デバイスを介して、コマンドおよび情報を制御器２００に入力することを可能にする。そのような入力デバイスの例には、これらに限定されないが、キーボード、タッチパッド、タッチスクリーン、マイクロフォンおよびボイスコントローラ、ポインティングデバイス（例えば、マウス）、マイクロフォン、ジョイスティック、スキャナ、ならびにグローブおよび体の動きを捕らえる他のボディスーツなどの触覚入力デバイスなどが挙げられる。
【００３８】
いくつかの実施形態において、クライアントデバイス制御器２００は、メモリ制御器２１５およびディスプレイ制御器２２５をさらに含むことができる。メモリ制御器２１５は、不揮発性メモリ２１３内の標準化識別子および対応するＧＩＳデータ（例えば、画像）の保管、索引づけ、および検索を管理する。図３に関して説明したいくつかの場合において、メモリ制御器２１５はまた、標準識別子および対応するＧＩＳデータを除去することができる。そのような場合には、最近検索された標準識別子および対応するＧＩＳデータを格納するために十分なスペースを提供すること、または最近検索されて、格納されたＧＩＳデータのバージョン制御を維持することを含むことができる。標準識別子およびそれに対応する画像がいくつかの例において不揮発性メモリ２１３または空間サーバ１２で検索された場合、ディスプレイ制御器２２５は、標準化識別子を対応する画像と解釈し、画像をクライアント・ディスプレイ・デバイス１４に送信する。
【００３９】
いくつかの実施形態において、制御器２００は、以下で説明される、ネットワーク２４への結合のためのネットワークインターフェース２８０をさらに含む。
【００４０】
図１に戻って参照すると、いくつかの実施形態において、クライアントデバイス１４は、ＧＩＳクライアントアプリケーション１６を使用して通信し、グラフィカル・ユーザ・インターフェース（ＧＵＩ）を介して人間ユーザによって、または別のソフトウェアもしくはファームウェアアプリケーションによって、部分的に制御することができる。ＧＩＳクライアント１６は、分散型情報システムであり、ＧＩＳサーバ（例えば、中央プロセッサ）、および、これらに限定されないが、ウェブブラウザ、デスクトップアプリケーション、またはモバイルアプリケーションなどのクライアントを備える。その最も単純な形態において、ＧＩＳクライアント１６は、ウェブ技術を使用してサーバとクライアントとの間で通信する任意のＧＩＳとして定義することができる。図１に示したように、複数のＧＩＳクライアント１６を、ネットワーク２４によって、空間サーバ１２に接続することができる。
【００４１】
ある実施形態において、ＧＩＳクライアント１６は、クライアントディスプレイ１５（例えば、モニタ、ＬＣＤ、またはプロジェクタ）、スピーカ（図示せず）、またはＧＩＳクライアント１６を使用することによる双方向処理を容易にする他の任意の入力／出力デバイスなどの、インターフェースを介してシステム１０と接続することができる。このようにして、ディスプレイ１５は、ＧＩＳクライアント１６からの、図、文字、動画、音声、触覚、または他の情報を提示する。ＧＩＳクライアント１６は、ユーザインターフェースによって表示された情報を、手動または自動で操作することができる。例えば、ＧＩＳクライアント１６は、さまざまな誘導動作および検索動作をシステム１０に入力することができる。すなわち、ＧＩＳクライアント１６は、マップの視野のパン、ズーム、もしくは変更をすることができ、またはクライアント１６は、特定の物体もしくは位置を検索して、リストから選択することによって特定の物体もしくは位置に「ジャンプする」か、または特定の物体もしくは位置に直接リンクすることができる。以前のマップビューにアクセスするために、「前進」および「後退」などの従来の誘導ボタンを使用してもよい。
【００４２】
いくつかの実施形態において、クライアントデバイス１４は、インターネットおよび／またはイントラネットなどのネットワーク２４を介して、ウェブブラウザおよび／またはクライアント・ソフトウェア・アプリケーションを実行する。これらの実施形態において、クライアントデバイス１４は、画像リクエストを、空間サーバ１２に、ネットワーク２４を介して送信することができる。
【００４３】
ネットワーク２４は、例えば、ブロードバンド接続を介して、クライアントデバイス１４と、外部サーバおよびクライアントなどとの間で通信するためのＩＰベースネットワークとすることができる。ネットワーク２４は、各クライアントデバイス１４と外部システムとの間で、データを送受信する。クライアントデバイス１４は、ＬＡＮ、ワイド・エリア・ネットワーク（ＷＡＮ）などのネットワーク、ダイアルイン接続、ケーブルモデム、無線モデム、および／または特別高速総合デジタル通信網（ＩＳＤＮ）線を含む多くのインターフェースを通じてネットワーク２４に相互接続することができる。
【００４４】
ネットワーク２４は、例えば、ＷｉＦｉなどの無線プロトコルおよび技術を使用して、無線方式で実施することができる。ネットワーク２４は、固定無線ネットワーク、無線ローカル・エリア・ネットワーク（ＬＡＮ）、無線ワイド・エリア・ネットワーク（ＷＡＮ）、パーソナル・エリア・ネットワーク（ＰＡＮ）、仮想プライベートネットワーク（ＶＰＮ）、インターネット、または他の適切なネットワークシステムとすることができ、信号を送受信するための装置を含む。
【００４５】
空間サーバ１２は、データまたは画像データなどを格納し、タイル画像およびベクトルグラフィックスなどを使用してクライアントデバイス１４に表示する。
【００４６】
図２はまた、揮発性メモリおよび／または不揮発性メモリのいずれか１つまたは組み合わせを有するサーバメモリ３１０を含むサーバ制御器３００の機能ブロック図を含む。サーバメモリ３１０は、これらに限定されないが、ＧＩＳクライアント１６の１つまたは複数の関心領域に関する情報（例えば、アドレスまたは座標）および実行可能コンピュータ命令などの情報を含むよう構成される。さらに、サーバメモリ３１０は、アプリケーション３２０、データベース３３０、オペレーティングシステム（ＯＳ）３４０、およびＩ／Ｏデバイスドライバ３５０を含む、いくつかのカテゴリのソフトウェアおよびデータを含むことができる。
【００４７】
サーバメモリ３１０は、実行された場合、少なくとも部分的に、サーバプロセッサ３６０によって、ＧＩＳ１０により受信されたデータを処理する、以下で説明するキャッシュシーケンス４００（図３に示す）などのさまざまなプログラムのためのアプリケーション３２０を含むことができる。動作中、クライアントデバイス１４は、画像リクエストを空間サーバ１２に送信する。次いで、空間サーバ１２は、ハッシュ関数を画像リクエストに適用し、クライアントデバイス１４に送信するための標準化識別子を生成する。
【００４８】
標準化識別子が空間サーバ１２から受信されると、クライアントデバイスは、クライアントデバイスと関連付けられたメモリ内に存在する格納された識別子のセットに対して標準化識別子を相互参照して、存在する場合、クライアントデバイス１４のローカルメモリ２１０から格納された識別子と関連付けられた少なくとも１つの格納されたタイル画像を検索する。
【００４９】
空間サーバ１２によって供給された標準化識別子がクライアントデバイス１４のメモリに存在しない場合、クライアントデバイス１４は、標準化識別子と関連付けられたＧＩＳデータを、空間サーバ１２から検索するよう準備する。さらに、および好ましくは同時にまたは連続的に、クライアントデバイス１４は、クライアントデバイス１４から除去するために、以前に格納された画像を判断および選択することができる。キャッシュシーケンス４００の動作のさらなる詳細を、図３を参照して説明する。
【００５０】
アプリケーション３２０は、実行可能命令としてサーバメモリ３１０および／またはファームウェア（詳細は図示せず）に格納することができ、少なくとも部分的に、サーバプロセッサ３６０によって実行することができる。アプリケーション３２０は、サーバプロセッサ３６０によって実行された場合、ＧＩＳ１０によって受信されたデータを処理するさまざまなプログラムを含む。アプリケーション３２０は、ソースプログラム、実行可能プログラム（オブジェクトコード）、スクリプト、または実行すべき命令のセットを備える他の任意のエンティティを含むことができる。さらに、または代わりに、アプリケーション３２０は、データのクラスを有するオブジェクト指向プログラミング言語として、またはルーチン、サブルーチン、ならびに／もしくは関数を有するプロシージャプログラミング言語として記述することができる。
【００５１】
アプリケーション３２０は、例えば、Ｉ／Ｏインターフェース２７０を介して受信されたデータと共に、データベース３３０に格納されたデータに適用することができる。データベース３３０は、アプリケーション３２０、ＯＳ３４０、Ｉ／Ｏデバイスドライバ３５０、およびサーバメモリ３１０内に存在するであろう他のソフトウェアプログラムによって使用される静的および動的データを意味する。
【００５２】
ＯＳ３４０は、本明細書で説明するようなＧＩＳデータグラフィカル比較システムおよび方法などの他のコンピュータプログラムの実行を制御し、スケジューリング、入力−出力制御、ファイルおよびデータ管理、メモリ管理、ならびに通信制御および関連サービスを提供する。当業者によって理解されるであろうように、ＯＳ３４０は、データ処理システムと共に使用する任意のオペレーティングシステムとすることができる。
【００５３】
Ｉ／Ｏデバイスドライバ３５０は、デバイスおよびメモリ構成要素と通信するために、アプリケーション３２０によってＯＳ３４０を介してアクセスされるさまざまなルーチンを含むことができる。最後に、Ｉ／Ｏデバイスドライバ３５０は、これらに限定されないが、ネットワーク・インターフェース・カード（ＮＩＣ）、変調器、復調器、およびトランシーバなどのデバイスにさらに結合することができる。
【００５４】
いくつかの実施形態において、サーバメモリ３１０は、電気的、磁気的、光学、および／または他の種類のストレージ媒体を組み込むことができる。いくつかの実施形態において、サーバメモリ３１０は、分散アーキテクチャを有することができ、さまざまな構成要素が、互いから距離をおいて配置されるが、サーバプロセッサ３６０がアクセスすることができる。
【００５５】
サーバプロセッサ３６０は、これに限定されないが、サーバメモリ３１０に格納されたアプリケーション３２０などの、ソフトウェアを実行するためのハードウェアデバイスである。
【００５６】
サーバプロセッサ３６０は、単一マシンまたは複数マシン内の分散プロセッサまたは並列プロセッサを含むことができる、複数のプロセッサとすることができる。サーバプロセッサ３６０は、仮想処理環境をサポートする際に使用することができる。サーバプロセッサ３６０は、マイクロコントローラ、マイクロプロセッサ、特定用途向け集積回路（ＡＳＩＣ）、プログラマブル・ロジック・コントローラ（ＰＬＣ）、コンプレックス・プログラマブル・ロジック・デバイス（ＣＰＬＤ）、またはフィールドＰＧＡを含むプログラマブル・ゲート・アレイ（ＰＧＡ）とすることができる。本明細書での演算、動作、タスク、関数、またはステップなどを実行するためのプロセッサ実行コードまたは命令への参照は、演算を直接実行する、および／または演算を実行するための別のデバイスもしくは構成要素を助けるか、指示するか、または協働する、サーバプロセッサ３６０を含むことができる。
【００５７】
Ｉ／Ｏポート３７０により、クライアントデバイス１４は、コマンドおよび情報を、制御器３００に、入力デバイスを介して入力することが可能になる。そのような入力デバイスの例には、これらに限定されないが、キーボード、ポインティングデバイス（例えば、マウス）、マイクロフォン、ジョイスティック、スキャナ、ならびにグローブおよび体の動きを捕らえる他のボディスーツなどの触覚入力デバイスなどが挙げられる。
【００５８】
ネットワークインターフェース３８０は、空間サーバ１２を、ネットワーク２４に結合する。
【００５９】
クライアントメモリ２１０およびサーバメモリ３１０が、それぞれクライアントプロセッサ２６０およびサーバプロセッサ３６０と共に配置されているように示されているが、クライアントメモリ２１０およびサーバメモリ３１０の少なくとも一部は、例えば、通信ネットワークのサーバ、遠隔ハードディスクドライブ、取り外し可能ストレージ媒体、およびそれらの組み合わせなどと共に、間接的に（例えば、近くの場所で）アクセスされるか、または遠隔的にアクセスされるストレージシステムを含むか、またはそのようなストレージシステムから成ることができることが理解されよう。したがって、本明細書で説明するデータ、アプリケーション、および／またはソフトウェアのいずれかが、メモリ２１０、３１０内に格納され、および／またはネットワーク接続を介して、例えば、ＢＬＵＥＴＯＯＴＨ（登録商標）ネットワーク、ローカル・エリア・ネットワーク（ＬＡＮ）、都市間ネットワーク（ＭＡＮ）、またはワイド・エリア・ネットワーク（ＷＡＮ）を含むことができる他のデータ処理システム（図示せず）にアクセスすることができる。
【００６０】
図１および図２ならびに上記したそれぞれの説明は、本開示のいくつかの実施形態のさまざまな態様を実施することができる適切な環境の、簡潔で、一般的な説明を提供することを意図していることを理解すべきである。本説明は、コンピュータ可読命令に関するが、本開示の実施形態はまた、他のプログラムモジュールと組み合わせて実施することができ、および／またはコンピュータ可読命令に加えて、またはコンピュータ可読命令の代わりに、ハードウェアおよびソフトウェアの組み合わせとして実施することができる。
【００６１】
空間サーバ１２は、地理情報を格納する、および／またはさまざまな関数を提供するための１つまたは複数のデータベースと機能的にインターフェースすることができる。さまざまな機能には、これらに限定されないが、マップの発行、マップの共有、ウェブサービスの提供、空間解析（例えば、ベクトル、ラスタ、ネットワーク、および／または３Ｄ解析）の提供、競合および競合解消の地理的表示の提供、開発ツールおよびツールサポートの配信、座標系の間の変換、およびバージョン分けされたデータストアの管理などがある。
【００６２】
空間サーバ１２は、バージョン管理データストア（ＶＭＤＳ）１８、空間関係データベース２０、および他のファイルもしくはデータベース２２、すなわち、集約データベースに接続することができる。データベース１８、２０、および２２は、これらに限定されないが、関心領域、関心領域に関連する気象条件、および／または関心領域に関連する地形データなどの、地理情報を含むことができる
ＶＭＤＳ１８は、ＧＩＳクライアント１６が使用することができる空間およびトポロジカルネットワークを格納および解析することができる。ＶＭＤＳ１８は、属性照会、結合フィールド、トリガ、および集計フィールドなどのさまざまな関係データベース機能を含むことができる。さらに、ＶＭＤＳ１８は、多数の空間およびトポロジカル機能を有し、点、テキスト、ポリライン、ポリゴン、およびラスタデータなどのデータを、格納および解析することを可能にすることができる。ＶＭＤＳ１８において、空間および属性データが、データブロックに格納され、データブロックは、サーバ上のデータ・ストア・ファイルに存在する。ＧＩＳクライアント１６がデータをリクエストした場合、ＶＭＤＳ１８は、リクエストされたデータブロックのより最適なセットを判断することができ、次いで、データを、クライアント１６に、ネットワークを介して、処理するために戻す。ＶＭＤＳ１８の空間関数は、ポリゴン内の全ての特徴を発見し、１セットの部位のボロノイポリゴンを算出し、１セットの点についてクラスタ解析を実行することを含むことができる。点、ポリライン、およびポリゴンなどのベクトル空間データは、ネットワークをモジュール化することを可能にするトポロジカル属性をもたらすことができる。全てのＶＭＤＳ１８は、オブジェクトとして提示される。
【００６３】
いくつかの実施形態において、ＶＭＤＳ１８は、点、線、およびポリゴンを含む、空間内のオブジェクトに関連したデータを格納および照会するよう最適化される。データベースは、空間指標を使用して、空間クエリのための値を発見することができる。空間測定値（例えば、点の間の距離を知る、およびポリゴン領域を判断する）、空間関数（例えば、既存の特徴を修正して、新しい特徴を生成する）、空間述語（例えば、真／偽クエリを可能にする）、コンストラクタ関数（例えば、線を作り出すことができる頂点を特定することによって新しい特徴を生成する）、およびオブザーバ関数（例えば、特徴についての具体的な情報を返すクエリ）などのクエリ型は、全て、ＶＭＤＳ１８によってサポートされる動作とすることができる。
【００６４】
空間関係データベース２０は、空間データを、空間サーバ１２などのデータベース内により迅速に、効率的に格納、アクセス、および／または解析することを可能にする関数およびプロシージャの統合セットである。空間関係データベース２０は、構造化照会言語（ＳＱＬ）、および関係データベース内の空間的特徴の集合のストレージ、検索、アップデート、および照会を容易にする関数を提供することができる。データベース２０は、これらに限定されないが、サポートされる幾何学的データ型のストレージ、構文、および意味を規定するスキーマ、空間的インデックス機構、関心領域クエリ、空間結合クエリ、および他の空間解析演算を実行するための１組の演算および関数、ならびに管理ユーティリティなどの、構成要素を含むことができる。
【００６５】
図３は、全ての形式の地理的参照情報を収集、管理、格納、および表示するのに適切なキャッシュシーケンス４００の一実施形態を示すフローチャートである。キャッシュシーケンス４００を実行している間、空間サーバ１２は、画像リクエストを、クライアントデバイス１４と関連付けられたＧＩＳクライアント１６から受信し、ハッシュ関数を画像リクエストに適用して、リクエストされたデータの１つまたは複数の要素に対してそれぞれ少なくとも１つの標準化識別子を生成し、各標準化識別子をＧＩＳクライアント１６に送信し、必要ならば、標準化識別子を空間サーバ１２によってアクセス可能な格納された識別子と比較し、ＧＩＳクライアント１６によってクライアントデバイス１４に送信するために、ならびにクライアントデバイス１４に表示および保管するために格納された識別子と関連付けられた少なくとも１つの格納画像を検索し、リクエストされた画像を収容するために、任意の以前に格納された画像がクライアントデバイス１４から除去される必要があるかどうかを判断する。
【００６６】
まず、動作４１０で、空間サーバ１２のサーバプロセッサ３６０は、画像リクエストをクライアントデバイス１４から受信する。具体的には、ＧＩＳクライアント１６は、画像リクエストを、ネットワーク２４を介して、空間サーバ１２に、ＧＩＳクライアントデータをリクエスト画像と関連付けるために送信する。リクエストは、アドレス、座標、ランドマーク、ドロップピンおよび周囲環境、ならびにグリッド識別子などの、任意の数の形式で空間サーバ１２に送信することができる。例えば、クライアントデバイス１４は、（例えば、ジオコーディングによって）地理的座標に変換することができる物理アドレスを入力することができる．
当技術分野で知られているように、リクエストは、非限定の例として、タイル画像のモザイクから成るマップ画像を定義するグリッドの座標、日中対夜間のビューおよび標準対衛星のビューなどのマップ画像のフォーマットに関する優先度、強調すべきランドマーク、アセット、または他のオブジェクトの種類もしくは性質、ズームレベル、言語、カラースキーム、言語、およびフォントなどから成るとすることができる。標準化識別子は、そのようなリクエストの要素の全てまたは一部への符号化参照とすることができる。
【００６７】
いくつかの実施形態において、画像リクエストは、次いで、動作４２０で見られる様に、標準化画像リクエストに再フォーマットされる。画像リクエストを標準化画像リクエストに再フォーマットすることは、さまざまな種類のリクエストを、空間サーバ１２がリクエストに応答する各データに対する適切な標準化識別子を判断または適用するために均一に処理することができる、均一フォーマットに分解することを含む。空間サーバは、変換するために参照するテーブルまたは他のデータストアを含むことができる。テーブルまたはデータストアは、例えば、サーバ制御器３００のサーバメモリ３１０に格納することができ、またはサーバプロセッサ３６０によってアクセス可能とすることができる。
【００６８】
動作４３０で、サーバプロセッサ３６０は、画像リクエストまたは標準化画像リクエストを処理して、これらに限定するものではないが、画像リクエストのサイズ、画像リクエストの言語、および画像リクエストの座標などの、マップリクエストの性質または内容に基づいて、タイル画像またはリクエストデータの属性などの、少なくとも１つのデータ要素をそれぞれが識別する１つまたは複数の標準識別子を導出または生成する。
【００６９】
画像リクエストまたは標準化画像リクエストは、ハッシュ関数を、画像リクエストで指定されたリクエスト画像のＧＩＳ特性に基づいて、標準化画像リクエストに適用することによって、各標準識別子を導出することができる。ハッシュ関数は、画像リクエストの全てまたは一部に適用することができる。
【００７０】
ハッシュ関数について説明するが、画像リクエストの構成要素について一方向または双方向変換を実行するのに適切な任意の関数を使用することができる。ハッシュ関数は、ハッシュコードまたはハッシュキーとして知られる値を生成することによって、固定サイズのデジタルデータに対する任意のサイズ（例えば、２５６×２５６ピクセル）を有するリクエストデータの各要素（例えば、タイル画像）に対する標準化識別子を生成する。別の言い方をすれば、ハッシュキーは、リクエストされたデータ要素（例えば、タイル画像）を、空間サーバ１２に、およびローカル不揮発性メモリ２１３に格納されたデータ要素に索引づけするために使用される標準化識別子である。標準識別子は、空間サーバ１２に格納された特定の画像を識別するために使用される所定の識別子とすることができる。例えば、標準識別子は、空間サーバ１２に配置された、またはＧＩＳクライアント１６によって以前に格納された、特定のタイル画像またはタイル画像のグループに対応することができる。
【００７１】
ハッシュ関数によって生成された各標準化識別子は、ＧＩＳアセット型、位置、インストール日時、全地球測位システム（ＧＰＳ）座標、ならびにアセット識別および注釈情報を含む、画像によって指示されるさまざまな種類のデータを識別することができる。例えば、リクエストは、ある地理的グリッド領域内に配置された種類「変換器」の全てのユーティリティデバイスの位置を示すマップ画像のレンダリングをリクエストすることができる。したがって、標準化識別子は、マップレイヤの１つまたは複数の構成要素に、または、タイル画像の要素などの、ＧＩＳデータのいくつかの、または全ての離散的要素に実際に対応することができる。
【００７２】
４３５で、空間サーバ１２は、標準識別子をクライアントデバイス１４に送信するか、または通信する。
【００７３】
動作４４０で、１つまたは複数の標準識別子を受信した後、ＧＩＳクライアント１６は、各標準化識別子または標準化識別子の１セットもしくは範囲を、クライアントデバイス１４の不揮発性メモリ２１３に格納された１つまたは複数の識別子と比較する。各格納された識別子はまた、格納された画像、画像のグループ、または不揮発性メモリ２１３に以前に格納された他の格納ＧＩＳデータに対応する。
【００７４】
動作４５０で、クライアントプロセッサ２６０は、標準化識別子によって識別されたリクエストデータが、クライアントデバイス１４のローカルメモリ２１０にキャッシュされているかどうかを判断する。具体的には、クライアントプロセッサ２６０は、格納された識別子に対して標準化識別子を照会または相互参照して、画像または画像のグループに対応する格納された識別子が、不揮発性メモリ２１３に以前に格納されたかどうかを判断し、標準化識別子をマッチングする。
【００７５】
空間サーバ１２から受信した標準化識別子が不揮発性メモリ２１３内の格納された識別子とマッチするとクライアントプロセッサ２６０が発見した場合、キャッシュデータが配置されている。４５２で、本方法は、以下で説明するように、キャッシュデータを、それでも置換すべきかどうかの判断を、オプションで含む。本方法は、次いで、動作４５４に続く。動作４５４で、クライアントデバイス１４のクライアントプロセッサ２６０、メモリ制御器２１５およびディスプレイ制御器２２５は、動作４６０で不揮発性メモリ２１３からクライアント・デバイス・ディスプレイに、リクエスト画像および関連付けられたＧＩＳデータを検索およびロードするために協働する。ディスプレイ制御器２２５は、標準化識別子に対応する、およびクライアント・ディスプレイ・デバイス１４および他の任意の出力デバイスを介して視覚的、文字的、音声的、または他のアクセスのためにリクエストされた画像および関連付けられたＧＩＳデータを表示すると、ＧＩＳデータを解釈する。
【００７６】
標準化識別子が不揮発性メモリ２１３内の格納された識別子と一致しない場合（例えば、パス４５６）、動作４５８で、クライアントプロセッサ２６０は、レスポンスを生成し、空間サーバ１２に通信して、リクエストされたＧＩＳデータを空間サーバ１２から検索することを開始する。レスポンスをクライアントデバイス１４から受信する場合、サーバプロセッサ３６０は、データベース１８、２０、および２２内のリクエストデータにアクセスする。不揮発性メモリ２１３を検索するのと同様に、リクエストされた画像データは、データベース１８、２０、および２２に標準化識別子を配置することによって発見される。サーバプロセッサ３６０は、リクエストされた画像データを、クライアントデバイス１４と関連付けられたＧＩＳクライアント１６に送信することを開始する。
【００７７】
リクエストデータが空間サーバ１２から受信されると、次いで、リクエストされた画像データの一部または全てを、同じ標準識別子と関連付けられた後のリクエストのために、不揮発性メモリ２１３に格納することができる。例えば、リクエストされた画像が、クライアントデバイス１４で使用するために不揮発性メモリ２１３に格納されると、クライアントデバイス１４は、ネットワーク２４との接続を失う。
【００７８】
動作４７０で、クライアントプロセッサ２６０は、空間サーバ１２と通信するデータベース１８、２０、および２２から検索されたリクエスト画像に対応する画像データを格納するために、十分なメモリが不揮発性メモリ２１３に存在するかどうかを判断する。
【００７９】
十分なスペースが不揮発性メモリ２１３に存在する場合（例えば、パス４７２）、空間サーバから受信した標準化識別子に対応する画像データが、動作４７４で、後の検索のために、不揮発性メモリ２１３に格納される。
【００８０】
格納されると、リクエストされた画像が、存在する場合に、クライアントデバイス１４に、ＧＩＳクライアント１６を介して、表示される。ディスプレイ制御器２２５は、標準化識別子を解釈し、リクエスト画像と関連付けられた画像データにアクセスし、リクエスト画像と、関連付けられたＧＩＳクライアントデータとを、クライアントディスプレイ１５に、動作４６０で表示する。
【００８１】
十分なスペースが不揮発性メモリ２１３に存在しない場合（例えば、パス４７６）、動作４７８で、不揮発性メモリ２１３内に格納された１つまたは複数の識別子が、格納された識別子および関連付けられたＧＩＳデータを除去するために選択され、リクエストされた画像データのためにスペースを生成する。そのような場合において、メモリ制御器２１５は、格納された識別子と、一部または全ての対応するＧＩＳデータ（例えば、タイル画像およびアセットデータ）とを、不揮発性メモリ２１３から除去する。
【００８２】
格納された識別子および対応するＧＩＳデータの選択および除去は、それぞれ本開示により、さまざまな異なる方法で実現することができる。
【００８３】
ある実施形態において、各格納された識別子は、格納された識別子と関連付けられた画像データが任意の位置でいつ生成されたか、またはＧＩＳクライアント１６によって格納されたのはいつか、最後にアクセスされたのはいつか、最初にアクセスされたのはいつか、もしくは繰り返しアクセスされたのはいつか、を識別するタイムスタンプまたは他の一連の文字もしくは符号化情報と関連付けられている。格納された識別子および関連付けられたＧＩＳデータが除去されて、このタイムスタンプを参照して任意の適切な計算によりスペースを生成することができる。例えば、除去は、クライアントプロセッサ２６０が、識別子およびＧＩＳデータが不揮発性メモリ２１３に存在していた時間の長さ、または不揮発性メモリに存在している間の使用頻度を判断することに依存するであろう。
【００８４】
格納された識別子／ＧＩＳデータが所定の時間の長さに基づいて除去された場合、埋め込まれているか、またはメタデータに含まれるタイムスタンプ情報を使用して、格納された識別子／ＧＩＳデータが不揮発性メモリ２１３に最初に格納されたのがいつかを概ね判断することができる。例えば、タイムスタンプが最も過去の格納された識別子が、対応する画像データと共に、不揮発性メモリ２１３から除去される可能性がある。
【００８５】
さらに、または代わりに、時間の長さは、不揮発性メモリ２１３内の索引スタック内の格納された識別子位置の位置により判断してもよい。例えば、索引スタック内の第１の位置が最も遅い時間に入力されたことを示す場合、第１の位置に格納された識別子が、対応する画像データと共に除去されるであろう。
【００８６】
時間の長さに加えて、削除対象のＧＩＳデータと関連付けられた格納された識別子を、不揮発性メモリ２１３に格納されて以来の識別子の使用頻度に基づいて、代わりに、またはさらに判断することができる。
【００８７】
使用頻度はまた、識別子が格納されていた時間の長さに関係することができる。例えば、ある識別子が、１時間、格納されており、不揮発性メモリ内の他の格納された識別子内での検索に対してリクエストの回数が最も少ない場合、その格納された識別子および対応する画像データは、削除されないであろう。しかしながら、同じ識別子が、１ヶ月間、格納されており、リクエストの回数が最も少ない場合、その格納された識別子および対応する画像データは、不揮発性メモリ２１３から除去されるであろう。
【００８８】
使用の頻度および保管時間の長さが、どちらも、格納された識別子／ＧＩＳデータを不揮発性メモリ２１３から除去するかどうかを判断する際に使用された場合、各尺度を比較する所定の規格を確立することができ、そのような規格には、これらに限定されないが、比率閾値および条件付きプログラミング言語などがある。例えば、「ｉｆ，ｔｈｅｎ」などの条件付きプログラミングステートメントは、「格納された識別子のタイムスタンプが１日未満である場合、使用の頻度は考慮しない」ことを確立することができる。別の例として、リクエスト頻度（リクエストの数ごとに測定される）と比較された場合に格納された時間の比率（日ごとに測定される）は、１０：１または他の任意の所定の数とすることができる。したがって、格納された識別子は、１０日ごとに、不揮発性メモリ２１３からの検索に対して少なくとも１回、リクエストされていることになる。
【００８９】
クライアントプロセッサ２６０はまた、ＧＩＳデータが、古くなる、滅多に使用されなくなる（例えば、不揮発性メモリ２１３に存在する最も古いＧＩＳデータ）、または時間的に望ましくなくなったかどうかを判断する際に、所定の閾値を参照することができる。本判断によって、不使用の、または滅多に使用されない、以前に格納されたＧＩＳデータを、不揮発性メモリに残っているデータから除去するために識別することができる。この方式では、メモリリソースは、ＧＩＳクライアント１６の最も有益なＧＩＳデータに優先的に割り当てられる。
【００９０】
格納されたＧＩＳデータの他の属性には、バージョン、サイズ、経過時間、および他の格納されたＧＩＳデータと比較した相対的な経過時間があり、格納されたＧＩＳデータのいずれを削除すべきかを判断するために使用することができる。そのような任意の属性に対して、属性データを、格納された識別子もしくは標準化識別子と共に、または格納された識別子もしくは標準化識別子に加えて、維持することができ、属性データは、これらに限定されないが、属性データを、所定の閾値、ベンチマーク、またはルールベースロジックに対してテストすることによって、サーバレベルまたはクライアントレベルで比較または解析することができる。
【００９１】
他の実施形態において、各格納された識別子は、格納されたバージョン識別子、または格納された識別子と関連付けられた画像データの反復を比較するために使用することができる他の一連の文字または符号化情報と関連付けられている。これらの実施形態において、空間サーバ１２が標準化識別子を送信すると、ＶＭＤＳ１８から検索された、送信されたバージョン識別子ももたらす。送信されたバージョン識別子は、対応する格納された識別子と関連付けられた、格納されたバージョン識別子と比較される。格納された識別子および関連付けられたＧＩＳデータは、送信されたバージョン識別子が、もたらすことができるＧＩＳデータのバージョンが格納されたＧＩＳデータのバージョンより最近であることを示すかどうかにより、スペースを生成するために除去される可能性がある。除去は、例えば、バージョンの無視できる程度の違いに基づくＧＩＳデータの置換を防ぐために、バージョンの違いが所定の閾値を超えない場合、拒否することができる。この方式では、格納された画像データは、メモリリソースが維持されている限り、最新の状態に保たれる。
【００９２】
動作４７０で不揮発性メモリ２１３における十分な容量を判断し、動作４７８で不揮発性メモリ２１３から格納された識別子および対応するＧＩＳデータを除去する処理は、標準識別子および対応するＧＩＳデータ（例えば、リクエスト画像）を格納するのに十分な容量が不揮発性メモリ２１３に存在するまで、繰り返すことができる。
【００９３】
ローカル・メモリ・リソースの割り当てを最適化するために、格納されたＧＩＳデータのいずれを維持し、いずれを除去すべきかを判断するために、任意の数のルールを確立することができることが、当業者には容易に理解されるであろう。格納されたＧＩＳデータはまた、「抽出物」にグループ化するか、またはＧＩＳクライアント１６によって集合的に索引づけすることができる。ある意味では、クライアントプロセッサ２６０は、ローカル・キャッシュ・サーバに対する制御器の役目を果たす。あるいは、キャッシュサーバの機能は、クライアントデバイス１４が通信可能なデバイス、またはサーバ１２などの、ネットワーク２４における別のデバイスなどの他の場所に存在していてもよい。いずれにしても、クライアントデバイス１４は、本開示と一致するシステムおよび方法を使用して、メモリリソースを管理する。
【００９４】
ある環境において、ＧＩＳクライアント１６は、接続性がＧＩＳデータの効率的な検索の助けにならないと判断する可能性がある。場合によっては、実際に、接続しない可能性もある。ＧＩＳクライアント１６は、リクエストされたＧＩＳデータが、何らのデータを一切ダウンロードすることなく、ローカルメモリ２１０に格納されるかどうかを判断するための機能を有することができる。あるいは、他の例において、何らかの接続性が存在する可能性があるが、ＧＩＳデータを容易に、または効率的に検索するのに不十分である可能性がある。これらの例において、ＧＩＳクライアント１６は、リクエストを送信し、標準化識別子を受信し、格納された識別子および関連付けられた格納ＧＩＳデータが空間サーバ１２から検索されて置換されるべきであることを示す属性データを受信することができるが、それでもなお、格納されたＧＩＳデータを使用して、例えば、マップ画像を表示する際の遅延を避けることができる。そのような環境において、ＧＩＳクライアント１６は、接続が改善された時間にＧＩＳデータを検索およびキャッシュするかどうかの判断を延期することができる。
【００９５】
ある環境において、ＧＩＳクライアント１６は、頻繁に横断される地域などの所定の関心領域と関連付けることができる。例えば、ＧＩＳクライアント１６は、所与のサービス領域で動作するクライアントデバイス１４によって使用される可能性がある。ＧＩＳクライアント１６によって実行されるルールおよび解析の一部または全ては、例えば、データの置換が、最も低い精度レベルを他の領域に対して許容可能とすることができる場合に、所定の関心領域が最適な精度レベルに維持されることを確実にするよう促進されるよう、リクエストが所定の関心領域と関連付けられたＧＩＳデータを対象とする場合に調整することができる。さらに、以前に格納されたＧＩＳデータを除去および置換するかどうかの判断は、所定の関心領域と関連付けられたＧＩＳデータに対するストレージを割り当てるのに有利になるよう調整することができる。
【００９６】
本発明の態様は、本発明の実施形態に従って、方法、装置（システム）、およびコンピュータプログラム製品のフローチャートおよび／またはブロック図を参照して説明する。フローチャートならびに／もしくはブロック図の各動作、およびフローチャートならびに／もしくはブロック図内のブロックの組み合わせは、コンピュータプログラム製品によって実施することができることが理解されるだろう。これらのコンピュータプログラム命令は、汎用コンピュータ、特定用途コンピュータ、または他のプログラム可能データ処理装置にもたらされ、機械を製造することができ、コンピュータまたは他のプログラム可能データ処理装置のプロセッサを介して実行される命令により、フローチャートおよび／またはブロック図の１つまたは複数のブロックで指定される機能／動作を実施する手段を生成する。
【００９７】
いくつかの代替実装態様において、ブロック内に記載された機能は、図に記載された順序で行われない可能性があることにも留意すべきである。例えば、連続する２つのブロックは、実際は、実質的に同時に実行してもよく、または複数のブロックを、含まれる機能によって、逆順に実行してもよい。ブロック図および／もしくはフローチャートの各ブロック、ならびにブロック図および／もしくはフローチャートのブロックの組み合わせは、特定の機能または動作を実行する特定用途ハードウェアベースシステム、または特定用途ハードウェアおよびコンピュータ命令の組み合わせにより実施することができることもまた留意されよう。
【符号の説明】
【００９８】
１０  地理情報システム（ＧＩＳ）
１２  空間サーバ
１４  クライアントデバイス
１５  クライアントディスプレイ
１６  ＧＩＳクライアントアプリケーション、ＧＩＳクライアント
１８  バージョン管理データストア（ＶＭＤＳ）
２０  空間関係データベース
２２  他のファイルまたはデータベース
２４  ネットワーク
２００  クライアント制御器、クライアントデバイス制御器
２１０  ローカルメモリ、クライアントメモリ
２１３  不揮発性メモリ
２１５  メモリ制御器
２２５  ディスプレイ制御器
２６０  クライアントプロセッサ
２７０  Ｉ／Ｏインターフェース
２８０  ネットワークインターフェース
３００  サーバ制御器
３１０  サーバメモリ
３２０  アプリケーション
３３０  データベース
３４０  オペレーティングシステム（ＯＳ）
３５０  Ｉ／Ｏデバイスドライバ
３６０  サーバプロセッサ
３７０  Ｉ／Ｏポート
３８０  ネットワークインターフェース
４００  キャッシュシーケンス
４５６  パス
４７２  パス
４７６  パス
【図１】
2016192205.tif 000003
【図２】
2016192205.tif 000004
【図３】
2016192205.tif 000005
【外国語明細書】
2016192205000001.pdf