(57)【特許請求の範囲】
【請求項１】
地図データ配信サーバからクライアントにベクトル形式の地図データを配信し、前記クライアント側で地図画像を描画する地図データ配信方法であって、
前記地図データ配信サーバは前記地図データを複数の地図構成要素毎に記憶し、前記クライアントに前記地図構成要素毎に順番に前記地図データを送信し、
前記クライアントは、前記サーバから受信した前記地図データを一時的に記憶する一時記憶メモリと、前記地図構成要素毎の地図描画要求の書き込み及び取り消しが行われる描画キューとにより構成され、ユーザの指示を解析して地図描画要求を出力するユーザインタフェースと、前記ユーザインタフェースから出力される地図描画要求に応じて前記地図データ配信サーバにアクセスし前記地図構成要素を受信するメインスレッドと、前記メインスレッドにより前記描画キューに地図描画要求が書き込まれると前記地図構成要素を使用して地図描画を開始する描画スレッドが協働して、ユーザからの入力処理、前記地図データ配信サーバからの地図データ取得処理及び地図描画処理を並行処理することを特徴とする地図データ配信方法。
【請求項２】
前記描画スレッドは、前記描画キューに書き込まれた描画要求を書き込まれた順番に処理し、処理が終了した描画要求を前記描画キューから削除することを特徴とする請求項１に記載の地図データ配信方法。
【請求項３】
前記メインスレッドは、前記ユーザインタフェースから地図描画要求が通知されると、優先度が高い地図構成要素から順に、前記一時記憶メモリ内に当該地図構成要素が格納されているか否かを調べ、
格納されているときは前記描画キューに当該地図構成要素の描画要求を追加し、
格納されていないときは通信回線を介して接続した地図データ配信サーバに当該地図構成要素の送信を要求し、前記地図データ配信サーバから当該地図構成要素が送られてくると、当該地図構成要素を前記一時記憶メモリに記憶するとともに、当該地図構成要素の描画要求を前記描画キューに追加し、
前記描画スレッドは前記描画キューに追加された順番に前記描画要求を処理して地図を描画することを特徴とする請求項１に記載の地図データ配信方法。
【請求項４】
前記メインスレッドは、前記ユーザインタフェースからの要求により、前記描画キューに格納されている未処理の描画要求を破棄することを特徴とする請求項１に記載の地図データ配信方法。
【請求項５】
前記一時記憶メモリに新たなデータを格納するときに、容量が足りない場合は、使用頻度の少ないデータから破棄することを特徴とする請求項１に記載の地図データ配信方法。
【請求項６】
前記一時記憶メモリは、複数画面分の地図データを記憶可能な容量を有することを特徴とする請求項１に記載の地図データ配信方法。
【請求項７】
前記描画スレッドは、複数画面分の地図画像をビデオメモリに展開し、そのうちの１画面分の地図画像を表示装置に表示することを特徴とする請求項１に記載の地図データ配信方法。
【請求項８】
請求項１乃至７のいずれか１項に記載の地図データ配信方法に使用するクライアントであって、前記サーバから受信した前記地図データを一時的に記憶する一時記憶メモリと、前記地図構成要素毎の地図描画要求の書き込み及び取り消しが行われる描画キューとにより構成され、ユーザの指示を解析して地図描画要求を出力するユーザインタフェースと、前記ユーザインタフェースから出力される地図描画要求に応じて前記地図データ配信サーバにアクセスし前記地図構成要素を受信するメインスレッドと、前記メインスレッドにより前記描画キューに地図描画要求が書き込まれると前記地図構成要素を使用して地図描画を開始する描画スレッドが協働して、ユーザからの入力処理、前記地図データ配信サーバからの地図データ取得処理及び地図描画処理を並行処理するクライアント。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、サーバ側からクライアント側に通信回線を介して地図データを配信し、クライアント側で地図画像を描画する地図データ配信方法、その地図データ配信方法に使用するクライアント及び地図データ配信サーバに関する。
【０００２】
【従来の技術】
近年、インターネットのウエブ（ｗｅｂ）上で電子地図が提供されるようになった。例えば、ユーザが電子地図を提供しているウエブサイトにアクセスし、所望の地点（緯度及び経度等）を指定すると、指定した地点を含む地域の地図画像がインターネットを介してユーザのコンピュータ（以下、クライアントともいう）に送信され、ユーザのコンピュータ画面に地図が表示される。
【０００３】
一般的に、電子地図を提供するウエブサイトのサーバでは、地図データをベクトル形式で保有している。従って、クライアントから電子地図が要求されると、要求された地点の地図データを地図データベースから読み出し、レンダリング処理によりビットマップ画像を描画した後、その描画した地図画像をＪＰＥＧ又はＧＩＦ等の画像形式でクライアント側に送信している。
【０００４】
【発明が解決しようとする課題】
上述した従来の地図データ配信方法では、クライアント側のコンピュータの性能や回線品質を考慮せず、１図葉分の地図画像を通信回線を介して送信している。このため、送信データのサイズが大きく、通信に要する時間が長くなるという欠点がある。
【０００５】
送信データのサイズを削減するために、地図データをそのまま（ベクトルデータのまま）クライアントに送信し、クライアント側でレンダリング処理することが考えられる。しかし、その場合は通信時間を削減できるものの、一般的にクライアント側のコンピュータはサーバ側のコンピュータに比べて性能が劣るため、ベクトルデータから地図画像を描画するのに多大な時間を要するという問題が発生する。
【０００６】
以上から本発明の目的は、通信時間を短縮でき、且つクライアント側で通信開始から比較的短時間で地図画像を描画できる地図データ配信方法、その地図データ配信方法に使用するクライアント及び地図データ配信サーバを提供することである。
【０００７】
【課題を解決するための手段】
上記した課題は、地図データ配信サーバからクライアントにベクトル形式の地図データを配信し、前記クライアント側で地図画像を描画する地図データ配信方法であって、前記地図データ配信サーバは前記地図データを複数の地図構成要素毎に記憶し、前記クライアントに前記地図構成要素毎に順番に前記地図データを送信し、前記クライアントは、前記サーバから受信した前記地図データを一時的に記憶する一時記憶メモリと、前記地図構成要素毎の地図描画要求の書き込み及び取り消しが行われる描画キューとにより構成され、ユーザの指示を解析して地図描画要求を出力するユーザインタフェースと、前記ユーザインタフェースから出力される地図描画要求に応じて前記地図データ配信サーバにアクセスし前記地図構成要素を受信するメインスレッドと、前記メインスレッドにより前記描画キューに地図描画要求が書き込まれると前記地図構成要素を使用して地図描画を開始する描画スレッドが協働して、ユーザからの入力処理、前記地図データ配信サーバからの地図データ取得処理及び地図描画処理を並行処理することを特徴とする地図データ配信方法により解決する。
【０００８】
本発明において、地図データ配信サーバでは地図データを、例えば道路の描画に使用する道路データ、公園や河川等の描画に使用するポリゴンデータ及び文字列の表示に使用する文字列データなどの地図構成要素毎に記憶しており、これらのデータを地図構成要素毎に順番にクライアントに送信する。クライアント側では、地図データ配信サーバから１図葉分のデータを受信してから地図の描画を開始するのではなく、地図データを受信すると、受信したデータを一時記憶メモリ内に保存するとともに、受信したデータ又は一時記憶メモリ内のデータを使用して地図画像の描画を開始する。
【０００９】
このように、本発明では、サーバで地図画像を描画して配信するのではなく、地図画像を描画するための地図データをクライアントに送信するので、送信データ量が少なく、通信時間を短縮することができる。また、クライアント側では、地図の描画と地図データの受信とを並行して行うので、地図データの受信開始から地図画像の描画終了までに要する時間が短くてすむ。更に、本発明では、地図データが地図構成要素毎に送られてきて、送られてきた順番で地図を描画する。このため、例えば道路が表示され、次に道路名や交差点名が表示され、その後公園や河川等の形状が表示される。このように、主要な地図構成要素から順番に描画することにより、地図描画が完了する前に所望の地点の状態をある程度把握することができるという利点もある。
【００１０】
また、本発明では上述のように地図描画が完了する前にその地点の状態をある程度把握することができるので、描画中の地図が不用になり、その代わりにその地域の詳細地図や隣接する地域の地図が必要となることがある。このような場合、一時記憶メモリ内に含まれているデータが次の地図描画にも使用できるものであれば、当該データの送信を不要とする信号をサーバに送ることにより、重複するデータの送信をしなくてもすみ、無駄な通信時間を削減できる。
【００１１】
クライアントは、例えばコンピュータのハードウェアと専用ソフトウエアとにより構成され、ユーザの指示を解析して地図描画要求を出力するユーザインタフェースと、前記ユーザインタフェースから出力される地図描画要求に応じて前記地図データ配信サーバにアクセスし地図構成要素を受信するメインスレッドと、前記地図データ配信サーバから受信した地図構成要素を記憶する一時記憶メモリと、前記地図構成要素を使用して地図を描画する描画スレッドとを有している。そして、ユーザインタフェース、メインスレッド及び描画スレッドが協働して、ユーザからの入力処理、前記地図データ配信サーバからの地図データ取得処理及び地図描画処理を並行処理することにより、ユーザの地図描画要求入力から地図描画完了までの時間を短縮する。
【００１２】
描画スレッドには、メインスレッドにより地図構成要素毎の描画要求が書き込まれる描画キューを備えている。そして、描画スレッドは、描画キューに書き込まれた描画要求により、例えば一時記憶メモリから必要な地図構成要素を読み出して地図を描画していく。処理が完了した描画要求は描画キューから削除され、描画スレッドは描画キューが空になるまで描画処理を継続する。
【００１３】
ユーザにより新たな地点の地図の描画要求が出されたときや、縮尺の変更が要求されたときに、描画キュー内の未処理の描画要求を廃棄することが好ましい。これにより、ユーザの要求が迅速に反映され、新たな地点の地図描画要求又は縮尺の変更要求による新たな地図の描画が短時間で開始される。
【００１４】
【発明の実施の形態】
以下、本発明の実施の形態について、添付の図面を参照して説明する。
（第１の実施の形態）
図１は本発明の第１の実施の形態の地図データ配信方法を実現するシステムの構成を示す模式図である。このシステムは、インターネット又はその他の通信回線で接続された地図データ配信サーバ１０とクライアント２０とにより構成される。
【００１５】
地図データ配信サーバ１０は、地図データを格納した地図データベース１１と、地図データベース１１から所定の地図データを抽出するＣＧＩ（Common gateway interface）１２とを有している。
地図データベース１１に格納された地図は、1/12500 、1/25000 、1/50000 及び1/100000等の縮尺レベルに応じて適当な大きさの経度幅及び緯度幅に区切られており、道路等は経度及び緯度で表現された頂点（ノード）の座標集合として記憶されている。道路は複数のノードの連結で表現され、ノードの連結はリンクといわれる。また、地図データは、（１）ノードの位置及びリンク状態を示すデータからなり、道路の描画に使用される道路データ、（２）建築物、施設、公園及び河川等の描画に使用されるポリゴンデータ、（３）市町村名などの行政区画名、道路名、交差点名及び建物の名前を表示するための文字列データ、（４）地図上に目印となる建物や店舗等を表示するためのランドマークデータ、（５）等高線の表示等に使用する高度データなどが含まれている。
【００１６】
一方、クライアント２０は、サーバ１０のウエブサイトにアクセスするためのＷＷＷブラウザ２１と、ＷＷＷブラウザ２１に連動して画面上に地図を描画する地図描画ソフト２２と、サーバ１０から送られてくる地図データを一時的に保存するキャッシュ（一時記憶メモリ）２３とを有している。地図描画ソフト２２は、例えばＪａｖａで記述されたアプレットやActiveＸ又はプラグイン（plug in ）などで実現される。また、キャッシュ２３は半導体メモリ（ＤＲＡＭ）の空き領域やハードディスクの空き領域を利用して実現される。
【００１７】
図２は、本実施の形態の地図データ配信方法を示す模式図である。
まず、クライアント２０は、ＷＷＷブラウザ２１を使用し、インターネット等の通信回線を介して、電子地図配信サービスを行っているウエブサイトにアクセスする。その後、ユーザは、所定の操作により、電子地図を所望する地点を指定する。所望の地点を指定する方法としては、例えばクライアント２０の表示装置に広域地図を表示し、その広域地図上で所望の地点を指定する方法や、地名（都道府県名、市町村名又は駅名等）により所望の地点を指定する方法など種々考えられるが、ここではユーザが所望の地点の緯度・経度を直接入力するものとする。
【００１８】
クライアント２０は、ユーザにより緯度・経度が入力されると、地図データの要求を示す信号とともに、入力された緯度・経度をサーバ１０に送信する。このとき同時に、データ送信の優先順位を指定することができる。ここでは、道路データ、文字列データ、ランドマークデータ、ポリゴンデータ、…の順にデータ送信の優先順位を指定したとする。初期状態でデータ送信の優先順位を決めておき、ユーザが優先順位を任意に変更できるようにしておいてもよい。
【００１９】
地図データ配信サーバ１０では、クライアント２０から地図データの要求信号を受信すると、ＣＧＩ１２を起動する。ＣＧＩ１２は、地図データベース１１から指定された地点を含む地域の地図データを読み出す。地図データ配信サーバ１０は、ＣＧＩ１２によってデータベース１１から読み出された地図データを、指定された優先順位に従った順番でクライアント２０に送信する。
【００２０】
クライアント２０は、地図データ配信サーバ１０から送られてくるデータを全て受信してから地図を描画するのではなく、データの受信と地図描画処理とを並行して行う。すなわち、クライアント２０は、地図データ配信サーバ１０から送られてくるデータをキャッシュ２３に蓄積する一方、地図描画ソフト２２を起動し、サーバ１０から送られてくる地図データ又はキャッシュ２３内のデータを使用して地図画像の描画を開始する。
【００２１】
この例では、サーバ１０から道路データ、文字列データ、ランドマークデータ、ポリゴンデータ、…の順にデータが送られてくるので、クライアント２０ではまず、道路データを受信して道路の描画を開始する。道路の描画が完了しないうちに文字列データやランドマークデータ等が送られてくると、それらのデータはキャッシュ２３に蓄積される。キャッシュ２３の容量が不足する場合は、キャッシュ２３内の道路データのうち、すでに道路描画に使用したデータや、参照頻度の低いデータ及び優先順位の低いデータから優先的に破棄する。
【００２２】
道路の描画が完了すると、続いて文字列の表示やランドマークの描画などを順に実行する。このようにして、クライアント２０の表示画面に地図画像が表示される。
本実施の形態においては、サーバ１０からの道路データの送信が開始された直後からクライアント２０側では地図画像の描画が始まるので、全ての地図データを受信してから描画を開始する場合に比べて地図の描画に要する時間が短縮される。また、この例では、道路の描画、文字列の表示、ランドマークの描画の順で地図が描画されるので、地図全体の描画が完了する前に所望の地点の状況をある程度把握することができる。
【００２３】
また、本実施の形態では、例えば１図葉分の地図データの受信が完了する前にユーザの操作によって地図の表示領域に変更があった場合、例えば地図を上下又は左右にスクロールしたり、詳細地図や広域地図に切換える場合は、クライアント２０はデータの受信を中止して、新たに必要になったデータの要求を行う。このとき、クライアント２０ではキャッシュ２３内に必要なデータが含まれている場合、例えば、新たに描画する地域の道路データや文字列データがキャッシュ２３に残っている場合は、当該データの送信を不要とする信号をサーバ１０に送信する。これにより、サーバ１０では重複するデータの送信を行わず、その他の必要なデータのみを送信する。
【００２４】
このようにして、本実施の形態では重複するデータの送信を行わず、地図が表示されるまでのタイムラグを極力排除する。何らかの操作を行ってからアクションが起こるまでのタイムラグが長いとユーザは不安に駆られるが、本実施の形態によれば、ユーザが操作を行ってから地図が表示されるまでのタイムラグを削減することができて、操作性が向上する。また、本実施の形態では、図葉単位ではなく、それを構成する要素単位でデータを転送することにより、クライアント側での細かい制御が可能になり、より効率的な通信及び地図描画が可能になる。
【００２５】
（第２の実施の形態）
図３は本発明の第２の実施の形態の地図データ配信方法を実現するシステムの構成を示す模式図である。このシステムは、地図データ配信サーバ３０と、クライアント４０とにより構成される。
地図データ配信サーバ３０は、地図データを格納した地図データベース（ＤＢ）３１と、地図データベース３１から所定の地図データを抽出するＣＧＩ又はサーブレット（以下、ＣＧＩ／Servlet と記す）３２と、ＷＷＷサーバ３３とにより構成される。地図データベース３１には、第１の実施の形態と同様に、地図データが、各縮尺毎に道路データ、ポリゴンデータ、文字列データ、ランドマークデータなどの地図構成要素毎に分類されて格納されている。ＷＷＷサーバ３３はインターネットと接続して、ウエブサイトを提供する。従って、クライアント４０は、ウエブブラウザを使用して地図データ配信サーバ３０に簡単にアクセスすることができる。
【００２６】
ＣＧＩ／Servlet ３２は、ＷＷＷサーバ３０に接続したクライアント４０からの要求に応じて呼び出され、クライアント４０の要求に応じた処理を実行する一種のプログラムである。すなわち、ＣＧＩ／Servlet ３２は、クライアント４０から要求された地点及び縮尺の地図データを地図データベース３１から読み出し、要求された順番で各地図構成要素をクライアント４０に送る。
【００２７】
クライアント４０は、例えば専用ソフトウエアを読み込み、該ソフトウエアにより動作する汎用コンピュータである。クライアント４０は、ハードウエアとして、ＣＰＵ（central processing unit ）と、ＤＲＡＭ（dynamic random-access memory）等の主メモリ（主記憶装置）と、画像描画用のビデオメモリと、ハードディスク装置（ＨＤＤ）等の記憶装置（二次記憶装置）と、キーボード及びマウス等の入力装置と、モデム、ルータ及びＴＡ（terminal adapter）等の通信装置と、ＣＲＴ（cathode ray tube）及びＬＣＤ（liquid crystal display）等の表示装置とを有している。但し、クライアント４０は汎用コンピュータに限定されるものではなく、コンピュータ技術を使用した電子機器（通信端末）であってもよい。このような電子機器として、例えば、カーナビゲーション装置や携帯情報機器（ＰＤＡ：personal digital assistant）が考えられる。カーナビゲーション装置やＰＤＡの場合は、例えば携帯電話回線を使用してインターネットに接続する。
【００２８】
クライアント４０は３つのスレッド（thread）、すなわちユーザインターフェース４１、メインスレッド４２及び描画スレッド４３を含んで構成される。これらの３つのスレッドが協調して動作することにより、ユーザからの入力処理、地図データの取得処理及び地図描画処理を並行して処理し、ユーザによる入力がなされてから地図描画開始（又は、表示内容の変更）までの時間を最小限にしている。
【００２９】
ユーザインタフェース４１は制御部５１により構成され、メインスレッド４２は地図データ検索部５２、通信部５３及びキャッシュ管理部５４により構成され、描画スレッド４３は描画部５５及び描画キュー５６により構成されている。また、地図データ配信サーバ３０から取得した地図データを一時記憶するために、ＤＲＡＭ等のメモリ（主記憶装置）の一部又はハードディスク等の二次記憶装置の一部を使用してキャッシュ４４が構築される。本実施の形態では、キャッシュ４４は、表示装置に表示する範囲を中心とした９画面分の地図構成要素を格納できるだけの記憶容量を有し、これにより地図画像をスムーズにスクロールできるようになっている。
【００３０】
ユーザインターフェース４１の制御部５１は、キーボード又はマウス等の入力装置からの信号を解析し、その結果に応じた要求を出力する。例えば、ユーザが表示装置に表示された画面の所定の位置にカーソルを移動して所望の地点の緯度・経度を入力すると、制御部５１は、メインスレッド４２に、入力された緯度・経度の地図画像の表示要求を出力する。また、例えばユーザが画面上に表示された地図スクロールボタンを押すと、制御部５１はメインスレッド４２に画面のスクロール要求を出力する。ここでは、ユーザインタフェース４１から出力される要求をパラメータともいう。パラメータに含まれる項目には、例えば(i) 緯度・経度、(ii)縮尺、(iii) 地図構成要素の種別（道路データ、文字列データ、建物等の地物のポリゴンデータ、その他のポリゴンデータ、ランドマークなど）、(iv)地図構成要素種別の優先度（描画する順番）がある。制御部５１は、例えばユーザにより新たな地点の地図表示を指定されたとき、又は縮尺の変更が指定されたときに、これらのパラメータをメインスレッド４２に通知する。なお、地図構成要素の種別の優先度は、初期状態で、例えば優先度の高いものから、道路データ、建物等の地物（以下、建物等と記す）のポリゴンデータ、それ以外（公園、川及び海等）のポリゴンデータ、文字列データ、ランドマークデータの順に設定されているが、ユーザが優先度を任意に変更することができる。ユーザインタフェース４１は、メインスレッド４２へのパラメータの通知を終えたら、再びユーザからの入力を待つ。
【００３１】
メインスレッド４２の通信部５３はモデム、ルータ又はＴＡ等の通信機を制御して地図データ配信サーバ３０に接続し、地図データ検索部５２から送られてきた地図構成要素毎の地図データ要求を地図データ配信サーバ３０へ送信する。また、通信部５３は、地図データ配信サーバ３０から送られてくる地図構成要素毎の地図データを地図データ検索部５２に伝達する。
【００３２】
キャッシュ管理部５４は、キャッシュ４４に記憶する地図構成要素を管理する。例えば、キャッシュ４４に記憶された各地図構成要素毎に、縮尺、地図構成要素の種別、格納アドレス及びデータ容量を記憶し、キャッシュ４４内のデータの検索を容易にしている。また、キャッシュ管理部５４は、地図データ配信サーバ３０から送られてきた地図構成要素をキャッシュ４４に追加したり、キャッシュ４４に記憶されている地図構成要素を削除する。
【００３３】
地図データ検索部５２は、ユーザインタフェース４１からパラメータを受け取ると、優先度の高い地図構成要素から順番に、図４にフローチャートを示す処理を実行する。
まず、ステップＳ１１でキャッシュ管理部５４を調べて、対応する地図構成要素がキャッシュ４４内に格納されているか否かを確認する。その結果、格納されている場合（ＹＥＳの場合）は、ステップＳ１２からステップＳ１６に直接移行し、格納されていない場合（ＮＯの場合）はステップＳ１２からステップＳ１３に移行する。
【００３４】
ステップＳ１３では、通信部５３を介して地図データ配信サーバ３０に地図データ（地図構成要素）を要求する。そして、ステップＳ１４で地図データ配信サーバ３０から地図構成要素が送られてくると、ステップＳ１５に移行し、キャッシュ管理部５４を介してキャッシュ４４に地図構成要素を格納する。但し、キャッシュ４４の許容量を超えてしまう場合は、過去に追加されたいくつかの地図構成要素を削除して、新たな地図構成要素を追加するための空き領域を確保する。どの地図構成要素から削除するのかを決める方法としては種々考えられる。例えば、キャッシュ管理部５４で各地図構成要素毎に参照頻度を記録しておき、参照頻度が低い地図構成要素から削除して空き領域を確保することが考えられる。また、例えば各地図構成要素を使用した順番でリンクして管理部５４で管理し、現在表示装置に表示中の地図画像にリンクしていない地図構成要素を削除して空き領域を確保してもよい。更に、現在表示中の地図画像を右側にスクロールするときには、現在表示装置に表示中の地図画像よりも左側の地図画像の描画に使用される地図構成要素を削除して空き領域を確保するようにしてもよい。
【００３５】
このようにしてキャッシュ４４に新たな地図構成要素を格納した後、ステップＳ１６に移行し、描画キュー５６の末尾に当該地図構成要素の描画要求を追加する。
描画キュー５６は、地図構成要素毎に描画要求を格納する。描画キュー５６には、地図構成要素の種別に応じて、以下のコマンドとデータアドレスが格納される。
【００３６】
(i) 道路の描画（１画面分）を指示するコマンドと、その道路データが格納されているキャッシュ４４内のアドレス、
(ii)文字列の描画（１画面分）を指示するコマンドと、その文字列データが格納されているキャッシュ４４内のアドレス、
(iii) 建物等のポリゴンの描画（１画面分）を指示するコマンドと、そのポリゴンデータが格納されているキャッシュ４４内のアドレス、
(iv)建物以外のポリゴンの描画（１画面分）を指示するコマンドと、そのポリゴンデータが格納されているキャッシュ４４内のアドレス、
(v) ランドマークの描画（１画面分）を指示するコマンドと、そのランドマークデータが格納されているキャッシュ４４内のアドレス。
【００３７】
但し、描画キュー５６に割り当てられたメモリの容量が大きければ、コマンドとともに各データ（地図構成要素）も描画キュー５６に格納することが可能である。この実施の形態では、コマンドとアドレスのみが描画キュー５６に格納されるものとする。
描画部５５は描画キュー５６に格納された描画要求を順番に実行する。例えば、描画キュー５６に、道路の描画要求、建物等のポリゴンの描画要求、それ以外のポリゴンの描画要求、文字列の描画要求、ランドマークの描画要求がこの順番で格納されるとすると、描画部５５は、最初に道路データをキャッシュ４４から読み出し、この道路データをビデオメモリに展開して道路を描画する。その後、建物等のポリゴンデータをキャッシュ４４から読み出し、このポリゴンデータをビデオメモリに展開して、地図画像に建物等を描画する。次に、その他のポリゴンデータをキャッシュ４４から読み出し、このポリゴンデータをビデオメモリに展開して、地図画像に公園、川及び海等を描画する。次いで、キャッシュ４４から文字列データを読み出し、ビデオメモリの地図画像に文字列を追加する。その後、ランドマークデータをキャッシュ４４から読み出し、ビデオメモリの地図画像にランドマークを追加する。
【００３８】
処理が終わった描画要求は描画キュー５６から廃棄される。描画部５５は、描画キュー５６が空になるまで処理を実行する。描画キュー５６には、メインスレッド４２によって優先度の高い順に描画要求が並べられているので、描画スレッド４３は優先度の高い順に地図構成要素を描画することになる。
図５〜図８は各地図構成要素（道路データ、ポリゴンデータ、文字列データ及びランドマークデータ）のデータ構成を示す図である。地図構成要素は、適当な経度幅及び緯度幅で区切られた１図葉分（ユニット）毎に分割されている。各ユニットの絶対経緯度座標（Ｘ，Ｙ）上の範囲は、対角頂点Ｅ，Ｆの絶対経緯度座標（ＸT1，ＹT1），（ＸT2，ＹT2）で管理されている。道路データは、図５に示すように、複数のノード（点）の集合として表現される。そして、道路データには、属性データとして、種別（線）、色、線種（実線、破線及び線幅等）及びノードの数を示すデータが含まれ、座標データとして各ノード（Ｇ１，Ｇ２，Ｇ３，…）の相対座標を含んでいる。
【００３９】
建物等及びその他のポリゴンデータも、図６に示すように、複数のノードの集合として表現される。但し、ポリゴンデータでは終点（この例ではＧ４）が始点（Ｇ１）とつながって閉じた図形となる。ポリゴンデータには、属性データとして、種別（ポリゴン）、線（輪郭線）の色、線種（実線、破線及び線幅等）、ノードの数及び塗りつぶし色（ポリゴン内側の色）を示すデータが含まれ、座標データとして各ノードの相対座標を含んでいる。
【００４０】
文字列データには、図７に示すように、属性データとして種別（文字列）、色（文字色）及び文字数を示すデータが含まれ、座標データとして文字列の始点（Ｇ１）の位置を示す位置データと、文字列の傾きを示す角度データが含まれている。また、座標データの後に、文字数分の文字コードが含まれる。
ランドマークデータには、図８に示すように、属性データとして種別（ランドマーク）が含まれ、座標データとしてランドマークの表示位置の位置（Ｇ１）の座標が含まれ、コードとして固有のランドマークコードが含まれる。なお、ランドマークの画像（ビットマップ）は、サーバ３０から送られるようにしてもよいし、クライアント４０内で予め用意されていてもよい。
【００４１】
描画部５５は、これらの地図構成要素毎のデータを取得して、地図を描画する。ビデオメモリの容量が大きい場合は、９画面分の画像をビデオメモリに展開しておき、そのうちの１画面分の画像を切り出して表示装置に表示することが好ましい。この場合、画面をスムーズにスクロールすることができる。ＰＤＡのようにメモリ容量が小さいときは、１画面分の画像のみをビデオメモリに展開し、スクロールするときには新たに１画面分の画像をビデオメモリに展開しなおす。
【００４２】
本実施の形態では、上述したように、ユーザインタフェース４１、メインスレッド４２及び描画スレッド４３が協調し動作して、ユーザからの入力処理、地図データの取得処理及び地図描画処理を並行して処理する。また、道路データ、建物等のポリゴンデータ、その他のポリゴンデータ、文字列データ及びランドマークデータ等の各地図構成要素を指定された優先度の順番で描画しながら表示装置に表示する。これにより、ユーザが操作を行ってから地図が表示されるまでの時間が短縮され、操作性が向上する。
【００４３】
（第３の実施の形態）
以下、本発明の第３の実施の形態について説明する。本実施の形態が第２の実施の形態と異なる点は、地図データ検索部の動作が異なることにあり、その他の基本的な構成は第２の実施の形態と同様であるので、本実施の形態においても図３を参照し、重複する部分の説明は省略する。
【００４４】
第２の実施の形態では、描画キュー５６に格納されている処理要求が空になるまで描画部５５は地図構成要素をキャッシュ４４から読み込んで地図描画処理を実行する。しかし、新たな地点が指定されたときや縮尺を替えるときは、描画処理を中断して新たなデータで描画しなおすことが好ましい。本実施の形態では、このような動作を実現するために、地図データ検索部５２が図９に示すフローチャートに従って動作する。
【００４５】
まず、ステップＳ２１において、ユーザインタフェース４１から新たな地点の地図表示や縮尺の変更を指示する要求を受け取ると、ステップＳ２２に移行して、地図データ検索部５２は描画キュー５６に格納されている未処理の描画要求を破棄する。描画部５５は、描画キュー５６が空になったので、次に描画キュー５６に処理要求が追加されるまで、描画処理を中断する。
【００４６】
その後、ステップＳ２３に移行し、地図データ検索部５２は各地図構成要素について、優先度の高いものから順に、図４に示す処理を実行する。
本実施の形態では、新たな地点の地図が要求されたとき、及び縮尺が変更されたときに、描画スレッド４３の描画キュー５６に残っている未処理の描画要求を破棄した後、新たに描画要求を描画キュー５６に追加する。このため、全ての地図構成要素が描画される前に、ユーザにより縮尺の変更又は新たな地点の地図が要求されると、現在実行中の地図描画処理が中断され、新たな地点の地図描画が開始される。これにより、本実施の形態では、第２の実施の形態に比べて縮尺の変更や新たな地点の地図描画要求時の応答性がより一層向上する。
【００４７】
なお、上記実施の形態においては、いずれも地図データ（地図構成要素）をキャッシュ（一時記憶メモリ）に一時的に記憶することとした。この場合、キャッシュ内のデータはいずれ廃棄されてしまうため、再度必要とする場合は地図データ配信サーバから再度データを送信する必要がある。これを回避するために、地図データをキャッシュだけでなく、ハードディスク装置等の不揮発性記憶装置に格納してもよい。
【００４８】
【発明の効果】
以上説明したように、本発明によれば、地図データ配信サーバからクライアントに、地図データを例えば道路の描画に使用する道路データ、公園や河川等の描画に使用するポリゴンデータ及び文字列の表示に使用する文字列データなどの地図構成要素毎に送信し、クライアントでは受信したデータを一時記憶メモリに保存するとともに、受信したデータ又は一時記憶メモリ内のデータを使用して地図画像の描画を開始するので、通信時間を短縮できるとともに、データの通信を開始してから比較的短時間で地図画像の描画が完了する。
【図面の簡単な説明】
【図１】図１は、本発明の第１の実施の形態の地図データ配信方法を実現するシステムの構成を示す模式図である。
【図２】図２は、本発明の第１の実施の形態の地図データ配信方法を示す模式図である。
【図３】図３は、本発明の第２の実施の形態の地図データ配信方法を実現するシステムの構成を示す模式図である。
【図４】図４は、第２の実施の形態における地図データ検索部の動作を示すフローチャートである。
【図５】図５は、道路データの構成を示す図である。
【図６】図６は、ポリゴンデータの構成を示す図である。
【図７】図７は、文字列データの構成を示す図である。
【図８】図８は、ランドマークデータの構成を示す図である。
【図９】図９は、第３の実施の形態における地図データ検索部の動作を示すフローチャートである。
【符号の説明】
１０，３０…地図データ配信サーバ、
１１…データベース、
１２…ＣＧＩ、
２０，４０…クライアント、
２１…ＷＷＷブラウザ、
２２…地図描画ソフト、
２３，４４…キャッシュ、
３１…地図データベース、
３２…ＣＧＩ／Servlet 、
３３…ＷＷＷサーバ、
４１…ユーザインタフェース、
４２…メインスレッド、
４３…描画スレッド、
５１…制御部、
５２…地図データ検索部、
５３…通信部、
５４…キャッシュ管理部、
５５…描画部、
５６…描画キュー。
【図１】
0004097881.tif 000002
【図２】
0004097881.tif 000003
【図３】
0004097881.tif 000004
【図４】
0004097881.tif 000005
【図５】
0004097881.tif 000006
【図６】
0004097881.tif 000007
【図７】
0004097881.tif 000008
【図８】
0004097881.tif 000009
【図９】
0004097881.tif 000010