特許第5883817号(P5883817)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社ジオ技術研究所の特許一覧

<>
  • 特許5883817-描画データ生成装置および描画装置 図000002
  • 特許5883817-描画データ生成装置および描画装置 図000003
  • 特許5883817-描画データ生成装置および描画装置 図000004
  • 特許5883817-描画データ生成装置および描画装置 図000005
  • 特許5883817-描画データ生成装置および描画装置 図000006
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】5883817
(24)【登録日】2016年2月12日
(45)【発行日】2016年3月15日
(54)【発明の名称】描画データ生成装置および描画装置
(51)【国際特許分類】
   G06T 11/20 20060101AFI20160301BHJP
   G06T 11/60 20060101ALI20160301BHJP
   G09B 29/00 20060101ALI20160301BHJP
【FI】
   G06T11/20 300
   G06T11/60 300
   G09B29/00 Z
【請求項の数】10
【全頁数】18
(21)【出願番号】特願2013-57496(P2013-57496)
(22)【出願日】2013年3月21日
(65)【公開番号】特開2014-182670(P2014-182670A)
(43)【公開日】2014年9月29日
【審査請求日】2015年5月1日
(73)【特許権者】
【識別番号】502002186
【氏名又は名称】株式会社ジオ技術研究所
(74)【代理人】
【識別番号】100165663
【弁理士】
【氏名又は名称】加藤 光宏
(72)【発明者】
【氏名】岸川 喜代成
(72)【発明者】
【氏名】手島 英治
(72)【発明者】
【氏名】荒巻 昌稔
(72)【発明者】
【氏名】内海 公志
(72)【発明者】
【氏名】中上 卓
(72)【発明者】
【氏名】阿座上 達也
【審査官】 岡本 俊威
(56)【参考文献】
【文献】 特開平10−011591(JP,A)
【文献】 特開平07−200847(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 11/00−11/80
G09B 29/00−29/10
(57)【特許請求の範囲】
【請求項1】
グラフィックスライブラリを用いて画像を描画するための描画データを生成する描画データ生成装置であって、
前記グラフィックスライブラリは、ラインデータによって指定された頂点間を順次結んでラインを描画するライン関数を有しており、
前記描画データ生成装置は、
前記描画すべき原データを格納する原データベースと、
前記原データのうち、複数の前記ラインデータを一本のラインデータに統合するラインデータ統合部とを有しており、
前記ラインデータ統合部は、
前記原データに含まれるラインデータのうち、前記ライン関数を共通の設定で用いて描画されるべき複数のラインデータを抽出し、
前記抽出された複数のラインデータを連結して一本のラインデータに統合するように、前記ラインデータの端点のうち空間的に離れている端点間を、非表示のラインで連結するデータを生成する描画データ生成装置。
【請求項2】
請求項1記載の描画データ生成装置であって、
前記ライン関数は、ラインの一方の頂点に指定された第1の表示態様から、他方の頂点に指定された第2の表示態様に、表示態様を順次変化させながら該ラインを描画する機能を有しており、
前記描画データ生成装置は、さらに、
前記統合の際に、前記非表示のラインで連結すべき端点に重ねて、新たに連結で用いるためのダミー点を追加するダミー点追加部を備え、
前記ラインデータ統合部は、前記ダミー点間を非表示のラインで連結する描画データ生成装置。
【請求項3】
請求項1または2記載の描画データ生成装置であって、
前記ラインデータ統合部は、前記空間的に離れている端点のうち、距離が近い端点同士を連結する描画データ生成装置。
【請求項4】
請求項1〜3いずれか記載の描画データ生成装置であって、
前記原データベースは、前記各ラインデータの形状、属性を示す固有の原インデックス情報が、それぞれラインデータに関連づけて格納されており、
前記ラインデータ統合部は、前記原インデックス情報とは別に、前記統合されたラインデータの形状、属性を示す固有の統合インデックス情報を生成する描画データ生成装置。
【請求項5】
グラフィックスライブラリを用いて画像を描画する描画装置であって、
前記グラフィックスライブラリは、ラインデータによって指定された頂点間を順次結んでラインを描画するライン関数を有しており、
前記描画装置は、
所定サイズのメッシュに区切って生成された前記描画すべき原データを格納する原データベースと、
前記描画の対象となるメッシュが複数あるとき、異なるメッシュに存在する前記ラインデータの端点同士を仮想的に連結して一本のラインデータに統合するライン描画データ設定部と、
前記統合されたラインデータに基づいて前記ライン関数を呼び出すことによって描画を行う描画部とを備える描画装置。
【請求項6】
請求項5記載の描画装置であって、
さらに、前記メッシュごとに、該メッシュ内の複数のラインデータを統合する請求項1〜4いずれか記載の描画データ生成装置を備え、
前記ライン描画データ設定部は、前記メッシュごとに統合されたラインデータを対象として前記統合を行う描画装置。
【請求項7】
グラフィックスライブラリを用いて画像を描画するための描画データを、コンピュータによって生成する描画データ生成方法であって、
前記グラフィックスライブラリは、ラインデータによって指定された頂点間を順次結んでラインを描画するライン関数を有しており、
前記コンピュータが実行するステップとして、
前記描画すべき原データを格納する原データベースから前記原データを読み出すステップと、
前記原データのうち、複数の前記ラインデータを一本のラインデータに統合するラインデータ統合ステップとを有しており、
前記ラインデータ統合ステップは、
前記原データに含まれるラインデータのうち、前記ライン関数を共通の設定で用いて描画されるべき複数のラインデータを抽出し、
前記抽出された複数のラインデータを連結して一本のラインデータに統合するように、前記ラインデータの端点のうち空間的に離れている端点間を、非表示のラインで連結するデータを生成する描画データ生成方法。
【請求項8】
グラフィックスライブラリを用いて画像を描画するための描画データを生成するためのコンピュータプログラムであって、
前記グラフィックスライブラリは、ラインデータによって指定された頂点間を順次結んでラインを描画するライン関数を有しており、
前記コンピュータプログラムは、
前記描画すべき原データを格納する原データベースから前記原データを読み出す機能と、
前記原データのうち、複数の前記ラインデータを一本のラインデータに統合するラインデータ統合機能とをコンピュータに実現させるコンピュータプログラムであり、
前記ラインデータ統合機能は、
前記原データに含まれるラインデータのうち、前記ライン関数を共通の設定で用いて描画されるべき複数のラインデータを抽出し、
前記抽出された複数のラインデータを連結して一本のラインデータに統合するように、前記ラインデータの端点のうち空間的に離れている端点間を、非表示のラインで連結するデータを生成する機能であるコンピュータプログラム。
【請求項9】
グラフィックスライブラリを用いてコンピュータにより画像を描画する描画方法であって、
前記グラフィックスライブラリは、ラインデータによって指定された頂点間を順次結んでラインを描画するライン関数を有しており、
前記コンピュータが実行するステップとして、
所定サイズのメッシュに区切って生成された前記描画すべき原データを格納する原データベースから原データを読み出すステップと、
前記描画の対象となるメッシュが複数あるとき、異なるメッシュに存在する前記ラインデータの端点同士を仮想的に連結して一本のラインデータに統合するライン描画データ設定ステップと、
前記統合されたラインデータに基づいて前記ライン関数を呼び出すことによって描画を行う描画ステップとを備える描画方法。
【請求項10】
グラフィックスライブラリを用いて画像を描画するためのコンピュータプログラムであって、
前記グラフィックスライブラリは、ラインデータによって指定された頂点間を順次結んでラインを描画するライン関数を有しており、
前記コンピュータプログラムは、
所定サイズのメッシュに区切って生成された前記描画すべき原データを格納する原データベースから原データを読み出す機能と、
前記描画の対象となるメッシュが複数あるとき、異なるメッシュに存在する前記ラインデータの端点同士を仮想的に連結して一本のラインデータに統合するライン描画データ設定機能と、
前記統合されたラインデータに基づいて前記ライン関数を呼び出すことによって描画を行う描画機能とをコンピュータに実現させるためのコンピュータプログラム。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、グラフィックスライブラリを用いて画像を描画する描画装置、および描画のためのデータを生成する描画データ生成装置に関する。
【背景技術】
【0002】
ナビゲーション装置やコンピュータの画面等に用いられる電子地図などは、ポリゴンデータ等の形式で用意された地図データを参照して、ディスプレイ等に地図を描画する。この描画には、グラフィックスライブラリと呼ばれる描画用の関数が用いられるのが通常である。3次元での描画を行うためのグラフィックスライブラリとしては、OpenGLやDirectXなどが存在する。これらのグラフィックスライブラリを用いることにより、画像の描画を高速で効率的に実行することが可能となる。
一方、グラフィックスライブラリには、それぞれ利用する際の制約があり、必ずしも描画対象となるポリゴンデータが、こうした制約を満足しているとは限らない。かかる場合には、ポリゴンデータを、グラフィックスライブラリの制約に適合するように加工する必要が生じる。特許文献1は、かかる加工の一例として、グラフィックスライブラリが取り扱い可能な頂点数に上限値がある場合、ポリゴンを描画する際に、上限値に基づいてポリゴンを分割して描画する技術を開示している。
また、描画すべきポリゴンデータが、地図データのように多数のポリゴンからなる大容量のデータの場合には、描画速度を速めるため、データ量を削減する処理も行われる。特許文献2は、かかる処理の一例として、ポリゴンを描画する際に、辺間の角度が大きい場合には、頂点数を間引くことによって、ポリゴンの描画速度を速める技術を開示している。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2003−187256号公報
【特許文献2】特開2004−348708号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
電子地図等においても地物の形状を3次元的に表現した3次元地図が普及し、3次元での描画が要求されるようになると、描画すべきポリゴンデータの容量はますます大きくなる。また、カーナビゲーション装置に3次元地図を適用した場合には、リアルタイムに3次元地図を描画する必要があり、描画に要する時間の短縮化も要求される。このようなデータ容量の増大、描画時間の短縮という要請に十分、応えるためには、描画速度をさらに向上させることが望まれていた。
描画速度の向上は、電子地図に限った課題ではなく、画像の描画に共通の課題である。本発明は、グラフィックスライブラリを用いる場合に、画像の描画速度の向上を図ることを目的とする。
【課題を解決するための手段】
【0005】
本発明は、
グラフィックスライブラリを用いて画像を描画するための描画データを生成する描画データ生成装置であって、
前記グラフィックスライブラリは、ラインデータによって指定された頂点間を順次結んでラインを描画するライン関数を有しており、
前記描画データ生成装置は、
前記描画すべき原データを格納する原データベースと、
前記原データのうち、複数の前記ラインデータを一本のラインデータに統合するラインデータ統合部とを有しており、
前記ラインデータ統合部は、
前記原データに含まれるラインデータのうち、前記ライン関数を共通の設定で用いて描画されるべき複数のラインデータを抽出し、
前記抽出された複数のラインデータを連結して一本のラインデータに統合するように、前記ラインデータの端点のうち空間的に離れている端点間を、非表示のラインで連結するデータを生成する描画データ生成装置として構成することができる。
【0006】
グラフィックスライブラリを用いて描画を行う場合、ラインを1本ひくごとに、ライン関数を呼び出すことになるが、この呼び出しに少なからず処理時間を要することになる。従って、描画すべきラインデータの本数が増えるほど、ライン関数を呼び出す回数が増大し、全体の処理時間が長くなることになる。
これに対し、本発明によれば、複数のラインデータを非表示のラインで連結することで一本のラインデータに統合することができる。従って、統合化されたラインデータを描画するためには、ライン関数を1回読み出せば足りるため、描画に要する所要時間を短縮することができる。もっとも、ラインを統合する分、1回のライン関数で描画すべきラインデータを構成する頂点数は統合前よりも増大するため、処理時間を増大させる要素とはなり得る。しかし、かかる増大要素よりも、ライン関数の呼び出し回数を減らすことによる所要時間の短縮効果の方が大きいため、全体として処理時間を短縮することが可能となるのである。
グラフィックスライブラリを用いて描画を行う場合、頂点間の区間ごとにラインの表示/非表示は容易に切り換えることができる。従って、ラインデータの間を非表示のラインで連結するのは、ラインデータ間に新たなラインを定義するとともに、当該区間を非表示と設定することにより、容易に実現することができる。
統合の対象となるラインデータは、ライン関数を共通の設定で用いて描画できるものである。例えば、ラインの太さ・線種等が共通のラインなどが対象となり得る。どのようなラインが統合の対象となるかは、利用するグラフィックスライブラリに応じて定まることになる。
【0007】
本発明において、
前記ライン関数が、ラインの一方の頂点に指定された第1の表示態様から、他方の頂点に指定された第2の表示態様に、表示態様を順次変化させながら該ラインを描画する機能を有している場合、
前記描画データ生成装置は、さらに、
前記統合の際に、前記非表示のラインで連結すべき端点に重ねて、新たに連結で用いるためのダミー点を追加するダミー点追加部を備え、
前記ラインデータ統合部は、前記ダミー点間を非表示のラインで連結するものとしてもよい。
【0008】
グラフィックスライブラリのライン関数によっては、ブレンド機能、即ち、第1の頂点から第2の頂点にかけて、徐々に線の色などの表示態様を変化させる機能を備えているものがある。かかる機能を有するライン関数では、例えば、第1の頂点で「赤」、第2の頂点で「青」が指定されていると、その間のラインは、赤から徐々に青に変化しながら描画されることになる。
このようなライン関数の場合、原データに存在する第1のラインの端点(第1の端点と呼ぶ)と、第2のラインの端点(第2の端点と呼ぶ)とを非表示のラインで連結しようとすると、第1のライン、および第2のライン自体が、それぞれ第1の端点、第2の端点に向けて徐々に透明に描かれる自体も生じ得る。
これに対し、本発明によれば、第1の端点、第2の端点にダミー点をそれぞれ追加した上で、これらのダミー点の間を非表示のラインで連結するため、第1のライン、第2のラインは、非表示のラインの影響を受けることなく適正に描画される。
【0009】
本発明においては、
前記ラインデータ統合部は、前記空間的に離れている端点のうち、距離が近い端点同士を連結するものとしてもよい。
こうすることにより、統合したラインの全体の距離を短くすることができ、ラインの描画時間をより短縮することが可能となる。
【0010】
本発明においては、
前記原データベースは、前記各ラインデータに固有の原インデックス情報が、それぞれラインデータに関連づけて格納されており、
前記ラインデータ統合部は、前記原インデックス情報とは別に、前記統合されたラインデータの形状、属性を示す固有の統合インデックス情報を生成するものとしてもよい。
ラインを統合した後でも、原データのラインと、統合化のために追加された非表示のラインとは区別可能としておく必要がある。また、原データにおいて、ラインデータごとに、色、線種などの属性が設定されていることがあり、こうした情報は、参照可能な状態で保持しておく必要がある。
上記態様によれば、ラインに関連づけられた原インデックス情報は保持されているため、原データのラインに付されていた形状や属性も参照可能となる。また、これと同時に、統合化されたライン全体のインデックス情報も生成されるため、統合化された後のライン全体としての取り扱いも容易となる利点がある。
【0011】
本発明は、上述した描画データ生成装置としての態様に限らず、種々の態様で構成することができ、例えば、次に示す描画装置として構成してもよい。
グラフィックスライブラリを用いて画像を描画する描画装置であって、
前記グラフィックスライブラリは、ラインデータによって指定された頂点間を順次結んでラインを描画するライン関数を有しており、
前記描画装置は、
所定サイズのメッシュに区切って生成された前記描画すべき原データを格納する原データベースと、
前記描画の対象となるメッシュが複数あるとき、異なるメッシュに存在する前記ラインデータの端点同士を仮想的に連結して一本のラインデータに統合するライン描画データ設定部と、
前記統合されたラインデータに基づいて前記ライン関数を呼び出すことによって描画を行う描画部とを備える描画装置とする態様である。
上記描画装置によれば、メッシュ間でラインを連結して描画することにより、ライン関数の呼び出し回数を減少させることができ、描画の所要時間短縮を図ることができる。
【0012】
本発明の描画装置においては、
さらに、前記メッシュごとに、該メッシュ内の複数のラインデータを統合するために、先に説明したいずれかの描画データ生成装置を備え、
前記ライン描画データ設定部は、前記メッシュごとに統合されたラインデータを対象として前記統合を行うものとしてもよい。
こうすることにより、メッシュ内のラインも統合化し、かつ、メッシュ間でも統合化することができるから、より一層、ライン関数の呼び出し回数を減少させることができる。
【0013】
本発明は、上述した特徴を必ずしも全てを備えている必要はなく、適宜、その一部を省略したり、組み合わせたりしてもよい。
本発明は、さらに、コンピュータによって描画データを生成する生成方法または画像を描画する描画方法として構成してもよい。また、描画データの生成や画像の描画をコンピュータに実行させるためのコンピュータプログラムとして構成してもよい。また、かかるコンピュータプログラムを記録したコンピュータが読み取り可能な記録媒体として構成してもよい。
【図面の簡単な説明】
【0014】
図1】経路案内システムの構成を示す説明図である。
図2】原地図データベースのデータ構造を示す説明図である。
図3】ラインデータの統合処理の概要を示す説明図である。
図4】ラインデータ統合処理のフローチャートである。
図5】経路案内処理のフローチャートである。
【発明を実施するための形態】
【実施例1】
【0015】
以下、本発明を、地図を描画しつつ、経路探索・経路案内を行う経路案内システムとして構成した場合の実施例を説明する。経路案内システムのうち、グラフィックスライブラリを用いて地図を描画する部分が、本発明における描画装置に相当する。また、そのためのデータを生成する部分が、本発明における描画データ生成装置に相当する。
本発明の描画対象は、地図に限られるものではないから、本発明は、経路案内システムとしての態様に限らず、グラフィックスライブラリを用いて画像を描画する種々の描画装置に適用可能である。
【0016】
A.システム構成:
図1は、経路案内システムの構成を示す説明図である。経路案内システムは、サーバ200から提供されるデータに基づいて、端末300において地図を表示しながら、ユーザが指定した出発地から目的地までの経路を案内するシステムである。サーバ200と端末300とはインターネットなどのネットワークNE2で接続されている。本実施例では、端末300としては、CPU、RAM、ROMを備えるスマートフォンを利用したが、携帯電話、パーソナルコンピュータ、タブレット端末など、電子地図を表示可能な種々の装置を利用することができる。
図1には、さらに、地図を効率的に描画するための描画データを生成する描画データ生成装置100も併せて示した。描画データ生成装置100は、CPU、RAM、ROMを備えるパーソナルコンピュータを利用して構成されており、原地図データベース104から、描画用地図データベースを生成する装置である。描画データ生成装置100は、ネットワークNE1でサーバ200に接続されており、生成された描画用地図データベースは、サーバ200に格納される。
描画データ生成装置100、サーバ200、端末300には、それぞれ図示する機能ブロックが備えられている。本実施例では、これらの機能ブロックは、それぞれの機能を実現するためのコンピュータプログラムをインストールすることによってソフトウェア的に構成したが、これらをハードウェア的に構成することも可能である。
また、本実施例で示した描画データ生成装置100、サーバ200、端末300が備える機能は、一例に過ぎず、全ての機能を1台で実現するスタンドアロンの装置として構成することも可能である。また、図示したよりも多数のサーバ等からなる分散システムとして構成してもよい。
以下、各装置ごとに構成を説明する。
【0017】
描画データ生成装置100の構成について説明する。
原地図データベース104は、地図で描画されるべき地物の形状等を表すポリゴンデータ、ラインデータを格納したデータベースである。本実施例では、3次元の形状を表す3次元地図データを格納するものとした。原地図データベース104を、そのまま用いて透視投影等によって3次元地図を描画することも可能なデータである。本実施例では、描画速度を向上させるため、描画データ生成装置100で、加工し、描画用地図データベース103を生成するのである。
コマンド入力部101は、原地図データベース104に対する加工について、オペレータからの指示等を入力する。
ラインデータ統合部102は、上述した加工として、原地図データベース104に含まれる複数のラインを表すラインデータを連結し、1本のラインデータにする処理を行う。以下では、この処理を、統合化と呼ぶこともある。
ダミー点追加部106は、加工の対象となるラインデータの端点に重ねて、連結用にダミーの点を生成する。ダミーの点を生成する理由については、統合化の処理概要とともに後述する。
描画用地図データベース103は、ラインデータ統合部102によって加工され、描画の処理速度向上を図った描画用の地図データを格納する。
送受信部105は、サーバ200との間でデータの送受信を行う。本実施例では、描画用地図データベース103に格納された地図データは、送受信部105により、ネットワークNE1経由でサーバ200に送信される。
【0018】
サーバ200の構成について説明する。
地図データベース210には、描画用地図データベース211およびネットワークデータ213が格納されている。描画用地図データベース210は、描画データ生成装置100で生成された地図データであり、地物の形状を表すポリゴンデータ、ラインデータおよび文字データが格納されている。ネットワークデータ213は、道路をリンクおよびノードで表した経路探索用のデータである。
データベース管理部202は、地図データベース210のデータの入出力を管理する。本実施例では、描画データ生成装置100で生成された描画用地図データベース211のアップデートを行ったり、地図表示時に必要な地図データを地図データベース210から読み出したりする。
経路探索部203は、ネットワークデータ213を利用して、端末300のユーザから指定された出発地から目的地までの経路を探索する。経路探索は、ダイクストラ法など周知の方法によって行うことができる。
送受信部201は、ネットワークNE1、NE2を介して、描画データ生成装置100および端末300との間で、種々のデータやコマンドの送受信を行う。
【0019】
端末300の構成について説明する。
主制御部304は、端末300に備えられた各機能ブロックの動作を統合制御する。
送受信部301は、ネットワークNE2を介してサーバ200との間で、データやコマンドの送受信を行う。
コマンド入力部302は、ユーザからの経路案内等に関する指示などを入力する。指示としては、例えば、経路案内の出発地、目的地の指定、地図表示時の表示スケールの指定などが挙げられる。
位置・通行情報取得部303は、GPS(Global Positioning System)等のセンサから端末300の現在位置を取得したり、ネットワークNE2経由で、交通渋滞や通行規制の情報を取得する。
地図情報記憶部305は、地図を表示する際に、サーバ200から取得した描画用地図データベース211を一時的に記憶する。本実施例では、端末300は、予め全ての地図データを記憶しておくのではなく、地図の表示範囲に応じて必要となる地図データを適宜、サーバ200から取得する。地図情報記憶部305は、こうして取得された地図データを記憶している。また、併せて、経路探索の結果も記憶する。
表示制御部306は、地図情報記憶部305に記憶されている地図データを用いて、端末300のディスプレイ300dへの地図表示を行う。表示制御部306には、ポリゴンやラインを描画するためのグラフィックスライブラリが備えられており、描画は、適宜、グラフィックスライブラリの関数を呼び出すことで実行される。グラフィックスライブラリとしては、例えば、OpenGLやDirectXを用いることができる。
ライン描画データ設定部307は、表示制御部306による描画速度を向上させるため、地図データの加工を行う。先に説明した通り、本実施例では、地図データには、描画データ生成装置100によって、描画速度を向上させるための加工が予め施されている。ただし、地図の表示範囲が定まっていない状態では、加工できる範囲にも制限がある。そこで、ライン描画データ設定部307は、地図を表示する時点で改めて実現可能な加工を施すのである。
【0020】
B.データ構造:
図2は、原地図データベースのデータ構造を示す説明図である。原地図データベースは、複数のレベル、即ち詳細度に分けて格納されている。図の上側にレベルの概要を示した。レベルnは、詳細度の高いデータであり、所定サイズの矩形形状からなるメッシュ単位でデータが格納されている。レベルn−1は、レベルnよりも粗いデータであり、主要な道路、建物等のデータを格納する。レベルn−1もメッシュ単位でデータが格納されるが、メッシュのサイズは、レベルnよりも広い。レベルn−2は、さらに粗く、広いメッシュ単位で格納された地図データである。
レベルnのデータを例にとって、地図データの構成を説明する。
【0021】
ラインデータは、地図中の道路、線路など線状の地物を描画するためのデータである。ラインデータは、地物単位で生成されており、固有のインデックス情報である「ID」が付されている。ラインデータの形状は、点1(XL1,YL1,ZL1)、点2(XL2,YL2,ZL2)のようにラインを形成する頂点の位置座標の集合で表される。これらの点の座標値は、各ラインデータ用の領域に格納されるようにしてもよいし、ラインデータとは個別の領域に格納し、ラインデータ用の領域には、その格納先を特定するポインタを記憶しておくようにしてもよい。
「属性」としては、ラインデータが表す地物の「名称」、道路種別など地物の「種別」、ラインを描画する際の「線種」、「線色」、「線幅」、および表示/非表示の指定などが設定されている。
文字データは、地図中に表示される文字を表すデータである。文字データにも、固有のインデックス情報である「ID」が付されて管理されている。「文字列」は“○○市”のように地図中に記載される文字を表し、「位置」は文字を表示すべき位置の座標値(XC,YC,ZC)を表している。また、文字を表示する際のフォント、サイズ、色なども併せて指定されている。
ポリゴンデータは、建物その他の地物の形状を表すデータである。ポリゴンデータも、地物単位で生成されており、固有のインデックス情報である「ID」によって管理されている。ポリゴン形状は、頂点1(XP1,YP1,ZP1)、点2(XP2,YP2,ZP2)のように、ポリゴンを規定する頂点の座標の集合で表される。「属性」としては、ポリゴンが表す地物の「名称」、建物や池などの「種別」等が指定されている。
図2では、原地図データベースのデータ構造を例示したが、描画用地図データベースの構造も同様である。本実施例における描画用地図データベースは、データ構造自体を大きく変更するものではなく、ラインデータに対して、付加的な情報を付すことによって、描画処理速度の向上を図るものである。
【0022】
C.描画用データの生成:
図3は、ラインデータの統合処理の概要を示す説明図である。図3(a)に、統合化前のラインデータの様子を示した。図の例では、地図中には、街中の細い道路のように細線で描かれるラインL1、L3と、国道などの主要な道路のように太線で描かれるラインL2、L4、L5がある。図の右側には、これらのラインに対応するラインデータの格納状況を示した。この例では、各ラインを構成する頂点は、ラインデータ(図2)におけるIDや属性とは別のメモリ領域にまとめて格納されているものとする。ラインデータには、頂点の座標列として、頂点が格納されたメモリ領域を特定するポインタが格納されることになる。
頂点記憶用のメモリ領域には、ラインL1については頂点P11、P12が記憶される。次に、ラインL2を構成する頂点P21、P22が記憶される。同様に、ラインL3、L4、L5を構成する頂点P31〜P33、P41〜P42、P51〜P52がそれぞれ記憶される。このように、ラインデータ内では、各ラインL1〜L5は個別のものとして扱われているため、頂点もラインごとに格納されている。
【0023】
図3(b)は、統合化の様子を示している。統合化とは、グラフィックスライブラリを共通の設定で用いることができるライン同士を連結する処理であり、この実施例では、線の太さが同じライン同士を連結する。以下の説明では、ラインを構成する頂点のうち、ラインの端に位置するものを「端点」と呼ぶ。
細線で描かれるラインL1、L3を統合化する場合、ラインL1の一方の端点P12と、ラインL3の一方の端点P31を非表示のラインLA1で連結する。非表示のラインLA1の線の太さは、ラインL1、L3と同じである。
非表示のラインLA1は、ラインL1の端点P11、P12、およびラインL3の端点P31,P33のいずれの間を連結してもよいが、本実施例では、連結の距離が最も短くなるよう端点P12と端点P31という組み合わせを選択した。ラインLA1は、端点P12と端点P31とを直接、連結するものとしてもよいが、本実施例では、端点P12に重ねてダミー点PA11、端点P31に重ねてダミー点PA12を生成し、ダミー点PA11、PA12を連結して非表示ラインLA1を定義した。
ダミー点PA11、PA12を設ける理由は、次の通りである。
【0024】
グラフィックスライブラリのライン関数では、ブレンド機能、即ち、第1の頂点から第2の頂点にかけて、徐々に線の色などの表示態様を変化させる機能が備えられている。従って、頂点P12、頂点P31を直接にラインLA1で連結しつつ、この区間を非表示に設定すると、ブレンド機能によって、ラインL1は頂点P11から頂点P12に向けて徐々に透明度が高くなるよう描画される現象が請じる。同様に、ラインL3は頂点P32ら頂点P31に向けて徐々に透明度が高くなるよう描画される。
これに対し、ダミー点PA11、PA12を追加しておけば、ラインLA1を非表示にする場合でも、頂点P11、P12の間、および頂点P31、P32の間は、その影響を受けることなく適正に描画される。厳密な意味では、頂点P12からダミー点PA11に向けてブレンドが行われることになるが、両者は同一の位置にある点なので、ブレンドの結果は、描画されたラインで視認することはできない。
【0025】
同様に、太線で描かれるラインL2、L4、L5を統合化する場合、ラインL2の一方の端点P22と、ラインL4の一方の端点P41とを非表示のラインLA2で連結し、さらに、ラインL4の端点P42とラインL5の端点P51とを非表示のラインLA3で連結する。非表示のラインLA2、LA3の線の太さは、ラインL2,L4、L5と同じである。ラインL2、L4、L5についても、いずれの端点同士を連結してもよい。また、非表示のラインLA2、LA3は、それぞれ端点P22、P41、P42、P51に重ねてダミー点PA21、PA22、PA31、PA32を生成した上で、これらのダミー点同士を連結するようにした。
【0026】
このように統合化処理を行うことにより、細線で描かれるラインL1、L3は、非表示のラインLA1を介して1本のラインに統合化される。また、太線で描かれるラインL2、L4、L5は、非表示のラインLA2、LA3を介して1本のラインに統合化される。
この結果、統合化の前は、ラインL1〜L5を描くために、ライン関数を5回、呼び出す必要があるのに対し、統合化の後は、細線を描くために1回、太線を描くために1回の合計2回、ライン関数を呼び出せば済むこととなり、ライン関数の呼び出し回数を減少させることができ、処理時間の短縮を図ることができる。
ライン関数においては、区間ごとにラインの表示/非表示を制御できるから、それぞれ非表示ラインLA1、LA2、LA3を非表示として描画することにより、ラインL1〜L5を個別に描画する場合と同じ描画結果を得ることができるのである。
【0027】
図3(c)は、ラインの統合化処理をした後のデータの様子を示している。ラインデータは、統合化前は、図3(a)に示したように、ラインL1〜L5のそれぞれで、まとめて頂点を格納していた。この時点では、細線のラインL1、L3と、太線のラインL2、L4、L5は、分類されず、両者が混在する形でデータが格納されている。
統合化した後は、図3(c)に示すように、細線のラインについては、これを1つのライン関数で描画するためには、ラインL1の頂点、非表示のラインLA3の頂点、ラインL3の頂点というようにまとめて格納しておくことが好ましい。また、太線のラインについては、1つのライン関数で描画するため、ラインL2の頂点、非表示のラインLA2の頂点、ラインL4の頂点、非表示のラインLA3の頂点、ラインL5の頂点というようにまとめて格納しておくことが好ましい。
しかし、統合化処理において、このようにデータの格納先を変更していては、処理負荷が多大となる。そこで、本実施例では、図示する通り、頂点の格納先を示すポインタ等を利用するものとした。
【0028】
図の左側には、各ラインL1〜L3の個別インデックスを示した。インデックスとは、図2で示したラインデータの一形式であり、頂点の位置座標を格納するのではなく、頂点を格納するメモリ領域を特定するポインタを格納した形式を言う。例えば、ラインL1については、その頂点P11のメモリ領域を特定するポインタが格納されることになる。同様に、ラインL2については頂点P21、ラインL3については頂点P31のメモリ領域を表すポインタが格納される。
図の右側には、統合化した後のラインの線種別インデックスを示した。実施例では、細線で描画されるライン、太線で描画されるラインをそれぞれ統合化したため、2種類の線種別インデックスが生成されることになる。
【0029】
線種別インデックスの構造は、個別インデックスと同様である。
まず、統合化されたラインに固有の「ID」が付される。
その後、統合化されたラインの形状がポインタによって指示される。細線の場合には、まず、端点となる頂点P11のポインタが格納される。データ点数は、格納されたポインタから連続して読み出すべき頂点数を表す。例えば、細線を形成するラインL1、LA1、L3のデータが連続した領域に格納されている場合には、頂点P11から、7つの頂点を読み出せばよいから、データ点数として7が格納されることになる。
一方、非表示のラインLA1、ラインL3の頂点が、ラインL1の頂点P11、P12と連続した領域と異なる領域に格納されている場合には、それぞれ非表示のラインLA1の頂点PA11を表すポインタ、ラインL3の頂点P31を表すポインタも格納されることになる。
太線の場合も同様に、「ID」に対し、太線の端点となる頂点P21のポインタおよびデータ点数が格納される。太線を構成するラインL2、LA2、L4、L5の頂点が連続していない領域に格納されている場合には、それぞれの頂点を表すポインタも併せて格納されることになる。
【0030】
このように個別インデックスと、線種別インデックスの双方を用意することには、次の利点がある。個別インデックスを参照することによって、それぞれの頂点およびラインを、統合化される前の分離された個別のライン等として把握することができる。また、線種別インデックスを参照することによって、各頂点およびラインを、統合化された一本のラインとして把握することができる。このように個別インデックスと線種別インデックスの双方を用意しておくことにより、頂点およびラインを、個別のラインおよび統合化されたラインという2通りの方法で活用することが可能となる。
【0031】
図3で示した統合化を行うための処理内容について説明する。
図4は、ラインデータ統合処理のフローチャートである。描画データ生成装置100のラインデータ統合部102、およびダミー点追加部106が実行する処理であり、ハードウェア的には、描画データ生成装置100のCPUが実行する処理である。
図4(a)にはフローチャートを示し,図4(b)には処理の例を示した。ここでは、統合化前の原データに存在するラインを実線で表し、統合化する過程で生成される非表示のラインを破線で表している。
【0032】
処理を開始すると、CPUは、処理対象メッシュからラインデータを読み込む(ステップS10)。図2で説明した通り、実施例の原地図データベース104は、メッシュ単位で地図データを格納しているため、統合化処理もメッシュ単位で行うからである。処理対象メッシュは、オペレータが手動で指示してもよいし、予め設定したシーケンスに従うなどの方法で自動的に設定するものとしてもよい。
【0033】
CPUは、読み込んだラインデータを、線種、線幅ごとにグループ化する(ステップS11)。線種、線幅が同じライン同士が統合化の対象となるからである。グループ化の対象は、グラフィックスライブラリのライン関数における描画上の制約に応じて定まる。本実施例では、ライン関数は、線種および線幅の一方または双方が異なるラインは、一度に描くことができないという制約があるため、線種、線幅に基づいてグループ化を行うものとした。例えば、線種が同一であるラインならば線幅が異なっていても一度に描くことができるライン関数を用いる場合には、線種が同じラインをグループ化すればよい。
【0034】
CPUは、生成されたグループのいずれかを処理対象として選択し、処理対象のグループからスタートポイントを選択する(ステップS12)。スタートポイントとは、統合化後のラインの端点となる頂点である。スタートポイントは、処理対象のグループに含まれるラインの端点から任意に選択することができる。本実施例では、メッシュの境界上にある端点を優先的に選択するものとした。メッシュの境界にあるラインから順に連結することにより、統合化したライン全体の長さを抑えやすくなるからである。また、統合化したラインの端点がメッシュの境界にあることにより、後述するメッシュ間の統合化を行いやすくなるという利点もある。
図4(b)の例では、メッシュ境界上の頂点P1がスタートポイントとして選択されている。
【0035】
CPUは、選択したスタートポイントからラインデータをたどり、端点を特定する。そして、こうして特定されたラインデータの端点から最短距離にある端点を検索する(ステップS13)。
図4(b)の例では、スタートポイントP1からラインデータをたどり、端点P2が特定される。端点P2の近傍にある他の端点としては、端点P3,P5、P6が存在する。CPUは、端点P2と端点P3、P5、P6との距離をそれぞれ計算し、端点P2から最短の距離にある端点P3を選択する。この端点P3が非表示のラインで結合すべき端点となる。
【0036】
こうして結合すべき端点が見いだされると、CPUは、結合すべき双方の端点にダミー点を追加し、これらを非表示ラインで結合する(ステップS14)。
図4(b)の例では、端点P2にダミー点PA1、端点P3にダミー点PA2を追加し、両者間を破線で示した非表示ラインで連結している。
【0037】
CPUは、以上のステップS13,S14の処理を全ラインが結合されるまで(ステップS15)、繰り返し実行する。
図4(b)の例では、CPUは、端点P3からラインデータをたどり端点P5にたどり着くと、端点P5から最短距離にある端点P6を選択する(ステップS13)。そして、端点P5にダミー点PA3、端点P6にダミー点P4を追加し、両者間を非表示のラインで結合する。
さらに、CPUは、端点P6からラインデータをたどり端点P7にたどり着くと、端点P7から最短距離にある端点P8を選択する(ステップS13)。そして、端点P7にダミー点PA5、端点P8にダミー点PA6を追加し、両者間を非表示のラインで結合する。この結果、全ラインが1つに結合されたことになるから、ステップS15までの処理が完了することになる。
【0038】
CPUは、グループごとに、以上の処理を繰り返し実行し(ステップS16)、得られた結果を、描画用地図データベース103に格納するとともに、インデックスを生成する(ステップS17)。インデックスの内容は、図3で説明した通りである。
こうして、ラインデータについては、メッシュ内で、線種、線幅ごとに、一本のラインに統合化されており、ライン関数を線種、線幅ごとに1回読み出すだけで描画できる状態となっている。
【0039】
D.経路案内処理:
次に、描画用地図データを活用して地図表示を行う例として、経路案内処理について示す。経路案内処理は、経路探索によって得られた経路を地図表示しながら案内する処理である。経路探索は、経路案内に先立ってサーバ200においてなされている。
図5は、経路案内処理のフローチャートである。これは、主として端末300の表示制御部306、ライン描画データ設定部307によって行われる処理であり、ハードウェア的には端末300のCPUによって行われる処理である。
処理を開始すると、端末300は、経路探索結果、現在位置、渋滞情報、地図表示サイズを入力する(ステップS20)。経路探索結果は、サーバ200から取得することができる。現在位置は、GPSなどのセンサを利用して検出することができる。渋滞情報は、インターネット等を介して取得できる。地図表示サイズは、ユーザからの指定を受け付ける。
そして、端末300は、地図表示に必要となる地図データを読み込む(ステップS21)。本実施例では、端末300は、まず地図情報記憶部305に格納されているデータを読み込む、そして地図を表示するために地図データが不足している場合には、不足分をサーバ200から取得する。
【0040】
次に、端末300は、経路探索結果、現在位置、渋滞情報に基づき、ダミー点の追加および表示色の設定を行う(ステップS22)。探索された経路や渋滞している道路を、通常の道路とは異なる色で表示するための処理である。
図中に処理の概要を示した。頂点P1、P2、P3を通る道路において、頂点P1、P2の間が、探索された経路または渋滞している道路に該当し、色を変更する必要があるものとする。
中段には、ダミー点を追加せずに色の設定を行った場合を例示した。ライン関数のブレンド機能により、頂点P1、P2に表示色を設定すると、頂点P2、P3の間でグラデーションがかかった表示となってしまうのである。例えば、本来、頂点P1、P2、P3を通る道路が赤で表示されるべき道路である場合において、探索された経路であることを表すために、頂点P1、P2間を青に設定したとする。この場合、頂点P1、P2間が青で表示されるのに伴い、頂点P2、P3間では、頂点P2から頂点P3に向けて青から徐々に赤になるように表示されてしまう。
下段には、ダミー点を追加した状態を例示した。原データの頂点P2と同じ位置にダミー点PAを追加し、色の設定を行う。例えば、頂点P1、P2間は青で、頂点PA,P3間は赤で表示するように設定する。こうすることにより、頂点P1、P2間の表示色の影響を受けることなく、頂点PA、P3間を表示することができる。厳密に言えば、頂点P2、PA間でブレンドが行われることになるが、両者は同一の位置にある点であるため、このブレンドは視認されないのである。
【0041】
こうして色の設定を終えると、端末300は、メッシュ間でラインデータを結合する(ステップS23)。
図中に処理の概要を示した。ラインデータ統合処理(図4)によって、各メッシュ内では、線種、線幅が同じラインは、一本に統合化されている。メッシュ1、2内の各ラインは、それぞれメッシュ内で統合化された結果を表している。統合化されたラインには、線種別インデックス1,2が用意され、ラインを構成する頂点は、ポインタによって特定されている。
地図を表示する際には、メッシュをまたがって地図データを利用する場合がある。本実施例では、このような場合に、さらに描画の高速化を図るため、メッシュ間で線種、線幅が共通のライン同士を結合するのである。この処理は、メッシュ内の統合化と同様の方法によって行うことができる。即ち、異なるメッシュに存在する統合化されたラインを線種、線幅に基づいてグループ化し、これらの端点のうち、最短距離にあるもの同士を非表示のラインで結合するのである。
連結する端点同士の位置座標が異なる場合には、ブレンド機能による影響を回避するため、各端点にダミー点を追加した上で結合する。端点同士の位置座標が同一の場合には、ブレンド機能による影響は視認できないから、ダミー点の追加を省略してもよい。
【0042】
以上の前処理を終えると、端末300はディスプレイ300dに地図を表示する(ステップS24)。地図の表示には、グラフィックスライブラリが用いられる。ラインデータを表示する際には、ライン関数を呼び出すことになる。本実施例によれば、メッシュ内のラインが統合化されているだけでなく、さらに、メッシュ間のラインを結合するため、より一層、ライン関数の呼び出し回数を減少させることができ、描画の高速化を図ることができる。
【0043】
E.効果および変形例:
以上で説明した実施例によれば、地図を表示する際に、線種、線幅が共通のラインを統合化することによって、グラフィックスライブラリに備えられたライン関数の呼び出し回数を減らすことができ、表示処理に要する時間を短縮することができる。グラフィックスライブラリを用いて描画を行う場合、ライン関数の呼び出しに少なからず処理時間を要するため、呼び出し回数の減少による処理時間の短縮効果は大きいからである。
本実施例では、統合化の処理を静的処理/動的処理の2段階で行っている。静的処理とは、予めメッシュ単位で統合化処理を行って描画用地図データベースを生成する処理(図4)を意味する。こうすることにより、メッシュ単位の描画速度を速めることができる。動的処理とは、端末300で地図表示時に行う、メッシュ間でのラインデータの結合処理である(図5)。こうすることにより、複数のメッシュにまたがって地図を表示する場合、さらなる描画速度の高速化を図ることができる。
【0044】
以上、本発明の実施例について説明した。本発明は、必ずしも上述した実施例の全ての機能を備えている必要はなく、一部のみを実現するようにしてもよい。また、上述した内容に追加の機能を設けてもよい。
実施例では、経路案内システムを例示したが、本発明は、経路案内と無関係に地図を表示するシステムとして構成することも可能である。また、本発明は、地図に限らず、グラフィックスライブラリを利用して画像を描画する描画装置一般に利用可能である。
本発明は上述の実施例に限定されず、その趣旨を逸脱しない範囲で種々の構成を採ることができることはいうまでもない。例えば、実施例においてハードウェア的に構成されている部分は、ソフトウェア的に構成することもでき、その逆も可能である。
【産業上の利用可能性】
【0045】
本発明は、グラフィックスライブラリを用いた画像の描画速度を向上させるために利用可能である。
【符号の説明】
【0046】
100…描画データ生成装置
101…コマンド入力部
102…ラインデータ統合部
103…描画用地図データベース
104…原地図データベース
105…送受信部
106…ダミー点追加部
200…サーバ
201…送受信部
202…データベース管理部
203…経路探索部
210…地図データベース
211…描画用地図データベース
213…ネットワークデータ
300…端末
300d…ディスプレイ
301…送受信部
302…コマンド入力部
303…位置・通行情報取得部
304…主制御部
305…地図情報記憶部
306…表示制御部
307…ライン描画データ設定部
図1
図2
図3
図4
図5