(57)【特許請求の範囲】
【請求項１】
演算手段からの移動判定要求に基づいて、記憶手段に記憶されたノードと当該ノードを所定の距離移動させた移動先とを結ぶ線と、前記記憶手段に記憶された前記ノードを除く他のノードを含む路線との交差可否を判定し、交差しないなら前記移動先の位置情報を前記ノードの位置情報として前記記憶手段に記憶する移動判定手段と、
前記演算手段からの描画命令に基づいて、前記記憶手段に記憶されている前記ノードの位置情報を含むデータを用いてデフォルメ図を描画する描画手段と
を備えたことを特徴とするデフォルメ地図表示装置。
【請求項２】
前記移動判定手段は、移動元の前記ノードと、当該移動元のノードに隣接するノードと、前記移動先とを頂点とする三角形の領域に、前記他のノードが含まれるか否かに基づいて前記移動元のノードの移動可否を判定することを特徴とする請求項１に記載のデフォルメ地図表示装置。
【請求項３】
前記移動判定手段が行った判定結果を記憶手段に記憶し、前記演算手段は当該判定結果で交差すると判定された路線に含まれるノードを次の移動判定の対象とすることを特徴とする請求項１または２のいずれか１項に記載のデフォルメ地図表示装置。
【請求項４】
前記移動判定手段は、前記移動後のノードを含む路線に路線幅領域を用いた描画データと、前記他のノードを含む路線の路線幅領域との交差可否を判定することを特徴とする請求項１〜３のいずれか１項に記載のデフォルメ地図表示装置。
【請求項５】
前記移動判定手段は、前記移動後のノードを含む路線に表示用に記憶された表示オブジェクトを用いた描画データと、前記他のノードを含む路線の表示オブジェクトとの交差可否を判定することを特徴とする請求項１〜４のいずれか１項に記載のデフォルメ地図表示装置。
【請求項６】
前記移動判定手段は、前記記憶手段のレイヤーデータ領域にされている、複数の路線のレイヤの値の正負によって、所定の路線の交差判定の有効無効を判定することを特徴とする請求項１〜５のいずれか１項に記載のデフォルメ地図表示装置。
【請求項７】
前記移動判定手段は、前記記憶手段のノードデータ領域にされている、路線の複数のノードの値の正負によって、所定の路線の特定のノード間の交差判定の有効無効を判定することを特徴とする請求項１〜６のいずれか１項に記載のデフォルメ地図表示装置。
【請求項８】
前記移動判定手段は、前記記憶手段のレイヤーデータ領域にされている、複数の路線の許容失敗回数によって移動判定の交差可否の否とできる所定の回数を規定し、前記所定の回数を越えた場合には、所定の路線の交差判定を無効と判定することを特徴とする請求項１〜７のいずれか１項に記載のデフォルメ地図表示装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、地図のデフォルメ変形処理するためのデフォルメ地図表示装置に関するものである。
【背景技術】
【０００２】
鉄道の路線図やカーナビゲーションシステムに表示する高速道路図などでは、わかりやすく、見やすい図になるようにデフォルメ変形したデフォルメ路線図を用いる。デフォルメされた路線図や道路地図では、路線や道路同士の位置関係を保ちながら変形処理を行う必要があり、このために、事前に手動でデザインしたデフォルメ路線図や道路地図を用いることが多い。しかしながら、例えばユーザーの地図上の位置に合わせて、路線図や道路地図を変形させる場合には、変形のパターンが無限に存在することから手動でのデザインは不可能である。そこで、例えば特許文献１のように路線図や道路地図の間隔をシステムが自動で調整するものなども存在している。（特許文献１）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００４−３６１８２８公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
従来の技術は、路線間隔を調整するためのものであり、大幅なノードの異動が発生しないものであるため、組込み機器などの低リソースの演算装置でも高速な変形処理が可能であったが、低リソースの演算装置を用いてより多数のノードをリアルタイムに移動させるような処理が困難になるという問題点があった。
【０００５】
この発明は上記のような問題点を解決するためになされたもので、変形処理のうち、試行回数の多い、ノードの移動が行えるかどうかの判定を行う移動判定処理と描画処理を、グラフィックアクセラレータと呼ばれるハードウェアで処理させることによって、より多数のノードの変形と描画処理をリアルタイム処理できるようにすることを目的とする。
【課題を解決するための手段】
【０００６】
本発明は、演算手段からの移動判定要求に基づいて、記憶手段に記憶されたノードと当該ノードを所定の距離移動させた移動先とを結ぶ線と、前記記憶手段に記憶された前記ノードを除く他のノードを含む路線との交差可否を判定し、交差しないなら前記移動先の位置情報を前記ノードの位置情報として前記記憶手段に記憶する移動判定手段と、前記演算手段からの描画命令に基づいて、前記記憶手段に記憶されている前記ノードの位置情報を含むデータを用いてデフォルメ図を描画する描画手段とを備えたものである。
【発明の効果】
【０００７】
本発明によれば、演算手段からの移動判定要求に基づいて、記憶手段に記憶されたノードと当該ノードを所定の距離移動させた移動先とを結ぶ線と、前記記憶手段に記憶された前記ノードを除く他のノードを含む路線との交差可否を判定し、交差しないなら前記移動先の位置情報を前記ノードの位置情報として前記記憶手段に記憶し、前記演算手段からの描画命令に基づいて、前記記憶手段に記憶されている前記ノードの位置情報を含むデータを用いてデフォルメ図を描画するので、変形処理の中で試行回数の多い移動判定処理を演算手段とは別のハードウェアで実行することになり、演算手段の処理負担を軽減することができる。
【図面の簡単な説明】
【０００８】
【図１】ノードとエッジについての説明図。
【図２】実施の形態１におけるデフォルメ地図描画装置の構成図。
【図３】実施の形態１における処理の流れを示したフローチャート。
【図４】実施の形態１における周辺路線探索方法の説明図である。
【図５】実施の形態１における移動判定処理の結果を次のノードの移動に使用する際のフロー図。
【図６】実施の形態１における路線Ａ中のノードＰ３０を点Ｐ３１に移動させる場合の周辺エッジ探索を実施した図。
【図７】実施の形態１における周辺エッジ探索後に路線に属するノードの移動判定を実施した図。
【図８】図７の移動判定結果を利用して、移動判定が不可であった路線ＢのノードＰ３２を点Ｐ３３に移動する場合の移動判定の実施結果。
【図９】図８の移動判定結果を利用した場合の移動判定処理結果。
【図１０】実施の形態１におけるノードとエッジの交差判定による移動判定の処理を示す説明図。
【図１１】実施の形態１におけるノードの三角形内外判定による移動判定の処理を示す説明図。
【図１２】実施の形態１における記憶装手段３００に記憶するデータの構成を示す図。
【図１３】実施の形態１における記憶手段３００に記憶されているデータ構造から、移動判定処理を行う場合のフローチャート。
【図１４】実施の形態１における記憶手段３００のデータ構造からみた、自動描画処理を行うフローチャート。
【図１５】実施の形態１におけるレイヤーデータ領域５０２のデータの構成図の例。
【図１６】実施の形態１における装飾データ領域５０４のデータ形式に基づいて装飾した路線の例。
【図１７】実施の形態１における装飾データ領域５０４のデータ形式の例。
【図１８】１つの路線が路線５２３と路線５２４のように２つの路線に分岐するケースを示す図。
【図１９】実施の形態１におけるノードデータ領域５０５のデータ形式の例。
【図２０】実施の形態１における角に丸みをつけた場合の路線の描画例。
【図２１】実施の形態２における路線６０１に幅ｗ６０２を設定したときに点線で囲まれる路線幅領域６０２について説明した図。
【図２２】実施の形態２における最低離間幅を設定した場合の移動判定の例。
【図２３】図２２のＰ４０ａからＰ４０ｂへノードを移動させた結果を示した図。
【図２４】図２２のＰ４０ａからＰ４０ｃへノードを移動させた結果を示した図。
【図２５】実施の形態２における最低離間幅を設定した場合の描画手段２３０による路線の重なり判定処理のフローチャート。
【図２６】実施の形態２における図２５のＳ６４における重なり判定処理の実行例。
【図２７】実施の形態２における路線幅領域を活用して移動判定を行ない路線上に駅を表示した例。
【図２８】実施の形態３における路線と駅、駅名、路線情報を移動判定に適用した場合の修正前の地図の例。
【図２９】図２８の重なり領域をなくして、修正描画した地図の例。
【図３０】実施の形態４における路線Ａ上のノード７００を点７０１に移動する場合を示す図。
【図３１】実施の形態４における路線Ａ上のノード７００を点７０１に移動する場合を示す路線Ｂのノードデータと路線を示す図。
【図３２】実施の形態５における路線Ａ上のノード７００を点７０１に移動できない場合を示す図。
【図３３】実施の形態５における路線Ａ上のノード７００を点７０１に移動できる場合を示す図。
【図３４】実施の形態６のデフォルメ変形前の路線図からデフォルメ変形後の路線図へ変形するときに変形の中間状態を補完して描画している例を示した図。
【図３５】実施の形態６の変形の中間状態の路線図データの算出方法を示した説明図。
【発明を実施するための形態】
【０００９】
以下の実施の形態を説明するにあたり、ノードとエッジの定義について説明する。
図１は、ノードとエッジについての説明図である。
ノードとは、路線の曲がり角となる点を示しており、ノードとノードの間の線分をエッジとする。
実施の形態１．
実施の形態１では、ノードの移動が行えるかどうかの判定を行う移動判定処理と描画処理を、ハードウェアで処理させるデフォルメ地図描画装置について説明する。
【００１０】
図２は、実施の形態１におけるデフォルメ地図描画装置の構成図である。
図２において、演算手段１００はＣＰＵなどであり、描画命令やノードの変形処理の判定要求を、移動判定描画手段２００に対して行う手段である。
移動判定描画手段２００は、グラフィックアクセラレータなどであり、移動判定処理とグラフィックス描画を行う手段である。移動判定描画手段２００は、演算手段１００とは別のハードウェア（一般的にグラフィックアクセラレータ）で構成されるが、それらの機能が演算手段１００のハードウェア内の別の処理部として構成できてもかまわない。
記憶手段３００は、ＤＲＡＭなど、ノードの座標情報や路線の装飾情報のほか、グラフィックス処理に必要なデータを記憶する手段である。
【００１１】
さらに、移動判定描画手段２００は、移動判定手段２１０と、自動描画手段２２０と、描画手段２３０から構成されている。
移動判定手段２１０は、演算手段１００からの移動判定要求をもとに、ノードの移動が可能かどうかを判定する。
自動描画手段２２０は、演算手段１００からの描画命令をもとづき、記憶手段３００に記録されているノード座標データ、路線の装飾データから描画データを読み出して描画命令として設定し、描画手段２３０に描画命令を実行させる。
描画手段２３０は、自動描画手段２２０からのデフォルメ図の描画命令を実行するほか、演算手段１００からのベクター図形などの描画を実行する。
【００１２】
次に動作について説明する。
図３は、実施の形態１における処理の流れを示したフローチャートとなる。
初期状態として、記憶手段３００に初期ノード座標データおよび路線の装飾情報が展開、記憶されている。
Ｓ１１において、演算手段１００は、記憶手段３００に記憶されているノード座標データをもとに地図変形のためにノードの移動判定命令を移動判定手段２１０に発行する。
Ｓ１２において、移動判定手段２１０は、移動対象のノードが他のノードとの相対的な位置関係が変わらないかどうかの判定を行う。もし、判定結果が、他のノードとの相対的な位置関係が変わったため移動不可の場合は、演算手段１００は、他のノードの移動を試みる。
Ｓ１３  移動判定手段２１０は、他のノードとの相対的な位置関係が変わらず、判定結果が移動可能の場合は、記憶手段３００に記憶されているノード座標データの座標を書き換え、ノードを移動させる。
Ｓ１４において、前述の処理を所望の変形が終了するまで実行する。
Ｓ１５において、全ての移動が終了した場合、演算手段１００が、自動描画手段２２０に対して、描画命令を発行すると、自動描画手段２２０は、描画手段２３０に対して各種パラメータを設定した後、描画手段２３０に描画を実行させる。
【００１３】
以下、Ｓ１２における移動判定描画手段２００の移動判定手段２１０による移動判定処理と、Ｓ１５における自動地図描画処理について詳細に説明する。
まず、Ｓ１２における移動判定処理について説明する。
Ｓ１２における移動判定処理は、周辺エッジ探索と移動判定処理からなる。周辺路線探索は、移動対象ノードの周辺にあるノードとエッジを検出し移動判定の処理範囲を制限する処理であり、移動判定処理は、ノード間の相対位置関係が崩れない移動かどうかの判定をする処理である。
【００１４】
まず、周辺エッジ探索について説明する。
図４は、実施の形態１における周辺エッジ探索方法の説明図である。
移動対象となるノードがノードＰ１であるときに、ノードＰ１を中心とする一辺が２ｒの正方形４００の辺と交差するエッジを検出する。このとき、一辺の長さ２ｒは、ユーザーが指定する任意の長さとすることができる。
エッジ探索範囲は、正方形のほかに長方形や円形など、さまざまな図形が考えられる。
【００１５】
次に、移動判定処理の詳細について説明する。
図５は、実施の形態１における移動判定処理の結果を次のノードの移動に使用する際のフロー図である。
Ｓ２１において、演算手段１００からの移動判定命令を移動判定手段２１０が受信する。
Ｓ２２において、移動判定手段２１０が受信した移動判定命令に基づいて移動判定を行う。具体的な移動判定方法は後述する。
その結果、移動判定対象ノードが移動可能であれば、Ｓ２３において、移動判定手段２１０が、記憶手段３００に記憶されているノード座標データの座標を書き換え、ノードを移動させる。その後、次の対象ノードにおいてＳ２１から繰り返し動作を行う。
また、移動判定対象ノードが移動不可能であった場合、Ｓ２４において、移動判定手段２１０が行った詳細な判定結果を記憶手段３００に書き出す。
Ｓ２５において、演算手段１００は、前述の詳細な判定結果を参照し、Ｓ２６において、他のノード、すなわち移動判定時に交差すると判定されたノードの移動判定対象として再設定する。それ以降はＳ２１から繰り返し動作となる。
従って、演算手段１００の移動判定命令に基づいて移動判定描画手段２００が移動判定と移動判定結果に基づいた描画をおこなうことができる。また、移動判定描画手段２００が、詳細な判定結果を記憶手段３００に書き出すとともに、移動判定対象ノードが移動不可能であった場合に、演算手段１００が、その原因となったノードが同様に移動可能であるかを指示し、移動判定描画手段２００が判定し、移動判定結果に基づいて描画するので、詳細な判定結果を演算手段１００に知らせることができ、演算手段１００は、前述の詳細な判定結果を元に次のノードの移動の判定命令のみでノードの移動判定及び描画をすることができるため、演算手段１００の処理負担を軽減できる。
【００１６】
次に周辺エッジ探索と移動判定処理の具体例について説明する。
図６から図９は、実施の形態１における周辺エッジ探索と移動判定処理の具体例である。
【００１７】
図６は、実施の形態１における路線Ａ中のノードＰ３０を点Ｐ３１に移動させる場合の周辺エッジ探索を実施した図である。矩形状の範囲４０１に含まれる路線を探索した結果を探索路線結果４０２として記憶手段３００に書き出す。これは図３のＳ１２における移動判定処理を行うための周辺エッジ探索に相当する。
【００１８】
次に、図７は、実施の形態１における周辺エッジ探索後に路線に属するノードの移動判定を実施した図である。路線ＡのノードＰ３０を点Ｐ３１に移動させるとき、路線Ａが路線Ｂより左側にあるべきなのに対し、ノードの移動によって、路線Ａが路線Ｂより右側となる区間が存在することとなり、相対的な位置関係が崩れる。反対に路線Ｃおよび、路線Ｄについては、路線Ａとの相対的な位置関係は崩れない。以上の結果を図７の移動判定結果４０３に書き出す。これは、図５におけるＳ２２、Ｓ２３、Ｓ２４に相当する。
【００１９】
図８は、図７の移動判定結果を利用して、移動判定が不可であった路線ＢのノードＰ３２を点Ｐ３３に移動する場合の移動判定の実施結果である。
図７においては、路線ＡのノードＰ３０を点Ｐ３１に移動させるとき、路線Ｂのエッジと交差するとする判定結果となった。演算手段１００では、記憶手段３００に書き出された、図７の移動判定結果４０３を利用し、路線Ａに交差すると判定された路線Ｂに属するノードＰ３２をＰ３３に移動できるかについて移動判定を行う。移動判定結果を利用してとは、前回の移動判定結果で交差すると判定された路線に属するノードを次の移動判定の対象とする、という意味である。これは、図５におけるＳ２５、Ｓ２６、Ｓ２１に相当する。
図８では、図７と同様に実施して、次は、路線Ｃにおいて、移動判定が不可となっている。
【００２０】
図９は、図８の移動判定結果を利用した場合の移動判定処理結果である。図８の移動判定結果を利用して路線ＣのノードＰ３４を点Ｐ３５に移動するかどうかを判定する。この場合は、他の路線との相対位置を変えないので、ノードの移動が実施できる。これは図５におけるＳ２２、Ｓ２３に相当する。
上述の通り、図５のＳ２３に達したあとは、別の移動対象となるノードがある場合は、別の移動対象となるノードを選択する。
過去の判定結果書き出しＳ２４の処理によって、上述の通り、図７、図８など、複数の判定処理が存在する。その場合、それぞれの判定結果を独立して、判定結果として書き出すこともできるし、上書きに設定することもできる。また、判定処理の有効／無効の設定を行うこともできる。
しかし、次のノード選択手法は任意であるが、移動不可能となった判定結果を全て記憶しておいて、前回移動不可能と判定された結果に基づいて移動対象ノードを選択することもできる。この場合は、図８のＰ３２が移動対象ノードとなる。そして移動可能と判別された後、さらに、移動不可能と判別された図７のＰ３０が移動対象ノードとなる。
さらに、前述の判定方法に応じて、独立して詳細な判定結果を書き出せるようにすることで、演算装置が、判定結果を解析して、時には判定内容を無視した変形を許可する柔軟な処理ができる効果もある。
【００２１】
次に図５のＳ２２の移動判定における具体的手法について説明する。
図１０は、実施の形態１におけるノードとエッジの交差判定による移動判定の処理を示す説明図である。
ノードＰ１１を点Ｐ１２に移動させる判定を行う場合、その他の路線のノードＰ１３とＰ１４の間のエッジＬ１とノードＰ１１と点Ｐ１２を結ぶ線分Ｌ２が交わるかどうかを判定する。図１０のようにエッジＬ１１と線分Ｌ２が交わっている場合は、移動不可と判定する。
【００２２】
図１１は、実施の形態１におけるノードの三角形内外判定による移動判定の処理を示す説明図である。
ノードＰ２０を点Ｐ２１に移動させる判定を行う場合、ノードＰ２０の隣接ノードであるＰ２２とノードＰ２０、点Ｐ２１からなる三角形の内部に他の路線のノードＰ２３が存在するかどうかを判定する。図１１のように、他の路線のノードＰ２３が三角形の内部に存在する場合は、移動不可と判定する。
移動判定の処理に関しては、前述の２方式の判定処理を示したが、他にも複数の方法が存在する。当然、前述の２方式以外の判定処理でもかまわない。
【００２３】
次に、記憶手段３００に記憶するデータの構成について説明する。
図１２は、実施の形態１における記憶手段３００に記憶するデータの構成を示す図である。このデータから、ノードの移動判定、路線の自動描画処理を行う。
グローバル設定領域５０１は、全体に適用するデータを設定する領域である。最終的な地図全体に適用する座標変換行列などの設定や路線の数の指定ができる。
レイヤーデータ領域５０２は、路線の描画順序を設定する領域である。設定したレイヤー番号にしたがって、路線を描画するための領域である。
ポインタデータ領域５０３は、装飾データ領域５０４、ノードデータ領域５０５に記憶してある路線ごとの装飾データ、ノードデータの開始位置を指定する領域である。
装飾データ領域５０４は、路線の装飾を設定する領域である。線幅や色などが異なる線を重ねて描画することで路線の装飾を表現する。
ノードデータ領域５０５はノード座標データを記憶している領域である。この領域のデータをもとに、前述の移動判定を行うと同時に、路線の描画座標の指定を行う。
【００２４】
以下に記憶手段３００に記憶するデータの構成例を示す。
図１５は、実施の形態１におけるレイヤーデータ領域５０２のデータの構成図の例である。レイヤーデータ領域５０２には、路線毎のレイヤー番号が割り振られている。レイヤー番号の昇順または降順で路線の描画が実行される。
分岐／合流する路線では、一方の路線の変形処理を行っている最中では、もう一方の路線が移動判定に影響を及ぼすことが考えられる。これを防ぐために、分岐／合流する路線では、一方の路線の変形処理中は、もう一方の路線の移動判定を無視するように前述の設定を行えればよい。
そこで、路線Ｅ５１０のようにレイヤー番号が負の値など特殊な値となるときには、その路線は無効路線として、移動判定や描画をしないように設定することができる。
【００２５】
図１７は、実施の形態１における装飾データ領域５０４のデータ形式の例である。
路線の装飾は線の重ね合わせで表現できるので、１つの路線に対して、複数の線のパラメータを設定できるようにする。装飾パラメータは、路線の幅、色、影の表現のためのぼかし度、影のずれ具合を表現するためのオフセットなどからなる。描画命令時には、路線の装飾データの上から実行していく。自動描画手段２２０が、１つの線のパラメータの設定が終了するたびに、描画命令コマンドを実行し、描画手段２３０が描画する。１つの路線の装飾が終了するときには、路線の描画終了コマンドを明示する。
図１６は、実施の形態１における装飾データ領域５０４のデータ形式に基づいて装飾した路線の例である。影５２０は、ぼかした上にもとの線分から座標をずらした線として表現する。影５２０、太線５２１、細線５２２の順に線を重ね合わせて描画すれば、影つきの装飾をした路線を表現できる。
図１８は、１つの路線が路線５２３と路線５２４のように２つの路線に分岐するケースを示す図である。
装飾データ領域５０４において、図１８のように、２つの路線に分岐するケースもあるため、必ずしも路線１つごとに装飾データを用意する必要はなく、複数の路線が１つの装飾データを使用してもよい。
【００２６】
図１９は、実施の形態１におけるノードデータ領域５０５のデータ形式の例である。
ノードデータは各ノードの座標データから構築される。ノードＤ５３０のように座標値が負の値など特殊な値となるときは、そのノードを無効ノードとして、描画の際無視するよう設定することができる。
前述のノードデータのデータ形式では、ノードデータを記憶手段３００にリニアに配置することができるので、演算装置からは、ノードデータ配列として扱うことができる効果がある。
図２０は、実施の形態１における角に丸みをつけた場合の路線の描画例である。
路線の角に半径Ｒの丸みをつける場合、本来のノード５４０からＲだけ前後のノード方向に進んだ点をオンカーブ点５４１、５４２、ノード５４０をオフカーブ点としたスプラインなどの曲線５４３を描画する。角の丸みＲは、ノードデータ領域５０５等に含むものではなく、別の手段、例えば演算手段１００からのレジスタアクセスなど、によって一律に指定されるものである。
【００２７】
図１３は、実施の形態１における記憶手段３００に記憶されているデータ構造から、移動判定処理を行う場合のフローチャートである。
Ｓ４１において、レイヤーデータ領域５０２から探索に有効である路線を探索する。これは、図６における周辺エッジ探索での路線の抽出に相当し、また、図３のＳ１１における移動判定命令を受けて、Ｓ１２における移動判定処理を行うための周辺エッジ探索に相当する。
Ｓ４２において、ポインタデータ領域５０３から探索結果である路線の対象ノードデータ領域中の各路線のノードデータ開始位置を取得する。
Ｓ４３において、ノードデータ領域５０５から対象となるノード座標データを読み込む。
Ｓ４４において、全路線の判定が終了していないならＳ４１における有効路線探索に戻り、判定を続行し、全路線の判定が終了したならば、判定処理を終了する。
【００２８】
次に、図３におけるＳ１５、自動地図描画処理について詳細に説明する。
移動判定手段２１０によるノードの移動判定、記憶手段３００への移動処理を繰り返しが終了すると、演算手段１００は、自動描画手段２２０に対し、デフォルメ図の描画命令を発行する。描画命令をうけた自動描画手段２２０は、記憶手段３００に記録されている路線の装飾データから装飾パラメータを設定し、移動判定後に再記憶されたノード座標データに沿って、描画手段２３０に対して、路線の描画を実行させる。
【００２９】
図１４は、実施の形態１における記憶手段３００のデータ構造からみた、自動描画処理を行うフローチャートである。
Ｓ５１において、グローバル設定領域５０１で設定した描画設定を有効にする。
Ｓ５２において、演算手段１００が、レイヤーデータ領域５０２で設定したレイヤー順にしたがって下位のレイヤーの路線を探索する。
Ｓ５３において、図１３のＳ４１における探索によって探索した路線のポインタデータを取得する。
Ｓ５４において、自動描画手段２２０は、探索された路線のポインタデータから装飾データ領域５０４中の装飾データを読み込み、パラメータ設定を行う。
Ｓ５５において、Ｓ５４の装飾設定が終了したら、描画手段２３０は、ノードデータ領域５０５から移動判定後に再記憶されたノードデータを含むノードデータを読み込み、ノード座標に従って、路線を描画していく。
Ｓ５６において、Ｓ５５の路線の装飾の終了判定をおこない、路線の装飾が終了していない場合には、Ｓ５４における装飾パラメータ設定処理に戻り、別の装飾処理を実行する。Ｓ５６において、路線の装飾が終了している場合は、Ｓ５７における全路線の描画終了判定を実行する。全路線の描画終了判定で終了してなれば、Ｓ５２にもどり、全路線が描画終了していれば、終了となる。
【００３０】
したがって、本実施の形態では、演算手段１００からの移動判定要求に基づいて記憶手段３００に記憶されたノードについて、デフォルメ図を描画するため、所定の距離の移動による前記記憶手段３００に記憶された他のノードと交差可否について判定する移動判定手段２１０と、演算手段１００からの描画命令に基づいて記憶手段３００に記録されているノード座標データ、路線の装飾データから描画設定を行う自動描画手段２２０と、自動描画手段２２０からの描画命令に基づいてデフォルメ図を描画する描画手段２３０を備えたので、移動判定処理を演算手段１００とは別の描画側の構成が担うことによって、演算手段１００の負荷を減らすとともに、移動判定・描画処理が高速化される。
【００３１】
さらに、移動判定手段２１０が行った移動判定の詳細な結果を記憶手段３００に書き込むことで、演算手段１００がその結果に基づいて交差したノードを次の移動判定に指定することができ、演算手段１００の処理負担を減らすことができる効果が得られる。
【００３２】
実施の形態２．
実施の形態１においては、路線は、幅のない線とみなしたが、本実施の形態においては、線の可読性を高めるために路線に幅を持たせるような場合について説明する。各路線に設定した最低離間幅を、移動判定処理に用いる形態について説明する。他の事項については実施の形態１と同じ機能を有するものである。
【００３３】
図２１は、実施の形態２における、路線６０１に幅ｗ６０２を設定したときに点線で囲まれる路線幅領域６０２について説明した図である。路線６０１に沿って幅ｗ６０２を設定することで、線幅領域６０２が設定される。路線６０１の端点では、線幅領域６０２は半円状に設定される。
【００３４】
図２２は、実施の形態２における最低離間幅を設定した場合の移動判定の例である。線幅領域６１０中のノードＰ４０ａを点Ｐ４０ｂ、点Ｐ４０ｃそれぞれに移動させる場合を考える。
【００３５】
前述の最低離間幅を考慮した移動判定は、描画手段２３０を使用して路線同士の重なりを利用して判定するとよい。
図２５は、実施の形態２における最低離間幅を設定した場合の描画手段２３０による路線の重なり判定処理のフローチャートである。
Ｓ６１において、描画手段２３０が、移動判定対象のノードを端点とするエッジと最低離間幅を有する線幅領域を記憶手段３００の、画面表示用の一次記憶用のアドレスに、描画したデータを記憶する。
次にＳ６２において、移動判定手段２１０は、実施の形態１の図３、Ｓ１２における移動判定処理の一部である周辺エッジ探索と同じ処理を行う。
次に、Ｓ６３において、周辺エッジ探索によって探索された周辺路線のノードを端点とするエッジと最低離間幅を有する線幅領域を、画面表示用の一次記憶用のアドレスに、描画したデータとして記憶手段３００に記憶する。
次に、Ｓ６４において、移動判定手段２１０は、記憶手段３００に記憶された移動対象ノードを含むエッジの最低離間幅を有する線幅領域と、周辺路線のノードを含むエッジの最低離間幅を有する線幅領域とが重なっていないかどうかを判定する。
次に、Ｓ６５において、Ｓ６４の判定結果を書き出す。形式は実施の形態１と同様である。また、移動ＯＫであれば、移動判定手段２１０は、記憶手段３００に移動後のデータを記憶する
最後に、Ｓ６６において、周辺路線、全てについて判定が終了しているかどうかをチェックし、終了していればＳ６３に戻り、終了してれば終了となる。
【００３６】
図２３は、図２２のＰ４０ａからＰ４０ｂへノードを移動させた結果を示した図である。この場合、路線幅領域６１０と路線幅領域６１１の重なる領域がないので、移動可能と判定される。
図２４は、図２２のＰ４０ａからＰ４０ｃへノードを移動させた結果を示した図である。この場合、路線幅領域６１０と路線幅領域６１１との重なり領域６１２が発生するため、移動不可と判定する。
【００３７】
図２６は、実施の形態２における図２５のＳ６４における重なり判定処理の実行例である。
図２５のフローチャートに従って、移動対象ノードを含む路線幅領域６２０を描画する（Ｓ６１）。周辺エッジ探索後（Ｓ６２）周辺路線の路線幅領域６２１を描画する（Ｓ６３）。Ｓ６４において、路線幅領域６２１の描画の際に記憶手段３００から描画先の路線幅領域６２０のデータを読み込めば、先に記憶手段３００描画し記憶した路線幅領域６２０を検出することができる。
【００３８】
特に、鉄道路線図などに適用する場合、路線上に駅を表示する必要がある。
図２７は、実施の形態２における路線幅領域を活用して移動判定を行ない路線上に駅を表示した例である。
路線６３０に駅６３２、路線６３３に駅６３５を描画されている。駅表示は二重円として表現する。駅６３２および、駅６３５は、異なる路線が乗り入れる乗換駅となっており、駅表示の二重円を隣接して表示することで明示的に乗換駅であると表現できる。このとき、路線幅領域を、路線６３０に路線幅６３１、路線６３３に路線幅６３４を駅表示の二重円の直径と同じ幅に設定すれば、駅表示の二重円の描画領域を確保することができる。
【００３９】
したがって、本実施の形態では、演算手段１００からの移動判定要求に基づいて記憶手段３００に記憶されたノードについて、デフォルメ図を描画するため、所定の距離の移動による前記記憶手段３００に記憶された他のノードと交差可否について路線幅領域を用いて判定する移動判定手段２１０と、演算手段１００からの描画命令に基づいて記憶手段３００に記録されているノード座標データ、路線の装飾データから描画設定を行う自動描画手段２２０と、自動描画手段２２０からの描画命令に基づいてデフォルメ図を描画する描画手段２３０を備えたので、移動判定処理を演算手段１００とは別の描画側の構成が担うことによって、演算手段１００の負荷を減らすとともに、描画手段２３０の機能を利用するので、装置全体の規模を抑える効果がある。
【００４０】
実施の形態３．
本実施の形態においては、地図上に記入する文字列などの他の表示オブジェクトについて重なり判定を行うような実施形態について説明する。他の事項については実施の形態１及び２と同じ機能を有するものである。
【００４１】
実施の形態２において、路線幅領域を考慮して重なり判定をする際、図２６において、路線幅領域６２１の描画の際に記憶手段３００から描画先の路線幅領域６２０のデータを読み込めば、先に記憶手段３００描画し記憶した路線幅領域６２０を検出することができることを示した。
これを応用して移動判定手段２１０が重なり判定する際、記憶手段３００描画用に記憶した路線幅領域を検出するだけではなく、あらかじめ、記憶手段３００に描画用に記憶した背景やオブジェクトなど、地図上に記入される文字列を検出することで移動判定手段２１０による表示オブジェクトの重なり検出を行うことができる。
【００４２】
図２８は、実施の形態３における路線と駅、駅名、路線情報を移動判定に適用した場合の修正前の地図の例である。
図２８では、駅名６４０は路線６４１に重なっており、駅名６４２は、駅表示６４３、路線情報表示６４４は路線６４５と表示が重なっている。
そこで、上述したように、実施の形態２と同様に、記憶手段３００に描画用に記憶した描画データからのデータの読み込みで路線情報表示６４４の重なり領域を検出することができる。
図２９は、図２８の重なり領域をなくして、修正描画した地図の例である。
【００４３】
重なり領域６４３は、路線６４５に角の丸みを設定しているために発生する。つまり、角の丸みを描画手段２３０で描画し、従前の技術のように演算手段１００が表示の重なり判定を行う場合、角の丸みを演算手段１００で改めて計算する必要があり、処理に時間がかかる。
そこで、描画手段２３０が描画し、記憶手段３００に描画用に記憶した描画データからの読み込みデータを用いて移動判定手段２１０が重なり判定検出を行えば、演算手段１００による処理が必要なくなるために処理が高速となる効果が得られる。
【００４４】
したがって、本実施の形態では、演算手段１００からの移動判定要求に基づいて記憶手段３００に記憶されたノードについて、デフォルメ図を描画するため、所定の距離の移動による記憶手段３００に表示用に記憶された表示オブジェクトとの重なりを判定する移動判定手段２１０と、演算手段１００からの描画命令に基づいて記憶手段３００に記録されているノード座標データ、路線の装飾データから描画設定を行う自動描画手段２２０と、自動描画手段２２０からの描画命令に基づいてデフォルメ図を描画する描画手段２３０を備えたので、移動判定処理を演算手段１００とは別の描画側の構成が担うことによって、演算手段１００の負荷を減らすとともに、描画手段２３０の機能を利用するので、装置全体の規模を抑える効果がある。
【００４５】
実施の形態４．
実施の形態１において、図１４のようにレイヤーデータで移動判定に利用しない路線を選択することができるが、これをエッジごとに移動判定に利用を行わない形態について説明する。
他の事項については実施の形態１乃至３と同じ機能を有するものである。
【００４６】
図３０は、実施の形態４における路線Ａ上のノード７００を点７０１に移動する場合を示す図である。このままでは、路線Ｂとの位置関係で移動が不可と判定されてしまう。
そこで、記憶手段３００に記憶されるノードデータ領域５０５に示されるノード座標値は絶対値を使用することとし、正負の値は、交差判定の利用有無に当てるよう設定すれば、座標情報を損なうことなく、エッジごとに移動判定への利用有無を識別することができる。
【００４７】
図３１のように、実施の形態４における路線Ａ上のノード７００を点７０１に移動する場合を示す路線Ｂのノードデータと路線を示す図である。
図３１に示すように、路線Ｂノードデータは上から２点が負の表示がされており、この２点の間のエッジは、他の線との重なり判定から除外される。したがって、移動判定手段２１０は、路線Ｂのエッジ７０４を判定から無視して判定を行うので、路線Ａのノード７０２を７０３へ移動判別をＯＫとし、描画手段２３０によって移動させ書き換えることができる。
【００４８】
したがって、本実施の形態では、ノード座標データの座標は絶対値を利用し、正負は、重なり判定利用の有無の識別に利用することで、エッジごとの重なり判定が可能となる。
【００４９】
実施の形態５．
実施の形態１では、図１４の路線Ｅ５１０のようにレイヤーデータ領域５０２の値に応じて描画や移動判定を行わないような設定が可能だが、他の方法にて重要度の低い路線を描画や移動判定を行わないように選択するための形態を示す。この方法により、描画や移動判定の高速化のほか、余分な情報を削除することによって可読性の向上を図ることができる。
他の事項については実施の形態１乃至４と同じ機能を有するものである。
【００５０】
図３２は、実施の形態５における路線Ａ上のノード７００を点７０１に移動できない場合を示す図である。
レイヤーデータ領域５０２には、許容失敗回数表７０２が記憶されており、許容失敗回数表７０２は、個々の路線が、移動判定において、交差する場合に移動判定により移動できないと判断できる回数を示す表であり、個々の路線について数値が設定されている。
図３２に示すように、ノード７００を点７０１に移動させる場合、路線Ｂが移動判定に引っかかる。この際、移動判定手段２１０は、許容失敗回数表７０２に記録された路線Ｂの数値を１つ減算し、レイヤーデータ領域５０２の許容失敗回数表７０２の値を更新する。許容失敗回数表において、数値が０以下となった路線は、描画および移動判定から除外するように設定する。
図３３は、実施の形態５における路線Ａ上のノード７００を点７０１に移動できる場合を示す図である。許容失敗回数表７０２に示される表において、路線Ｂは０であるので、移動判定手段２１０は、ノード７０３から点７０４にノードを移動させた際に路線Ｂ７０５の描画、移動判定から除外し判定するため、図３３のように移動することができる。尚、移動判定から除外された路線については表示しないとする処理を行うこともできる。
【００５１】
以上のようにレイヤーデータ領域５０２に、許容失敗回数表７０２を設定しておき、移動判定手段２１０による移動判定によって移動できないと判定された回数が所定数を越えた場合に、デフォルメ図のその路線については、移動判定から除外し判定するため、路線の描画の優先度を設定することにより、処理対象となる路線が淘汰され、処理速度の向上が図れると同時に、最終的なデフォルメ路線図から余分な情報を削除することができ、ユーザーの可読性が向上する効果が期待できる。
【００５２】
実施の形態６．
実施の形態１では、ノードデータおよび装飾データなどから１つの路線図を描画していたが、次にデフォルメ変形前後のデータから、変形前後を滑らかに移動させるために、前後のデータを補完して中間画像表示するための形態を示す。他の事項については実施の形態１乃至４と同じ機能を有するものである。
【００５３】
図３４は、実施の形態６のデフォルメ変形前の路線図からデフォルメ変形後の路線図へ変形するときに変形の中間状態を補完して描画している例を示した図である。左図において、ノード７０６を点７０７に移動する場合を考える。図中央では、補完した得られた変形の中間状態の路線図を表示している。路線７０８は少し変形した表示になっており、路線７０９は、描画を省略する路線となり、薄い色で描画する。右図は完全に変形が終了した際の図である。
【００５４】
図３５は、実施の形態６の変形の中間状態の路線図データの算出方法を示した説明図である。記憶手段３００に記憶されている、描画手段２３０は、装飾データやノードデータを含むデータについて、変形前と変形後のデータを用意する。描画手段２３０は、変形前のデータから、実際に描画に使用される描画データ７１０をコピーすることで作成する。描画手段２３０が用意した差分データ７１１は、変形後データと変形前の差分のデータに対して、路線を変形動作しながら描画するために、ある変形時間で割ったデータである。１度の画面更新のたびに描画データ７１０に差分データ７１１を加算することで新たな描画データ７１２を得る。描画データ７１２は、実際に表示画面に描画されるデータである。
前述の変形時間は、ユーザー側が指定することができる。
図３３の路線７０９の例のように描画が省略される路線の場合には、変形後の路線の色の透明度を１００％とすることで差分データを得る。
尚、全ての実施の形態である、実施の形態１〜６を組み合わせたデフォルメ地図描画装置を構成することで、全ての効果を享受することができる。
【符号の説明】
【００５５】
１００  演算手段
２００  移動判定描画手段
２１０  移動判定手段
２２０  自動描画手段
２３０  描画手段
３００  記憶手段
５０１  グローバル設定領域
５０２  レイヤーデータ設定領域
５０３  ポイントデータ設定領域
５０４  装飾データ領域
５０５  ノードデータ領域
【図１】
0005741207.tif 000002
【図２】
0005741207.tif 000003
【図３】
0005741207.tif 000004
【図４】
0005741207.tif 000005
【図５】
0005741207.tif 000006
【図６】
0005741207.tif 000007
【図７】
0005741207.tif 000008
【図８】
0005741207.tif 000009
【図９】
0005741207.tif 000010
【図１０】
0005741207.tif 000011
【図１１】
0005741207.tif 000012
【図１２】
0005741207.tif 000013
【図１３】
0005741207.tif 000014
【図１４】
0005741207.tif 000015
【図１５】
0005741207.tif 000016
【図１６】
0005741207.tif 000017
【図１７】
0005741207.tif 000018
【図１８】
0005741207.tif 000019
【図１９】
0005741207.tif 000020
【図２０】
0005741207.tif 000021
【図２１】
0005741207.tif 000022
【図２２】
0005741207.tif 000023
【図２３】
0005741207.tif 000024
【図２４】
0005741207.tif 000025
【図２５】
0005741207.tif 000026
【図２６】
0005741207.tif 000027
【図２７】
0005741207.tif 000028
【図２８】
0005741207.tif 000029
【図２９】
0005741207.tif 000030
【図３０】
0005741207.tif 000031
【図３１】
0005741207.tif 000032
【図３２】
0005741207.tif 000033
【図３３】
0005741207.tif 000034
【図３４】
0005741207.tif 000035
【図３５】
0005741207.tif 000036