(57)【要約】【課題】データ伝送量の削減および地図要素ごとの柔軟な詳細度変更が可能な地図情報配信システムを提供する。【解決手段】地図情報配信サーバでは地図部品情報を階層クラスタ化し、各クラスタに対してクラスタ内の要素を代表するクラスタ代表点を定義する。クライアントが地図部品を取得する場合、要求された部品そのもの、または、その部品が含まれるクラスタ（階層的に複数ある）の代表点がキャッシュメモリに内に存在するか判断する。キャッシュメモリ内のクラスタ代表点が所定の基準を満たす場合は、このクラスタ代表点を地図画像生成に用いる。一方、キャッシュメモリ内に対応する部品情報が格納されていないか、格納されていてもそれが基準を満たさない場合には、サーバから取得する。ここで、上記の基準は地図部品ごとに設定可能とし、詳細度が要求されるものについては基準を厳しく、データ伝送量の削減が優先されるものについては基準を緩くする。【選択図】図５
2011191430.tif 000002
【特許請求の範囲】
【請求項１】
クライアント装置が地図情報を地図情報配信サーバから取得して利用する地図情報配信システムであって、
前記地図情報配信サーバは、
地図情報を構成する部品情報を記憶する部品情報記憶手段と、
部品情報に階層クラスタ化処理を施して得られる階層クラスタの構造と、各クラスタについて当該クラスタに属する部品情報を代表する部品情報であるクラスタ代表部品情報とを含む管理情報を記憶する管理情報記憶手段と、
部品情報および管理情報を前記クライアント装置へ配信する地図情報配信手段と、
を有し、
前記クライアント装置は、
管理情報を記憶する記憶手段と、
部品情報を格納するキャッシュメモリと、
指定された部品情報に対応する部品情報であって地図画像の生成に用いる部品情報をキャッシュメモリまたは地図情報配信サーバから取得する地図情報取得手段と、
地図画像に含まれる部品情報を特定し、当該部品情報に対応する部品情報を地図情報取得手段によって取得し、取得された部品情報を用いて地図画像を生成する制御手段と、
を有し、
管理情報には、地図情報取得手段が取得する部品情報と指定された部品情報とが満たすべき基準がさらに含まれており、
地図情報取得手段は、
管理情報を参照して指定された部品情報を含む複数のクラスタを取得し、
前記複数のクラスタに対応するクラスタ代表部品情報がキャッシュメモリに格納されているか否か判断し、
キャッシュメモリに格納されているクラスタ代表部品情報が前記基準を満たす場合には、当該クラスタ代表部品情報を指定された部品情報に対応する部品情報として取得し、
前記複数のクラスタに対応するクラスタ代表部品情報がキャッシュメモリに格納されていない場合、または、キャッシュメモリに格納されているクラスタ代表部品情報が前記基準を満たさない場合には、指定された部品情報に対応する部品情報を地図情報配信サーバから取得する
地図情報配信システム。
【請求項２】
前記基準は、クライアント装置または地図情報配信サーバが変更可能である
請求項１に記載の地図情報配信システム。
【請求項３】
地図情報取得手段は、指定された部品情報がキャッシュメモリに格納されている場合には、当該指定された部品情報を、指定された部品情報に対応する部品情報として取得する
請求項１または２に記載の地図情報配信システム。
【請求項４】
地図情報取得手段は、指定された部品情報がキャッシュメモリに格納されておらず、指定された部品情報を含むクラスタに対応するクラスタ代表部品情報がキャッシュメモリに複数格納されている場合には、キャッシュメモリに格納されているこれらのクラスタ代表部品情報のうち最も下位のクラスタに対応するクラスタ代表部品情報を、指定された部品情報に対応する部品情報として取得する
請求項３に記載の地図情報配信システム。
【請求項５】
地図情報配信サーバの地図情報配信手段は、クライアント装置の地図情報取得手段から部品情報の取得要求を受けた場合には、当該部品情報または当該部品情報が属するクラスタのクラスタ代表部品情報のうちの前記基準を満たすいずれかのクラスタ代表部品情報を
前記クライアント装置に配信する
請求項１〜４のいずれかに記載の地図情報配信システム。
【請求項６】
地図情報配信サーバの地図情報配信手段は、クライアント装置の地図情報取得手段から部品情報の取得要求を受けた場合には、当該部品情報または当該部品情報が属するクラスタのクラスタ代表部品情報のうち、前記基準を満たし、かつ、最も上位のクラスタに対応するクラスタ代表部品情報を前記クライアント装置に配信する
請求項５に記載の地図情報配信システム。
【請求項７】
前記部品情報は、画像、テクスチャ、線、面、ポリゴン、形状、または地物の少なくともいずれかである
請求項１〜６のいずれかに記載の地図情報配信システム。
【請求項８】
管理情報には、部品情報およびクラスタの出現頻度がさらに含まれており、
前記クライアント装置は、部品情報およびクラスタの出現頻度を考慮した、キャッシュ置換戦略を利用する
請求項１〜７のいずれかに記載の地図情報配信システム。
【請求項９】
管理情報には、部品情報およびクラスタ代表部品情報のサイズがさらに含まれており、
前記クライアント装置は、部品情報およびクラスタ代表部品情報のサイズを考慮したキャッシュ置換戦略を利用する
請求項１〜８のいずれかに記載の地図情報配信システム。
【請求項１０】
前記キャッシュメモリはキャッシュメモリ空間を複数有しており、
管理情報には、部品情報およびクラスタごとに、いずれのキャッシュメモリ空間に部品情報およびクラスタ代表部品情報を格納するかを示すキャッシュメモリ空間対応情報が格納されており、
前記クライアント装置は、管理情報に示されるキャッシュメモリ空間に部品情報およびクラスタ代表部品情報を格納する
請求項１〜９のいずれかに記載の地図情報配信システム。
【請求項１１】
キャッシュメモリ空間対応情報は、部品情報およびクラスタの出現頻度に応じて設定される
請求項１０に記載の地図情報配信システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、地図情報を配信する地図情報配信システムに関する。
【背景技術】
【０００２】
地図情報を利用するサービスでは、地図情報の鮮度と詳細度が高いことが求められる。このような地図情報サービスとして、車両に搭載されたカーナビゲーション装置にセンターから最新の地図情報を配信するサービスが考えられる。無線ネットワークの普及および高速化に伴って、センター型の地図情報配信サービスの活用が見込まれる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００４−３５０００６号公報
【特許文献２】特開２００８−２８５８２号公報
【非特許文献】
【０００４】
【非特許文献１】Yushi Jing, Shumeet Baluja, "Pagerank for product image search", WWW 2008: 307-316.
【非特許文献２】Wei-Ying Ma, B. S. Manjunath, "Texture Features and Learning Similarity", CVPR 1996: 425-430
【非特許文献３】Johan W. H. Tangelder, Remco C. Veltkamp, "A survey of content based 3D shape retrieval methods", Multimedia Tools Appl. (MTA) 39(3): 441-471 (2008)
【非特許文献４】Rui Xu, Donald Wunsch II, “Survey of Clustering Algorithms”, IEEE TRANSACTIONS ON NUETRAL NETWORKS, VOL. 16, No. 3, May 2005.
【非特許文献５】Stefan Podlipnig, Laszlo Bozormenyi, “A Survey of Web Cache Replacement Strategies”, ACM Computing Surveys, Vol. 35, No. 4, December 2003, pp. 374-398.
【発明の概要】
【発明が解決しようとする課題】
【０００５】
センター型の地図情報配信サービスでは扱う地図情報の詳細度が高いため、地図情報配信サーバ（センター）の管理する地図情報の全体をクライアントが保持することはできない。また、仮にクライアントが地図情報全体を保持したとしても、鮮度を維持するためには大部分の地図情報は使われないまま新しい地図情報に置き換えられることとなる。これではサーバやネットワークの無駄が大きいため、やはりクライアントが全ての最新の地図情報を持つことにはデメリットがある。
【０００６】
したがって、クライアントが全ての地図情報を保持せずに、必要に応じて地図情報配信サーバからリアルタイムに取得することが望まれる。高速な地図表示を達成するため、および、限られたネットワーク資源を有効活用するためには、クライアントがサーバから取得するデータ量を減らすことが望まれる。なお、地図情報配信サービスにおいてクライアント・サーバ間のデータ伝送量を減らすことは、無線ネットワークを利用する場合だけでなく有線ネットワークを利用する場合にも有効である。
【０００７】
データ伝送量削減のためには、類似する地図要素（地物等のポリゴンやテクスチャ等）を同一のデータとして扱うことで使用するデータ量を減らすことが考えられる。より多くの地図要素を同一データとして扱うことでデータ量がより削減されるが、反対に正確さ（
詳細度）が失われることになる。すなわち、ネットワークの使用帯域の節約と地図要素の詳細度はトレードオフの関係にある。ここで、データ伝送量の削減が詳細度よりも重要な場合もあるし、詳細度よりもデータ伝送量の削減が重要な場合もある。また、特定種類の地図要素に関しては詳細さが望まれるが、その他の種類の地図要素に関してはデータ伝送量の削減が望まれる場合もある。したがって、条件に応じて柔軟に地図要素の詳細度を変更できることが望まれる。
【０００８】
本発明では、データ伝送量を削減するとともに、地図要素ごとに柔軟に詳細度を変更することができる地図情報配信システムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記課題を解決するために、本発明の地図情報配信システムでは、地図情報配信サーバが、地図情報を構成する部品情報を記憶するとともに、この部品情報に階層クラスタ化処理を施して得られる階層クラスタの構造と、階層クラスタのそれぞれのクラスタについて、当該クラスタに属する部品情報を代表する代表点（クラスタ代表部品情報）を記憶する。ここでは、階層クラスタの構造と各クラスタの代表部品情報を管理情報と呼ぶ。また、部品情報は、たとえば、画像、テクスチャ、線、面、ポリゴン、形状、地物のうちの少なくともいずれかである。また、クラスタ代表部品情報は、クラスタに属する部品情報の重心であってもよく、重心に最も近い要素（部品情報）であっても良い。
【００１０】
クライアント装置は、部品情報を格納するキャッシュメモリを有しており、このキャッシュメモリを活用してクライアント・サーバ間のデータ伝送量を削減する。クライアント装置は、管理情報の少なくとも一部を記憶する記憶手段と、生成対象の地図画像に含まれる部品情報を特定し、特定された部品情報のそれぞれに対応する部品情報を取得して、取得された部品情報を用いて地図画像を生成する制御手段を備える。ここで、地図情報取得手段は、指定された部品情報に対応して地図画像の生成に用いる部品情報を取得するものである。
【００１１】
このような地図情報配信システムにおいて、地図情報取得手段は、指定された部品情報そのものまたは指定された部品情報が属する複数のクラスタ（各部品情報は複数階層のクラスタのそれぞれに属する）のクラスタ代表部品情報がキャッシュメモリに格納されているか判断する。指定された部品情報または対応するクラスタ代表部品情報がキャッシュメモリに格納されている場合は、その部品情報またはクラスタ代表部品情報を、指定された部品情報に対応する部品情報として取得する。なお、管理情報には、指定された部品情報と、地図情報取得手段が取得する部品情報とが満たすべき基準が格納されている。そして、キャッシュメモリに格納されているクラスタ代表部品情報がこの基準を満たさない場合は、地図情報配信サーバから指定された部品情報に対応する部品情報を取得する。もちろん、指定された部品情報または対応するクラスタ代表部品情報がキャッシュメモリに存在しない場合も、地図情報配信サーバから指定された部品情報に対応する部品情報を取得する。
【００１２】
ここで、上記の基準として、指定された部品情報とクラスタ代表部品情報の類似度が所定値以内であるという基準や、クラスタ代表部品情報のクラスタの階層が所定数の階層以内であるという基準などを採用できる。
【００１３】
このように、部品情報を階層クラスタ化し、クライアント装置では指定された部品情報自体がキャッシュメモリ内に格納されていない場合であっても、上位のクラスタのクラスタ代表部品情報がキャッシュメモリ内に格納されている場合には、これを用いて地図情報を生成できる。したがって、クライアント・サーバ間のデータ伝送量を削減することができる。なお、クラスタ処理を行っているので、クラスタ代表部品情報はクラスタの階層が
下位であるほど指定された部品情報との類似度が大きく、上位のクラスタになるほどクラスタ代表部品情報は詳細度が失われ（平均化されるため）指定された部品情報の部品情報との類似度が小さくなる。したがって、指定された部品情報の代わりとして利用するクラスタ代表部品情報として、より上位のクラスタ代表部品情報を許容すれば地図部品の詳細度が失われる代わりに、１つのクラスタ代表部品情報が多くの部品情報を代替できるのでクライアント・サーバ間のデータ伝送量をより削減できる。一方、指定された部品情報代わりとして利用するクラスタ代表部品情報としてより下位のクラスタ代表部品情報のみを許容するようにすれば、キャッシュヒットの確率が下がるのでクライアント・サーバ間のデータ伝送量は増える代わりに、地図部品の詳細度を上げることができる。このように生成する地図の詳細度とデータ伝送量の間にはトレードオフの関係があるが、本発明に係る地図情報配信システムによれば、上記の基準を変更するだけで柔軟に詳細度と伝送量のバランスを決定することができる。
【００１４】
上記の基準はクライアント装置または地図情報配信サーバが変更可能であることが好ましい。たとえば、クライアント装置では地図画像を利用するアプリケーションからの要求に応じて基準を変更することが考えられる。また、地図情報配信サーバはネットワークの混雑度合いやサーバの負荷などに応じて基準を変更することが考えられる。また、上記の基準は、地図部品の種類（たとえば、画像、テクスチャ、ポリゴン等）ごとに異なる基準として良く、または同じ種類の地図部品であっても部品情報ごとに異なる基準としても良い。
【００１５】
地図情報取得手段は、指定された部品情報自体がキャッシュメモリに格納されていれば、この部品情報をキャッシュメモリから取得すればよい。このようにすれば、地図画像の詳細度を犠牲にすることなくクライアント・サーバ間のデータ伝送量を減らせる。ただし、このような場合であっても、地図情報取得手段が、上位のクラスタのクラスタ代表部品情報をキャッシュメモリや地図情報配信サーバから取得しても構わない。
【００１６】
また、指定された部品情報がキャッシュメモリに格納されておらず、上位クラスタのクラスタ代表部品情報がキャッシュメモリに複数格納されている場合に、地図情報取得手段はこれら複数のクラスタ代表部品情報のうち最も下位のクラスタに対応するクラスタ代表部品情報を取得することが好ましい。このようにすればキャッシュを有効に利用しつつ地図の詳細度を保つことができる。
【００１７】
地図情報配信サーバの地図情報配信手段は、クライアント装置から部品情報の取得要求を受け付けた場合には、要求された部品情報またはこの部品情報が属するクラスタのクラスタ代表部品情報のうち上記基準を満たすいずれかのクラスタ代表部品情報をクライアント装置に配信することが好ましい。このようにすれば、上記基準を満たす範囲の詳細度を保ってクライアント装置側で地図画像の生成が行える。ここで、上記基準を満たすクラスタ代表部品情報あるいは要求された部品情報のうち、いずれの部品情報をクライアント装置に配するかはいくつかの方針が考えられる。たとえば、基準を満たす部品情報のうち最も下位のものをクライアント装置に送信するようにすれば地図画像の詳細度を上げることができる。一方、基準を満たす部品情報のうち最も上位のものをクライアント装置に送信するようにすれば、クライアント装置でキャッシュヒット確率が上がりクライアント・サーバ間のデータ伝送量を減らすことができる。
【００１８】
クライアント装置におけるキャッシュメモリの置換戦略は、部品情報やクラスタの出現頻度を考慮したアルゴリズムや、部品情報やクラスタ代表部品情報のサイズを考慮したアルゴリズム、これら両方を考慮したアルゴリズムを採用することができる。より良いキャッシュ置換戦略を用いることでキャッシュヒット率を高めることが可能であり、クライアント・サーバ間のデータ伝送量を減らすことができる。なお、上記の出現頻度やサイズに
関する情報は、管理情報に含めて地図情報配信サーバからクライアント装置へ配布すればよい。
【００１９】
本発明は、上記処理の少なくとも一部を含む地図情報配信方法、または、これらの方法を実現するためのプログラムとして捉えることもできる。上記手段および処理の各々は可能な限り互いに組み合わせて本発明を構成することができる。
【発明の効果】
【００２０】
本発明によれば、地図情報配信システムにおいてデータ伝送量を削減するとともに、地図要素ごとに柔軟に詳細度を変更することができる。
【図面の簡単な説明】
【００２１】
【図１】第１の実施形態に係る地図情報配信システムの構成を示す図である。
【図２】第１の実施形態に係る地図情報配信システムにおける地図情報の配信を説明する図である。
【図３】第１の実施形態において地図情報配信サーバで利用する地図情報の作成方法を説明する図である。
【図４】階層化クラスタ処理を説明する図であり、（Ａ）はデータの散布図、（Ｂ）は（Ａ）のデータのデンドログラム（樹形図）、（Ｃ）は（Ａ）のクラスタを表すデータの構造を示す図である。
【図５】第１および第２の実施形態におけるクライアントでの地図部品情報取得処理の流れを示すフローチャートである。
【図６】第１の実施形態におけるクライアントでの地図情報部品情報取得処理の擬似プログラムコードである。
【図７】クラスタリストを説明する図である。
【図８】第２の実施形態に係る地図情報配信システムの構成を示す図である。
【図９】第２の実施形態において地図情報配信サーバで利用する地図情報の作成方法を説明する図である。
【図１０】第２の実施形態におけるクライアントでの地図情報部品情報取得処理の擬似プログラムコードである。
【発明を実施するための形態】
【００２２】
本実施形態に係る地図情報配信システムでは、地図情報配信サーバが地図を構成する部品を類似度により階層的にクラスタリングし、クライアント側でクラスタ処理によって得られる類似度を利用してキャッシュを有効に活用することで、サーバ・クライアント間のデータ伝送量を削減する。本実施形態に係る地図情報配信システムでは、類似する地図部品を利用することでキャッシュを有効に活用する。また、地図部品に応じて必要な詳細度を柔軟に実現することができるものである。
【００２３】
（第１の実施形態）
〈構成〉
図１に本実施形態に係る地図情報配信システムの構成を示す。本実施形態に係る地図情報配信システムは、大略、無線ネットワークを介して双方向に通信可能な地図情報配信サーバ１００とクライアント２００から構成される。クライアント２００は、車両に搭載されたナビゲーション装置や持ち運び可能な携帯情報端末である。地図情報配信サーバ１００は１台または複数台のコンピュータから構成される。
【００２４】
なお、代替の実施形態として、クライアント２００が据え置き型のコンピュータであったり、クライアント２００が有線ネットワークを介して地図情報配信サーバ１００と通信したりする構成を採用してもよい。このような構成であっても、本実施形態と同様の効果
を得ることができる。
【００２５】
地図情報配信サーバ１００は、無線通信部１０１、地図情報配信部１０２、地図情報記憶部１０３を備える。無線通信部１０１は無線ネットワークを介してクライアント２００と通信するためのものであり、その通信方式等は任意のものを採用してよい。地図情報配信部１０２は、クライアント２００からの要求に応じて、地図情報記憶部１０３に格納された各種の地図情報を配信する。地図情報記憶部１０３には、主に、構成情報１０４、部品情報１０５、キャッシュ管理情報１０６が記憶される。部品情報１０５は、地図を構成する部品を種類ごとにデータ化したものである。部品情報１０５の種類には、たとえば、画像、テクスチャ、線、面、ポリゴン、形状（線、面、ポリゴンの組み合わせ）、地物（画像、テクスチャ、形状の組み合わせ）などがある。この部品情報１０５がクライアント側でキャッシュするデータの最小単位となる。構成情報１０４は、地図構成部品間の関係や地図構成部品の属性、地図構成部品と領域（位置）との対応などが含まれる。キャッシュ管理情報１０６は、地図構成部品に対して階層化クラスタ処理を施して得られるクラスタ構造を含む。また、キャッシュ管理情報１０６は、各クラスタについて、クラスタを代表する部品要素を含む。後述するように本実施形態においてはクライアント２００が地図部品を利用するときに上位クラスタのクラスタ代表点で代替を可能とする。キャッシュ管理情報１０６には、部品要素のそれぞれついて、当該部品要素を代替可能なクラスタ代表点の基準が格納される。これはアプリケーションの要件に応じて事前に与えられる。
【００２６】
クライアント２００は、無線通信部２０１、地図情報取得部２０２、地図情報キャッシュ２０３、制御部２０４、入力部２０５、表示部２０６を備える。入力部２０５から入力された領域における地図画像を制御部２０４が生成し、それを表示部２０６に表示する。制御部２０４は、地図画像を生成するために描画する領域に含まれる地図要素を地図情報取得部２０２から取得する。地図情報取得部２０２は、描画する領域内に含まれる地図がどのような地図構成部品から構成するかを判断し、地図情報キャッシュ２０３に格納されている地図部品データを利用可能である場合にはそれを利用し、キャッシュされていない場合には無線通信部２０１を介して地図情報配信サーバ１００から地図部品データを取得する。地図情報キャッシュ２０３は、あらかじめ決められたサイズの情報を保持できる記憶領域（ＲＡＭなどの揮発性メモリ、フラッシュメモリや磁気ディスクなどの不揮発性メモリなど）であり、特定のキャッシュ置換戦略に従って管理される。
【００２７】
図２に、地図情報配信サーバ１００とクライアント２００の間のデータのやりとりを示す。構成情報１０４は、少なくともクライアント２００が描画しようとしている領域についての情報が地図情報配信サーバ１００からクライアント２００に転送される。キャッシュ管理情報１０６は、あらかじめ全てのデータがクライアント２００に転送される。キャッシュ管理情報１０６は他の情報と比較してそれほどデータ容量が大きいものではないため、全てのデータをクライアント２００に転送しても問題は生じないと言える。キャッシュ管理情報１０６は地図が更新されるたびに変更されるので、地図更新に応じて全部あるいは更新部分のみをクライアント２００が地図情報配信サーバ１００から取得する。もちろん、地図描画領域に応じて必要なキャッシュ管理情報１０６、すなわち地図描画領域に存在する地図部品が属するクラスタに関する情報だけをクライアント２００に転送するようにしても良い。部品情報１０５は容量が大きなデータであるため、クライアント２００が実際に地図描画に使用するときにサーバから取得し、かつ、キャッシュを活用してクライアント・サーバ間のデータ伝送量を削減する。
【００２８】
〈サーバ側地図データ生成処理〉
次に、図３を参照して、入力となる地図情報から、構成情報１０４、部品情報１０５、キャッシュ管理情報１０６を生成する処理について説明する。このデータ生成処理は地図情報配信サーバ１００自体が行っても良いし、データ生成処理は別の装置が行って処理結
果のデータを地図情報配信サーバ１００が利用しても構わない。
【００２９】
入力地図情報３０１には、３次元地図情報３０２と２次元地図情報３０３がある。入力地図情報は、基本地図データ、道路ネットワークデータ、地物ポリゴンなどを持つ従来の地図情報を想定する。地図部品分離処理３０４は、入力地図情報３０１を構成情報１０４と部品情報１０５に分離する。部品情報１０５は、地図情報中に現れる画像、テクスチャ、線、面、ポリゴン、形状（線、面、ポリゴンの組み合わせ）、地物（画像、テクスチャ、形状の組み合わせ）などである。構成情報１０４は、地図構成部品間の関係や地図構成部品の属性、地物の位置などを表す。ここで作成される構成情報１０４と部品情報１０５は相互に関連付けられる。
【００３０】
なお、地図構成部品分離処理は、入力地図情報があらかじめ意味づけや構造化がなされていて、部品情報を簡単に取り出せる場合には不要である。一方、位置情報つきのカメラ画像やレーザスキャナ画像などのような意味づけや構造化が不十分な地図情報が入力の場合には、この処理が必要となる。また、地図構成部品分離処理は、コンピュータが自動的に行ってもよいし、人間が手動で行っても良い。
【００３１】
階層クラスタ化処理３０５では、部品情報に対して、その種類ごとに階層クラスタ情報１０６を作成する。階層クラスタ化処理は、類似度の計算と類似度に基づくクラスタリングとからなる。
【００３２】
類似度の計算は部品情報の種類に応じて異なるアルゴリズムを用いる。画像やテクスチャには、画像に対するランキング法（非特許文献１）、Gabor waveletによるテクスチャ
分析法（非特許文献１，２）などを用いる。ただし、画像やテクスチャの類似を求めるその他のアルゴリズムを採用しても構わない。線、面、ポリゴン、形状には、コンテンツに基づく３次元形状検索手法（非特許文献３）などを用いる。地物には、それを構成する部品間の類似度を組み合わせる評価関数を用いる。
【００３３】
クラスタリングには、階層的なクラスタリング・アルゴリズム（非特許文献４）を用いる。ただし、非階層的なクラスタリング・アルゴリズムを用いても良い。この場合は、単に１階層しか持たないクラスタとして後の処理を進めればよい。階層的なクラスタリング処理により、地図の構成部品の集合が木構造として構造化される。
【００３４】
クラスタ代表点抽出処理３０７では、クラスタリングの結果を用いて、クラスタの重心または重心に最も近い要素などを代表要素として求め、結果の集合をクラスタ代表点情報３０８として出力する。この結果、ある構成部品に注目した場合、木構造の葉ノードから枝と辿って根ノードに近づくに従って、注目構成部品と各ノード（クラスタ）の代表要素との類似度が小さくなり、同時に、クラスタに含まれる要素の数が大きくなるような性質を持つデータ構造ができる。
【００３５】
図４Ａ〜図４Ｃを参照して、階層クラスタ化処理３０５およびクラスタ代表点抽出処理３０７をより具体的に説明する。図４Ａには、ある種類の部品データの分布とクラスタリングの結果を示している。図４Ａには、Ａ〜Ｇの７つの部品データが存在する。ここで、部品間の距離は類似度に相当し距離が近いほど類似していることを表している。類似度の高いデータ同士をまとめることでクラスタができあがる。クラスタＣ１はデータＡとデータＢを含み、クラスタＣ２はクラスタＣ１とデータＣを含む。クラスタＣ３はデータＤとデータＥを含み、クラスタＣ４はデータＦとデータＧを含み、クラスタＣ５はクラスタＣ３とクラスタＣ４を含む。このようにして得られる階層化クラスタは、図４Ｂに示すデンドログラム（樹形図）のように木構造として表せる。なお、ここでは二分木構造となるようにクラスタリング処理を行っているが、各クラスタが３つ以上の要素を持つような構造
としてもよく、クラスタに含まれる要素数が一定でなくても良い。
【００３６】
クラスタ代表点は、各クラスタについて定められる。たとえば、クラスタＣ１については、データＡまたはデータＢのいずれか一方や、データＡとデータＢの平均（クラスタＣ１の重心）として求めることができる。また、クラスタ代表点を各クラスタについて１つに限る必要はなく、たとえば、クラスタＣ１の代表点をデータＡとデータＢの両方としても構わない。その他のより上位階層のクラスタについても同様に代表点を定める。たとえば、クラスタＣ２に関しては、その要素であるデータＡ，Ｂ，Ｃの重心や、重心に最も近い要素などを代表点として採用する。
【００３７】
図４Ｃは、このようにして作成された階層化クラスタおよび各クラスタの代表点を表すデータ構造である。それぞれのクラスタ（クラスタＩＤ）について、親ノードと子ノードおよびクラスタ代表点の部品ＩＤが格納される。データ表現は図４Ｃに限られるものではないが、階層化クラスタの構造および各クラスタの代表点の情報が、本実施形態におけるキャッシュ管理情報１０６に相当する。
【００３８】
〈クライアント側処理〉
次に、クライアント２００における地図画像描画処理について、図５のフローチャートおよび図６の擬似プログラムコードを参照して説明する。図６の擬似プログラムコードは図５のフローチャートにおける地図部品取得処理（フローチャートからステップＳ２とＳ２０を除いた処理）に対応する。この擬似プログラムコード自体は、関数の定義が不足しているなどの理由によりそれ自体実行可能なものではないが、省略されたプログラムの実装は当業者であれば容易に理解できるであろう。
【００３９】
前提として、クライアント２００は、少なくともキャッシュ管理情報１０６を地図情報配信サーバ１００から既に取得済みであるとする。未取得の場合は、地図画像描画処理に先立って最新のキャッシュ管理情報１０６を地図情報配信サーバ１００から取得する。また、構成情報１０４に関しても地図情報配信サーバ１００から取得済みであることが好ましいが、これは必ずしも前提とはしない。地図構成情報（map_metainfo）、キャッシュ管理情報（cache_metainfo）、キャッシュ空間（cache_space）はあらかじめ大域変数とし
て与えられている（コード１〜３行目）。
【００４０】
クライアント２００は、まず、表示すべき地図の領域（range）を取得する（Ｓ２）。
描画する地図の領域は、入力部２０５を介してユーザから位置や施設名等の入力を受け付けたり、ＧＰＳ装置などによる現在位置から定めることができる。ここで、描画する地図の領域に対応した構成情報（map_metainfo）をクライアント２００が持っていない場合は、地図情報配信サーバ１００から取得する。
【００４１】
ステップＳ４からステップＳ２０の前までの処理は、描画する地図に含まれる地図構成部品の部品データを取得する処理である。この処理は図６の擬似プログラムコードでget_map_elements_for(range)関数として表されている。擬似プログラムコード中map_elementsは結果として返す部品データを格納するための配列である。まず、構成情報(map_metainfo)を参照して、領域(range)内に含まれる構成部品のＩＤ（map_element_ids）を特定す
る（Ｓ４、コード１１行目）。このようにして特定した構成部品のそれぞれについて、以下の処理を実行する（Ｓ６のループ、コード１４〜３６行目のeach文）。
【００４２】
構成部品（element_id）のそれぞれについて、キャッシュ管理情報（cache_metainfo）を参照してクラスタリストを取得する（Ｓ８、コード１６行目）。ここで、クラスタリストとは、図７に示すように、階層化クラスタにおける葉ノードである構成部品から根ノードに向かって辿って得られるクラスタのリストである。図７においては、部品Ａに対応す
るクラスタリストとして、［Ｃ１，Ｃ２，Ｃ３，Ｃ４］が得られる。ここで得られるクラスタのリストは、下位のものから順番に並んでいるものとする。
【００４３】
得られたクラスタリストに含まれる各クラスタについて、葉ノード側（下位側）から順番に、クラスタに対応するクラスタ代表点がキャッシュ内に存在するか確認する（Ｓ１０のループ、コード２１〜２６行目）。この処理は、キャッシュ内に格納されている最も下位（葉ノード側）のクラスタ代表点を求める処理である。この際、部品Ａ自体がキャッシュ内に格納されているか確認することが好ましい。実装としては部品Ａそれ自体も一つのクラスタ（木構造の一部）として扱い、そのクラスタ代表点が部品Ａであるとするとプログラム処理が容易になる。部品Ａ自体がキャッシュ内にあるか判断し、無ければクラスタＣ１の代表点がキャッシュ内にあるか判断し、と順番に判断していく。クラスタリストに含まれるクラスタの代表点がキャッシュ内にある場合（Ｓ１２−ＹＥＳ）には、キャッシュからこの代表点を取得してmap_elementsに格納してループを抜け（コード２３〜２４行目）、ステップＳ１４で進む。一方、クラスタリストに含まれるクラスタの代表点がキャッシュ内に見つからなかった場合はmap_elementsがnilのままループが終了してステップ
Ｓ１６に進む。
【００４４】
クラスタリスト内のクラスタに対応するクラスタ代表点がキャッシュ内に存在する場合は、そのクラスタ代表点が基準を満たすか否か判断する（Ｓ１４、コード３０〜３１行目のif文）。ここで基準とは、要求された部品を別の部品で代替する場合にどの程度異なっても良いかを表す基準である。この基準を緩くすると、地図部品の詳細度が低下するが、キャッシュを有効活用できクライアント・サーバ間のデータ伝送量を少なくすることができる。一方、この基準を厳しくすると、クライアント・サーバ間のデータ伝送量は増えるが、地図部品の詳細度が上がることになる。この基準は、部品の種類（テクスチャ、ポリゴン等）ごとに変えることができる。また、同じ部品の種類内でも部品ＩＤごとに変えることもできる。さらには、クライアント・サーバ間のネットワークの利用状況に応じて変更したり、ユーザ設定により変更しても構わない。基準の具体例として、「ｎ階層以内のクラスタ代表点なら許容する」「要求した部品との類似度が所定値以内のクラスタ代表点ならば許容する」などを挙げることができる。
【００４５】
キャッシュ内にあるクラスタ代表点が基準を満たす場合（Ｓ１４ーＹＥＳ）は、そのクラスタ代表点の部品データを用いて地図を描画できるので、次の地図部品についての処理に進む。一方、キャッシュ内にクラスタリストのクラスタ代表点が存在しないか、存在しても基準を満たさない場合には、クライアントは地図情報配信サーバから部品データを取得する（Ｓ１６、コード３２行目のcache_space.select_and_load関数）。クライアント
は、サーバから渡された部品データをmap_elementに格納するとともに、キャッシュにも
格納する。
【００４６】
地図情報配信サーバはクライアントからある部品（element_id）の部品データを要求されたときに、要求された部品の部品データを返す必要はなく、この部品の上位のクラスタのクラスタ代表点に対応する部品データを返しても良い。このとき、サーバ側でも上記の基準を把握して、基準を満たす範囲内での部品データを返すことが好ましい。クライアント側とサーバ側とで同一の基準を使うことが好ましく、ともにキャッシュ管理情報１０６に格納されている条件を用いる。具体的には、上記基準が、２階層以内のクラスタ階層であるという条件である場合に、部品Ａを要求されたときに、部品Ａ、クラスタＣ１の代表点、クラスタＣ２の代表点のいずれかをクライアントに返す。データの伝送量を削減するためには、より上位のクラスタ代表点（ここではクラスタＣ２の代表点）を返せばよい。
【００４７】
このようにして地図構成部品element_idに対応し、地図の描画に用いられる部品データを取得することができる。この処理を領域range内に含まれる全ての構成部品に対して実
行する（Ｓ６のループ）。そして、得られた部品データを用いて地図画像を作成する（Ｓ２０）。この地図画像生成処理は従来の手法により行えばよいので、ここでは説明を省略する。
【００４８】
〈本実施形態による作用／効果〉
本実施形態によれば、地図を構成する部品データが必要な場合に、この部品データ自体がキャッシュされていなくても上位クラスタの代表点（部品データ）がキャッシュされていれば、この代表点に対応する部品データを用いて地図画像を生成できる。ここで、地図情報に求められる詳細度や、利用可能なサーバやネットワークの資源に応じて、代替するクラスタ代表点の基準を変更することで柔軟な対応が可能である。すなわち、詳細度があまり必要ではない場合には、より上位のクラスタ代表点で代替可能な基準を設定すればよい。この場合、キャッシュを効率的に利用できるためネットワークやサーバの資源をあまり消費しない。反対に、高い詳細度が求められる場合は、下位のクラスタ代表点（最も極端な場合には地図構成部品そのもの）で代替するような基準を選べば、資源を消費する見返りとして、求める詳細度が得られる。このような選択は、地図構成部品やクラスタごとに行えるため、アプリケーションの要求に応じて、ある地物は詳細度を高め、別の地物は詳細度を低めるような、選択的な構成も可能である。すなわち、地図情報に求められる詳細度と資源に対する要件に応じて、非常に柔軟に対応できるといえる。
【００４９】
（第２の実施形態）
上記第１の実施形態では、クライアント２００に１つのキャッシュ空間が存在するものとして説明した。本実施形態においては、クライアント２００に複数のキャッシュ空間を用意し、部品データの出現頻度に応じて利用するキャッシュ空間を異ならせる。これにより、出現頻度が高い部品データのキャッシュヒット率を高めることができ、キャッシュをより有効に活用できるようになる。
【００５０】
〈構成〉
図８に本実施形態に係る地図情報配信システムの構成を示す。第１の実施形態との大きな違いは、クライアント２００に複数の地図情報キャッシュ２０３が備えられている点である。それぞれのキャッシュは、あらかじめ決められたサイズの情報を保持できる記憶領域（ＲＡＭなどの揮発性メモリ、フラッシュメモリや磁気ディスクなどの不揮発性メモリなど）であり、特定のキャッシュ置換戦略に従って管理される。クライアント２００は、これら複数のキャッシュ空間を、保持する地図構成情報や地図構成要素の性質に応じて使い分ける。なお、各キャッシュ空間のサイズはそれぞれ異なるものであっても良いし、全て同じであっても構わない。
【００５１】
また、本実施形態においてはキャッシュ管理情報１０６としてどの地図部品データ（クラスタ代表点）をどのキャッシュ空間に格納するかを表すキャッシュ空間対応情報が含まれる。また、クライアント２００が有しているキャッシュ空間の編成情報もキャッシュ管理情報１０６に含まれる。
【００５２】
〈サーバ側地図データ生成処理〉
どの部品データをどのキャッシュ空間に格納するかを示すキャッシュ空間対応情報は、地図部品要素の性質に応じて生成されるため、構成情報や部品情報と合わせて生成する。図９に入力となる地図情報から、構成情報１０４、部品情報１０５、キャッシュ管理情報１０６（キャッシュ空間対応情報を含む）を生成する処理を説明する。なお、構成情報１０４、部品情報１０５や階層クラスタ情報１０６、クラスタ代表点情報３０８の生成処理は、第１の実施形態で説明した処理と同様であるためここでは詳しい説明は省略する。
【００５３】
本実施形態においては、地図部品ごとの出現頻度を算出するために、入力データとして
入力地図情報３０１以外に利用頻度予測元情報９０１を利用する。利用頻度予測元情報９０１には、統計情報９０２と利用者属性９０３が含まれる。統計情報９０２は、場所ごとに地図データが要求される頻度を表す情報であり、たとえば、場所ごとの人口密度や交通量、実際の地図情報の要求履歴などが該当する。利用者属性９０３は、利用者（個人）ごとの地図データ要求頻度を表す情報であり、たとえば、利用者の活動地域や自宅住所、勤務地などの情報を用いる。利用者属性９０３として、利用者の嗜好を用いても良い。なお、統計情報９０２と利用者属性９０３の両方を必ずしも用いる必要はなく、いずれか一方のみを使用しても構わない。
【００５４】
部品頻度出現処理９０４では、地図部品分離処理３０４によって得られたそれぞれの部品データの出現頻度（部品出現頻度情報９０５）を、利用頻度予測元情報９０１に基づいて求める。たとえば、利用者の活動地域に近く、人口密度の高い地域に近いほど、地図構成部品の出現頻度を高くする。部品出現頻度抽出処理９０５以降の処理は、利用者属性を用いない場合には１回の処理で済むが、利用者属性を用いる場合は利用者ごとに行う必要がある。
【００５５】
クラスタ出現頻度抽出処理９０６では、階層クラスタ化処理３０５によって得られた階層クラスタそれぞれの出現頻度、部品出現頻度情報９０５に基づいて求める。たとえば、階層化されたクラスタ内に含まれる各地図構成部品の出現頻度を足し合わせることで、各クラスタの出現頻度が求められる。各クラスタのクラスタ出現頻度情報９０７は、クラスタを一意に表すクラスタＩＤと出現頻度の組の列となる。
【００５６】
キャッシュ空間対応付け処理９０９では、各クラスタの出現頻度９０７とクラスタ代表点のサイズを用いて、キャッシュ空間編成情報９０８により定義されたキャッシュ空間から、そのクラスタ代表点を格納するのに相応しいキャッシュ空間を選択する。ここでは、出現頻度の高いクラスタ代表点ほどキャッシュヒット率が高まるようにキャッシュ空間を選択することが望まれる。たとえば、出現頻度の高いクラスタ代表点ほどサイズの大きいキャッシュ空間に割り当てることが考えられる。また、全てのクラスタ代表点をキャッシュに格納する必要はなく、出現頻度の低いクラスタについてはキャッシュしないという選択もあり得る。
【００５７】
なお、キャッシュ空間編成情報９０８は、キャッシュ空間を定義する情報であり、キャッシュ空間のサイズや使用するキャッシュ置換戦略を定義する。また、地物の種類ごとにキャッシュ空間を分ける場合などのために、クラスタ代表点を紐付ける際のヒントを付与しても良い。
【００５８】
以上のようにして、クラスタごとの代表点をどのキャッシュ空間に格納するかを表すキャッシュ空間対応情報９１０を作成することができる。
【００５９】
〈クライアント側処理〉
次に、クライアント側での地図画像描画処理について説明する。この処理のフローチャート自体は第１の実施形態における図５と同様である。ただし、本実施形態では、キャッシュ空間が複数存在しクラスタごとに格納されるキャッシュが異なるため、プログラムの実装に変更がある。本実施形態におけるクライアント側の地図データ取得処理の擬似プログラムコードを図１０に示す。
【００６０】
第１の実施形態（図６）との相違として、キャッシュ空間を表す大域変数cache_spacesが配列型となっている（３行目）。そして、キャッシュ内にクラスタ代表点が存在するかを判定する処理（２３行目）において、まずクラスタＩＤに対応するキャッシュ空間を取得し（cache_spaces.get(clauster.cache_space_id)）、このキャッシュ空間内にクラス
タ代表点があるか判定している。また、サーバから地図部品データを取得する処理（３２行目）もcache_spaces.select_and_load関数を呼び出し、サーバから取得された地図部品データ（クラスタ代表点）は、対応するキャッシュ空間に格納される。キャッシュ置換戦略としては、一般的な、LRU, LFUの他、サイズを考慮したSIZE, PSS, Partitioned Caching, HYPER-G, LRU-SP, GD-Size、サイズと出現頻度を考慮したLUVなどを用いることがで
きる（非特許文献５）。
【００６１】
〈本実施形態の作用／効果〉
本実施形態では第１の実施形態と同様の効果に加えて、以下のような効果を得ることが得きる。すなわち、地図構成要素の出現頻度に基づいてクラスタ代表点を複数のキャッシュ空間のいずれかに対応付けているため、出現頻度の高いクラスタ代表点ほどキャッシュ内に存在する確率を高くすることができる。これにより、キャッシュを効率的に利用でき、サーバ・クライアント間のデータ伝送量を減らすことができる。
【００６２】
〈変形〉
部品の出現頻度を用いたキャッシュ置換戦略は、キャッシュ空間が一つの場合であっても利用可能である。したがって、図９に示される第２の実施形態の方法で地図データを生成し、この地図データを一つのキャッシュ空間だけを有するクライアントで利用することも好ましい。
【符号の説明】
【００６３】
１００  地図情報配信サーバ
１０２  地図情報配信部
１０４  構成情報
１０６  部品情報
１０８  キャッシュ管理情報
２００  クライアント
２０２  地図情報取得部
２０３  地図情報キャッシュ
２０４  制御部
３０６  階層クラスタ情報
３０８  クラスタ代表点情報
【図１】
2011191430.tif 000003
【図２】
2011191430.tif 000004
【図３】
2011191430.tif 000005
【図４】
2011191430.tif 000006
【図５】
2011191430.tif 000007
【図６】
2011191430.tif 000008
【図７】
2011191430.tif 000009
【図８】
2011191430.tif 000010
【図９】
2011191430.tif 000011
【図１０】
2011191430.tif 000012