地図における文字出力の制御
【課題】 地図の回転方向に合わせて文字を回転させて地図を出力する際に、同一の街区内の文字列の方向がまちまちになることを回避する。
【解決手段】 ナビゲーション装置におけるヘディングアップモードなど、地図の向きを回転させて表示する際に、回転方向に応じて文字列の向きおよび配置を切り換え可能とする。横書きで用意された文字列については、地図を45度回転させた時点で縦書きに切り換え、文字が常に上方向±45度の方向を向くよう制御する。ただし、同一街区内の文字列など、グループ化された複数の文字列については、これらの文字列の代表を設定し、この代表となる文字列の状態に基づいて統一的に切り換え制御を実行する。こうすることにより、グループ内の文字列の向きおよび配置が不統一になることを回避でき、見やすい地図を提供することができる。
【解決手段】 ナビゲーション装置におけるヘディングアップモードなど、地図の向きを回転させて表示する際に、回転方向に応じて文字列の向きおよび配置を切り換え可能とする。横書きで用意された文字列については、地図を45度回転させた時点で縦書きに切り換え、文字が常に上方向±45度の方向を向くよう制御する。ただし、同一街区内の文字列など、グループ化された複数の文字列については、これらの文字列の代表を設定し、この代表となる文字列の状態に基づいて統一的に切り換え制御を実行する。こうすることにより、グループ内の文字列の向きおよび配置が不統一になることを回避でき、見やすい地図を提供することができる。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、地図を表示または印刷する際における、文字出力の制御に関し、地図を種々の方向に回転させて出力する際に、その回転に応じて、見やすい文字配列を実現する制御に関する。
【背景技術】
【0002】
地図データを参照して地図を表示する地図表示装置は、種々の用途に利用される。例えば、いわゆるナビゲーション装置においては、ユーザの現在位置から目的地までの経路を案内するための地図の表示に利用される。この際、北などの一定の方位を上側にして表示させるモードの他、ユーザの進行方向を上側にして表示させるヘディングアップと呼ばれるモードが採られることもある。ヘディングアップでは、ユーザの進行方向によって地図の上下方向が変化するため、これに応じて、地図中に含まれる文字の表示方向、縦書き/横書きという文字配列も変化させる必要がある。
【0003】
ナビゲーション装置のみならず、パーソナルコンピュータなどで地図を表示させる場合においても、ユーザが任意に指定した方位を上側とすることが可能である。こうした表示は、例えば、ユーザが特定の目的地への経路を分かりやすく伝えるなどの意図で地図を作成する場合に要望される。北などの決まった方位を上側にするよりも、駅などの分かりやすい基準点を原点として主要な道路の方向を上側にした方が、把握しやすくなることがあるからである。
【0004】
このように、地図データを利用して地図の表示や印刷などの出力を行う場合、地図データの作成時に規定されている上下方向から回転させた状態での地図出力が要望されることがある。地図を回転させて出力する際に、文字の配列を制御する技術として特許文献1〜3記載の技術が挙げられる。
【0005】
特許文献1は、ナビゲーションシステムにおいて、地図を回転させる際に、回転に応じて、文字の縦書き、横書きの文字配列を使い分けて表示する技術を開示する。特許文献2は、ナビゲーションシステムにおいて、東西南北の基準方位から45度以上ずれた方向に車両が進行すると、その状態が所定時間継続したところで、文字の縦書き、横書きを切り替える技術を開示している。特許文献3は、同様に、進行方向に応じて、文字の配列方向等を切り替える技術を開示している。
【0006】
【特許文献1】特許第2781113号公報
【特許文献2】特開平7−129892号公報
【特許文献3】特開平4−288584号公報
【発明の開示】
【発明が解決しようとする課題】
【0007】
上述の通り、従来、地図を回転させた際に、縦書きや横書きという文字配列の使い分けを文字列ごとに個別に制御する技術は開示されていた。しかし、地図には、種々の地物が種々の配置で含まれており、これら地物との関係で種々の文字列が含まれている。例えば、住宅地図のような詳細な地図では、各家枠ごとに、居住者名などを表す文字列が対応している。これらの文字列には、同一の街区に存在する家枠に対応づけられた文字列など、出力時の統一感が要求されるものがある。従って、同一の街区に存在する家枠に対応づけられた文字列の方向が、家枠ごとに不統一であると、たとえ一つ一つの家枠の文字列が読みやすい場合であっても、その街区全体としては非常に見づらくなってしまうという課題が生じる。特に、同一街区に存在する複数の文字列のうち、一部のみに縦書きから横書きまたはこれと逆の変化が生じると、文字列ごとに文字の向きが90度異なる文字が混在することとなり、地図が非常に見づらくなってしまう。こうした課題は、特に、もとの地図データにおいて、斜めに配置された建物の枠に合わせて斜めに配置された文字などが存在する時に顕著であった。
【0008】
従来技術では、文字列の向きを個別に制御する点は考慮されているものの、文字列間の統一感については十分考慮されてはいなかった。本発明は、こうした課題に鑑み、種々の方向に回転させて地図を出力する際に、複数の文字列間に統一感を持たせ、見やすい地図を実現する技術を提供することを目的とする。
【課題を解決するための手段】
【0009】
本発明は、地図出力用の出力データを生成する地図出力装置として構成することができる。出力データは、地図をコンピュータの画面等に表示させるための表示データ、印刷装置で印刷させるための印刷データなど種々の形式のデータを含む。本明細書において、出力とは、このように画面への表示、印刷などを含む広義の用語として用いる。
【0010】
本発明の地図出力装置は、出力の対象となる地図データを参照する。また、出力時の出力条件を入力する。この出力条件には、地図の回転角の要求値が含まれる。例えば、北を上(基準方向と呼ぶ)として作成された地図データを、西を上として出力する場合には、出力条件として90度の回転角が指定されることになる。地図データを作成する際の基準方向の設定、および回転角の定義は任意に設定可能である。
【0011】
地図出力装置は、この出力条件に応じて地図データに含まれる文字の配列を制御し、その制御結果および地図データを用いて、地図を出力するための出力データを生成する。この際、地図出力装置は、地図データに格納された複数の文字列のうち、少なくとも一部を関連づけ、これら関連づけられた文字列の配列を統一的に制御する。こうすることにより、複数の文字列の文字の配列を統一することができ、見やすい地図を提供することが可能となる。
【0012】
複数の文字列の関連づけは、例えば、地図データを作成するオペレータまたは地図データのユーザが予め設定し、グループとして登録しておくものとしてもよい。こうすることで、統一的に扱われる文字列を柔軟に設定することが可能となる。
【0013】
文字列の関連づけは、予め設定された規則に従って行うものとしてもよい。こうすることにより、オペレータやユーザの手間をかけるまでもなく、見やすい地図を提供することが可能となる。予め設定された規則に従って関連づけを行う場合、地図出力に先立って関連づけを行い、その結果を地図データに登録しておくようにしてもよいし、地図出力の度に関連づけを行うようにしてもよい。上述の態様を組み合わせ、予め設定された規則に従って、設定された関連づけを行った上で、オペレータ等の操作によって、一部の関連づけを解除、追加、または修正可能としてもよい。以下、予め登録されているもの、出力時に判断するものも含み、関連づけられた文字列を、「グループ」「グループ化」と表すこともある。
【0014】
地図出力装置が自動的にグループを作成するための規則は種々の設定が可能である。例えば、文字列に対応する住所を基準として、行政界単位、街区単位などでグループを作成してもよい。また、行政界を表す文字、道路や交差点や地名などを表すための文字、公共利用の施設を表す文字、個人の住居を表す文字など、文字列のカテゴリーごとにグループを作成してもよい。文字を表示する際の文字サイズまたは文字色ごとにグループを作成してもよい。行政界ごとにグループ化する例としては、「○○丁目」や「○○町」などの単位で文字列同士をグループ化する態様が挙げられる。また、行政界を表す文字列同士をグループ化させてもよい。この場合には、文字列のカテゴリーと文字色を組み合わせてグループを定義するようにしてもよい。例えば、「○○町」が赤字で表示され、「○○丁目」が黒字で表示されるような場合には、前者と後者を別々のグループとして定義することができる。ユーザの視認性には、文字色が与える影響も大きいため、このようにカテゴリーと文字色とを考慮してグループ化することにより、見やすさを、より向上させることができる。グループは、例えば、地図の縮尺などに応じて変化するようにしてもよい。
【0015】
上述の他、グループを作成するための規則を以下に例示する。
(1)隣接する複数の街区をまとめてグループ化するようにしてもよい。隣接した街区は文字列の方向が概ねそろっていることが多いため、これらの街区をまとめてグループ化することにより、地図の見やすさを向上させることができる。グループ化する街区の範囲は種々の設定が可能であり、街区内の図心などの代表点同士の距離が所定範囲内にあるものとしてもよいし、街区間を隔てる道路が所定幅以内であるもの同士としてもよい。
【0016】
(2)特定の道路と隣接する街区同士または複数の家枠同士をグループ化するようにしてもよい。この態様によれば、例えば、特定の国道の両側に配置された家屋の文字列の方向を統一的に表示することが可能となる。道路に沿って配置された家屋の形状は、視覚的な統一感を有していることが多いため、これらの文字を統一することにより、見やすさを向上することができる。グループ化する際の基準となる道路は、例えば、道路幅、道路種別、道路の形状(直線か曲線か)などに応じて種々設定することができる。
【0017】
(3)上述の例と同様、一本の道路に沿って隣接して配置された家屋同士をグループ化するようにしてもよい。この態様によれば、ある道路の片側に並ぶ家屋の文字列を統一させることが可能である。例えば、道路を挟んで一方が住宅街、他方が商業施設などのように区画整理がなされているような地域にこの態様を適用すれは、道路の両側では文字列の方向が異なることを許容しつつ、区画ごとに文字列を統一することができ、見やすさを向上させることができる。
【0018】
(4)文字列のカテゴリーに応じてグループ化する一例として、例えば、学校、警察署、郵便局など、施設の種類ごとにグループを作成するようにしてもよい。これらの施設は、比較的広いスペースが確保されていることが多く、文字列も太字で記載されていることが多い。また、これらの施設は地図を見る上で目標物となることも多い。従って、上記態様により、これら施設の文字列を統一することにより、地図の見やすさを向上させることができる。
【0019】
(5)交差点名と信号機記号とをグループ化するようにしてもよい。このように文字列を、関連の深い記号とグループ化するようにしてもよい。こうすることで、地図を見た時に、文字列の意味が理解しやすくなり、見やすさを向上させることができる。
【0020】
(6)複数種類の地図記号をグループ化するようにしてもよい。例えば、郵便局、警察、学校などの施設を表す地図記号を全て一つのグループとしてまとめてもよい。地図記号の種別を問わず、全地図記号を一つのグループとしてまとめるようにしてもよい。地図記号は一般人にとって文字列ほどなじみが深くないのが通常であるため、向きが変わると認識しづらくなる傾向にある。上記態様により、地図記号については表示方向を統一することにより、地図記号が認識しやすくなり、地図の見やすさを向上させることができる。地図記号の他、地図中の各街区に付される街区番号や、各ビルに付されるビルの高さ表示(階数表示)などもそれぞれグループ化してもよい。
【0021】
(7)通行規制を表す記号、例えば一方通行や右左折禁止などの進行方向に対する規制を表す記号については、グループ化の対象から除外することが好ましい。これらの記号は道路に沿って表示された方がその意味を理解しやすい性質のものである。通行規制を表す記号をグループ化から除外することにより、各記号の向きを道路に沿うように個別に制御することが可能となり、地図を見やすくすることができる。
【0022】
このようにグループ化された文字列の文字の配列の制御も種々の方法を適用可能である。例えば、出力条件として指定された回転角の要求値と、文字の向きの比較に基づいて配列を決定するようにしてもよい。例えば、これらのデータから、要求された回転角だけ回転した時点での文字の向きを求め、この向きに基づいて縦書き、横書きの切り替えの要否を判断する方法を採ることができる。複数の文字列については、これらの文字列内の文字の向きを表す代表値(以下、「代表方向」と呼ぶ)を設定し、この代表方向を用いて、上述の判定を行えばよい。こうすることにより、個別の文字列の制御と同様の方法で、複数の文字列を統一的に制御することが可能となる。
【0023】
上述の代表方向は、例えば、グループ化された文字列のいずれかの文字列の方向を用いてもよい。こうすることで、代表方向に設定された文字列に関しては、最も見やすい状態を実現することができ、結果として、グループ内の文字列全体の統一感を向上させることができる。代表方向は、関連づけられた複数の文字列の方向の平均値としてもよいが、この場合は、他の文字列と極端に方向が異なる文字列が存在すると平均値が影響を受け、グループ内の文字列全体の配置切り替えタイミングが不適切になるおそれもある。いずれかの文字列の方向を代表方向として採用すれば、かかる弊害を回避することができる利点がある。
【0024】
代表方向は、例えば、グループ内の文字列の方向の中央値とすることができる。i(iは自然数)番目の文字列(以下、「文字列i」と表す)における方向をAiとし、文字列i,j(jは自然数)の方向Ai,Ajの方向の差違をAijと表す時、中央値はΣjAijが最小値となる文字列iの方向Aiとなる。単純な例では、例えば、5つの文字列の向きを角度の小さい順にA1〜A5と並べると、中央値はA3の向きとなる。こうすることで、グループ全体の統一感を保ちつつ、適切なタイミングでの配置の切り替えが可能となる。
【0025】
代表方向は、複数の文字列に予め設定された規則に従って重みを与えた場合の中央値に基づいて設定してもよい。各文字Ajに与えられる重みをWjとすると、重みを与えた場合の中央値は、ΣjWjAijが最小値となる文字列iの方向Aiとなる。重みは、例えば、文字列が対応づけられている地物の面積、文字列のフォントサイズなどに基づいて設定することができる。こうすることにより、グループ内の主要な文字に基づいて代表方向が決定されやすくなるため、統一感および切り替えタイミングの適切さを向上させることができる。
【0026】
これらの態様を採る場合、グループ内の代表方向を予め地図データに登録しておくようにしてもよい。この場合、地図データは、地図中に表示すべき複数の文字列を格納する文字列データ格納領域と、関連情報格納領域、代表方向情報格納領域を有するデータ構造となる。関連情報格納領域には、複数の文字列の一部を関連づける情報が記録される。例えば、各文字列に対して、グループ固有のIDを付す構造が挙げられる。代表方向情報格納領域には、関連づけられた文字列の代表方向を表す情報が記録される。例えば、代表方向としての角度をグループ単位で登録しておくようにしてもよい。また、グループ内のいずれかの文字列の方向を代表方向として用いる場合には、各文字列に対して代表か否かを表すフラグを付すようにしてもよい。
【0027】
文字配列の制御は、上述のように代表方向を設定する方法に限られない。例えば、グループ内の少なくとも一部の文字列について文字の配列を変化させるべき条件が成立した時点で、グループ内の文字列の配列を統一的に変化させるようにしてもよい。逆に、全ての文字列に対して条件が成立した時に、グループ内の文字列の配置を統一的に変化させるようにしてもよい。これらの方法を用いることにより、例えば、ナビゲーション装置など地図の方向が連続的に変化する場合において、地図の方向が左右に振動するように変化する時に、比較的容易に文字列の配置が頻繁に変化することを回避可能となる。
【0028】
本発明では、地図を連続的に移動させながら表示させてもよい。この場合、先に説明した出力条件としては、地図の出力範囲の指定、および地図の出力範囲を連続的に移動させる移動コマンド、または地図の出力範囲を所定の代表点周りに連続的に回転させる回転コマンドが含まれる。移動コマンドおよび回転コマンドは、いずれか一方のみを含むものとしてもよいし、双方を含んでも良い。後者には、例えば、カーブしている道なりに進行する際に、進行方向が上となる向き、いわゆるヘディングアップで地図を表示する態様が相当する。本発明の地図出力装置は、このような表示を行う際には、出力範囲内の文字列をグループとして関連づけ、グループ内の文字列内の文字の向きの代表値となる代表方向を設定し、この代表方向を用いることで移動コマンドまたは回転コマンドに応じて文字の配列を制御する。こうすることで、出力される文字の配列を統一的に制御することができ、移動中も見やすい地図を提供することができる。
【0029】
上述の制御を行う際、代表方向は、移動コマンドまたは回転コマンドが継続的に入力されている期間は、グループ内の文字列に対して相対的に固定してもよい。こうすることで、地図を移動または回転している間、代表方向が不規則に変動することを回避でき、出力される文字の配列が不規則に変化することを回避できる。
【0030】
地図を回転させる場合、出力範囲が矩形など非円形である時には、回転中心となる代表点から遠方の領域では、回転に伴って出力範囲に含まれる文字が変化していく。仮に、出力範囲全体に含まれる文字の向きに基づいて代表方向を設定すると、出力範囲に含まれる文字が変化するのに伴って、代表方向が不規則に変化することが生じ得る。こうした弊害を回避する観点から、回転コマンドが入力された場合には、代表方向は、例えば、代表点を中心とする出力範囲の内接円に重なる文字列の文字の向きに基づいて設定してもよい。内接円に完全に含まれる文字列を用いても良いし、一部でも含まれる全文字列を用いても良い。こうすることにより、出力範囲の回転中も内接円内の文字は変化しないため、代表方向が不規則に変化することを回避でき、出力される文字の配列が不規則に変化することを回避できる。
【0031】
上述の制御においては、移動コマンドが入力された場合と回転コマンドが入力された場合とで、代表方向の設定方法を切り換えてもよい。例えば、回転コマンド入力時には上述した内接円内の文字列に基づいて代表方向を設定し、移動コマンド入力時には、これと異なる方法で代表方向を設定するようにしてもよい。例えば、移動コマンドの入力が開始された時点で設定された代表方向を固定的に用いるようにしてもよい。こうすることで、移動コマンドおよび回転コマンドのそれぞれに適した方法で代表方向を設定することができ、より見やすい地図を提供することができる。移動コマンド入力時には代表方向を固定する態様には、移動コマンド入力時に文字の配列を制御するための処理負荷を軽減することができ、地図の表示速度を向上させることができる利点もある。この態様において、移動コマンドと回転コマンドの双方が同時に入力された場合は、移動コマンドまたは回転コマンドの一方が入力されたものとして扱っても良いし、移動コマンド入力時および回転コマンド入力時のいずれとも異なる方法で代表方向を決定しても良い。
【0032】
本発明は、上述の地図出力装置としての態様の他、表示装置と組み合わせて地図表示システムとしたり、印刷装置と組み合わせて地図印刷システムとして構成してもよい。また、コンピュータによって地図を出力させる地図出力方法として構成してもよい。更に、地図を出力させるためのコンピュータプログラムとして構成することもでき、このコンピュータプログラムを記録した記録媒体として構成することもできる。ここで、記録媒体としては、フレキシブルディスクやCD−ROM、光磁気ディスク、ICカード、ROMカートリッジ、パンチカード、バーコードなどの符号が印刷された印刷物、コンピュータの内部記憶装置(RAMやROMなどのメモリ)および外部記憶装置等、コンピュータが読取り可能な種々の媒体を利用できる。
【発明を実施するための最良の形態】
【0033】
本発明の実施例について以下の順序で説明する。
A.装置構成:
B.文字表示制御:
B1.代表方向設定処理:
B2.代表方向設定処理(変形例):
B3.文字表示制御処理:
C.第2実施例:
D.変形例:
E.第3実施例:
【0034】
A.装置構成:
図1は実施例としての地図表示システムの構成を示す説明図である。地図表示システムは、ナビゲーション装置100からの指示に従ってサーバ200で経路探索を行い、その結果とともに経路案内用の地図をナビゲーション装置100に提供するシステムである。本実施例の地図表示システムは、サーバ200とナビゲーション装置100とをネットワークNETで接続して構成されている。ネットワークNETは無線通信を利用したネットワークであり、LANやイントラネットのように限定的なものであってもよいし、インターネットのように広域的なものであってもよい。
【0035】
ナビゲーション装置100は、ユーザの操作に応じて、経路探索および地図表示に必要な指示をサーバ200に送信するための機能を奏する。図中には、ナビゲーション装置100の機能ブロックを併せて示した。ナビゲーション装置100は、CPU、RAM、ROMを備えたマイクロコンピュータを制御装置として内蔵しており、このCPUはROMに記憶されたソフトウェアを実行することで、図示する各機能ブロックを構成する。これらの機能ブロックは、このようにソフトウェア的に構成する他、ハードウェア的に構成することも可能である。
【0036】
通信部120は、ネットワークNETを介してサーバ200と通信する機能を奏する。GPS140は、全地球測位システム(Global Positioning System)を利用して、ナビゲーション装置100の現在位置の緯度、経度を検出する。コマンド入力部130は、スイッチ等に対するユーザ操作に基づいて、経路探索や地図表示に関するコマンドを入力する。コマンドとしては、図示した通り、経路探索の目的地の指定、表示モード、ズームなどが挙げられる。表示モードとは地図の表示態様の指定であり、本実施例では、常に北方向を上向きに表示する「ノースアップモード」、進行方向を上向きに表示する「ヘディングアップモード」が含まれる。これらの指定は、サーバ200に送信される。表示制御部150は、ナビゲーション装置100のディスプレイに、上述したコマンド入力用のメニューを表示したり、サーバ200から受信した地図表示データに基づいて地図を表示させたりする。主制御部110は、上述した各機能ブロックを統括制御することで、ナビゲーション装置100の全体機能を制御する。
【0037】
サーバ200は、ナビゲーション装置100からのコマンドに基づいて、種々のデータベースを参照しながら、地図表示するための地図表示データを生成したり、経路探索を行ったりし、その結果をナビゲーション装置100に提供する。図中では、かかる機能のうち、特に地図表示を実現するための機能ブロックおよびデータベースの例を図中に示した。この他、サーバ200には、経路探索を実現するための機能ブロックが備えられるが、その構成は周知であるため図示および詳細な説明を省略する。図中の各機能ブロックは、サーバ200のCPUが実行するコンピュータプログラムによって、ソフトウェア的に構成されるが、ハードウェア的に構成することも可能である。
【0038】
通信部202は、ナビゲーション装置100からのコマンドの受信、およびナビゲーション装置100への地図表示データの送信などを行う。表示データ生成部204は、ナビゲーション装置100から経路案内のコマンドに基づいて、案内用の地図を表示するため、地図表示データを生成する。
【0039】
この地図は、地図DB220を参照して生成される。地図DB220は、地図を表示するためのデータベースであり、背景レイヤ、地物レイヤ、文字レイヤなどの階層に分けて必要なデータを格納している。背景レイヤは、河川などの水系や陸地の形状を記録するレイヤである。地物レイヤは、道路、鉄道、建造物などの地物のポリゴンデータおよび属性データを記録するレイヤである。文字レイヤは、地図上に表示すべき文字情報を記憶するレイヤである。各レイヤは、更に、細かいレイヤに分けて記録されている。
【0040】
地図DB参照部206は、表示対象となる地域のデータを地図DB220から読み込み、表示データ生成部204に受け渡す。また、文字レイヤの情報については、文字表示制御部205に受け渡す。
【0041】
文字表示制御部205は、地図の方向に応じて文字の方向を回転させるとともに、縦書き、横書きの配置を切り替える制御を実行する。この制御は、ヘディングアップモードが指定されている時に有効である。ヘディングアップモードでは、ナビゲーション装置100の進行方向に応じて地図が回転する。従って、このモードでは、ユーザに見やすい地図を提供するため、地図の回転に応じて文字の表示方向等を制御する必要がある。こうすることで、家枠などの地物の表示との干渉を避けて、文字を表示させることが可能となる。以下、このように文字の向きおよび縦書き、横書きの配置を制御することを「文字表示制御」と称する。文字表示制御部205は、この文字表示制御を実行する機能ブロックである。
【0042】
文字表示制御の内容は後述する通り各文字列の表示を個別に制御するだけでなく、グループ化された複数の文字列の統一的な制御も実行する。この統一的な制御には、後述する通り、グループ化された複数の文字列に設定された代表方向が用いられる。代表方向テーブル210は、この代表方向テーブル210を記憶しているテーブルである。
【0043】
B.文字表示制御:
図2は文字表示制御の概要を示す説明図である。破線で囲った部分は地図中の一つの街区を表している。状態M1〜M8は、地図の回転に合わせて、それぞれ同一の街区を回転させて表示した例を示している。例えば、北を上に向けて地図を表示する際には、この街区の表示は、状態M1となる。地図の上方向となる方位を西側に45度回転させ北西が上となる時、街区の表示は状態M2となる。以下、順に45度回転させた時の街区の表示が状態M3〜M8となる。
【0044】
このように地図の上側に来るべき方位に応じて、地図は回転して表示される。以下では、単に地図を図中のθ方向に回転させて表示するという表現で説明を行うが、それぞれの場合における方位との対応関係は上述の通りである。
【0045】
本実施例において、文字の「方向」とは、例えば、図中に示す「MM銀行」の文字のように各文字の上方向Dchを表す。文字の方向は、この上方向Dchと表示時の基準方向(図中のN方向)との角度差Achで定量的に表現するものとする。
【0046】
図2の例は、本実施例で実現すべき文字表示制御の概要を表している。まず、本実施例では、それぞれの文字の方向が、地図の上方向(図のN方向)から±45度の範囲を向くように、文字の方向および縦書き、横書きの配置を制御する。例えば、状態M1では横書きで表示されている「MM銀行」の文字は、この状態では、上述の範囲を向いている。
【0047】
地図を45度回転させて状態M2となった時、「MM銀行」が横書きのままであったとすると、その方向は、N方向から(45+Ach)度の方向を向くことになり、上述の範囲からはずれることになる。これに対し、文字の配置を縦書き切り替えれば、図示するようにN方向から45度以内の方向を達成することができる。厳密には、地図を(45−Ach)度回転させたところで縦書きへの切り替えを行うことになる。
【0048】
以下、同様の考え方により、状態M3では縦書きのまま、状態M4,M5では横書き、状態M6,M7では縦書き、状態M8では横書きにそれぞれ配置を切り替えることによって、N方向から±45度内の方向を達成することができる。
【0049】
しかし、上述の考え方を、街区内のそれぞれの文字列に個別に適用すると、例えば、状態M1においてやや右上がりに書かれている「N時計店」の文字は、45度よりも大きい角度だけ回転させて初めて縦書きに切り替えられることになるから、状態M2では横書きのままで表示されることになる。従って、個別に制御した場合には、状態M2において「MM銀行」は縦書きになっているにも関わらず、「N時計店」は横書きのままとなってしまう。しかもこの時点では配列の相違に伴い、「MM銀行」と「N時計店」の文字列の方向は約90度異なることになる。
【0050】
本実施例では、このように非常に見づらい状態を避けるため、同一街区内の文字の表示を統一的に制御する。例えば、状態M2では、上述の考え方からすれば配置の切り替えは不要であるにも関わらず、図示する通り「N時計店」の配置を縦書きに切り替えるのである。以下、状態M3〜M8においても、それぞれ街区内の文字列は統一的に配置の切り替えを行う。
【0051】
以下、かかる制御を実現するための処理について説明する。本実施例では、同一の街区に存在する文字列を自動的にグループとして扱い、統一的に制御する態様を例にとって説明する。即ち、サーバ200は地図データの各文字列に対応づけられた住所情報から、それぞれの文字列の街区を判定し、同一街区に属する文字列をグループとして扱う。
【0052】
B1.代表方向設定処理:
図3は代表方向設定処理のフローチャートである。サーバ200の文字表示制御部205が他の機能ブロックと協同しながら実現する処理であり、ハードウェア的にはサーバ200のCPUが実行する処理である。
【0053】
この処理は、図2に示したように、グループ化された文字列を統一的に扱うための代表方向を予め決定する処理である。決定された代表方向は、代表方向テーブル210に記録される。図2に示した文字表示制御においては、各街区の文字列に対しては、この代表方向が、図2中のN方向±45度の範囲内になるよう、向きおよび配置の制御がなされることになる。
【0054】
代表方向設定処理が開始されると、サーバ200は対象グループの文字データを入力する(ステップS10)。本実施例では、街区単位でグループを生成する場合を想定しているから、ここではいずれか未処理の街区を選択し、そこに属する複数の文字列を入力することになる。
【0055】
サーバ200は、これらの文字列の方向の中央値を算出する。図中に中央値の算出例を示した。図示する通り、文字列番号0〜6の7通りの文字列が処理対象となっている場合を考える。それぞれの文字列の方向Aiは、図中に示す通り、0度、15度、60度、75度、90度、105度、120度と求まっているものとする。
【0056】
この時、中央値は、文字列番号i,j(jは自然数)の方向Ai,Ajの方向の差違をAijと表す時、ΣjAijが最小値となる方向Aiとなる。図の表に、それぞれAij、およびΣjAijを示した。この例では、A3の方向75度が中央値として求められる。それぞれの文字列の方向に重みを与えない場合には、中央値は、単純に方向Aiを昇順または降順にソートして中央に来る値と一致する。このように、本実施例では、代表方向は、グループ内のいずれかの文字列の方向と一致する。
【0057】
サーバ200は、こうして求められた値を、代表方向として代表方向テーブル210に登録する(ステップS30)。図中に代表方向テーブル210のデータ構造例を示した。この例では、グループ名として「○○市△△町…」という街区名を用い、そこに含まれる文字列および代表方向をテーブル形式で記録するものとした。
【0058】
グループおよび代表方向は、地図の縮尺に応じて設定してもよい。図示する通り、拡大図(表示レベル1)の場合には、街区単位でグループを作成し、表示レベル3などの広域図では市単位でグループを作成するようにしてもよい。代表方向テーブル210には、表示レベルと対応づけて、各グループおよび代表方向を記録しておけばよい。こうすることにより、同一の文字列であっても、表示レベルに応じてグループを変え、回転時の制御態様を切り替えることが可能となる。従って、各表示レベルに応じて見やすい文字表示を実現することが可能となる。
【0059】
代表方向設定処理においては、地図の表示範囲内の文字のみを用いて求めるようにしてもよい。地図の出力時には、地図の中心点位置および表示範囲が指定されるため、サーバ200はこれらの指定に基づいて地図の表示範囲を決定することができ、それぞれの文字がこの表示範囲に含まれるか否かを判定することができる。従って、この表示範囲に含まれる文字のみを用いて代表方向を設定することもできる。この方法は、表示範囲から外れる文字の影響を受けずに代表方向を設定することができる点で、文字表示の制御に適している。また、上述の処理では、表示範囲内の文字をグループとして扱っても良い。こうすることで、表示範囲内の文字全体の表示を統一的に制御でき、見やすい文字表示を実現することが可能となる。
【0060】
図4は文字レイヤのデータ構造例を示す説明図である。代表方向は、代表方向テーブル210に代えて、各文字列の属性データの一つとして記録するようにしてもよい。例えば、図4(a)に示すように、文字レイヤにおいて、文字ID、文字列、文字列を表示すべき基準位置の座標、表示方向(図2参照)、縦書き/横書きの配置などを対応づけて記録し、更に、代表方向を記録する。この例では、ID0とID1の文字列がグループとなっていることは明示的には記録されていない。しかし、両者に共通の代表方向が記録されていることにより、文字表示は統一的に制御することが可能となる。
【0061】
本実施例では、グループの代表方向はいずれかの文字列の方向と一致する。従って、図4(b)に示すように、代表方向を与える文字列を識別するためのフラグを記録するようにしてもよい。図の例では、文字ID00〜ID02の各文字列に対し、フラグ「0」が与えられ、ID03の文字列に対し、フラグ「1」が与えられている。文字IDの上位桁「0」はグループの識別子である。図4(b)によれば、IDの上位桁が「0」である文字列(ID00〜ID03)については、代表方向はフラグが付されたID03の文字列の方向、75度であると認識することが可能となる。グループを識別するための情報には、上述の態様に限らず、種々の方法を採ることが可能であり、例えば、別途、グループIDを設けるようにしてもよい。グループの識別子の桁数を増やしたり、グループIDの数を増やしたりすることにより、表示レベルごとのグループ設定も可能となる。
【0062】
B2.代表方向設定方法(変形例):
図5は変形例としての代表方向設定方法を示す説明図である。図3のステップS20に代わる処理である。図3の例では、グループ内の文字列に対して重みを付すことなく中央値を求めた。これに対し、図5の変形例では、重みを付して中央値を求める例を示す。
【0063】
各文字Ajに与えられる重みをWjとすると、重みを与えた場合の中央値はΣjWjAijが最小値となる文字列iの方向Aiとなる。重みは、例えば、文字列が対応づけられている地物の面積、文字列のフォントサイズなどに基づいて設定することができる。図の例では、文字列番号5,6に重み「2」を与え、その他の文字列に重み「1」を与えた例を示した。表中には、それぞれWjAij、およびΣjWjAijの値を示した。この例では、中央値はA3の75度と求められる。重みWjの設定によって、中央値は変化する。
【0064】
変形例の方法によれば、グループ内での主要な建築物や、大きなフォントで表示される文字などを重視して、中央値を設定することができる。この結果、地図表示時に注意を引きやすい文字列の状態に即して、グループ内の文字列の表示が制御される可能性が高くなり、より違和感の少ない表示を実現することが可能となる。
【0065】
B3.文字表示制御処理:
図6は文字表示制御処理のフローチャートである。地図を表示する際に、文字表示制御部205が実行する処理であり、ハードウェア的にはサーバ200のCPUが実行する処理である。この処理では、図3〜5で設定された代表方向を用いて、地図の回転に応じた文字表示を実現する。
【0066】
処理を開始すると、サーバ200は、地図表示範囲および地図回転方向θを入力する。そして、先に設定した代表方向を用いて、グループごとに文字の向きおよび配置を判定し(ステップS60)、文字表示データを出力する(ステップS70)。サーバ200が、このデータと、地形や地物などを表した背景データ、地物データとを併せて、ナビゲーション装置100に送信すると、ナビゲーション装置100に地図が表示される。
【0067】
図中に文字の向きおよび配置の判定方法を示した。図3〜5に示すように、代表方向が75度と設定されているとする。地図を回転させない時(θ=0度)なら、代表方向の文字は、左側に示す文字列「A3A3A3」のように示されることになる。この状態から、地図をθ方向に回転させると、地図が60度回転し、文字列の方向が135度に来る時に横書きから縦書きへの配置の切り替えが行われることになる。
【0068】
本実施例では、ナビゲーション装置100への地図表示を行う。ヘディングアップモードで表示を行うものとすれば、地図の回転角度は、ユーザ、即ちナビゲーション装置100の進行方向に応じて定まる。従って、回転角度は、単調に増加または減少するとは限らず、振動的に増減することもある。本実施例では、このような増減が生じた場合でも、文字の配置が頻繁に切り替わるのを回避するため、切り替え判定に数度のヒステリシスを設けた。
【0069】
図の右側に、ヒステリシスによる効果を示した。図中のハッチングを付した範囲がヒステリシスの幅である。図の上方に横書き/縦書きの切り替えの様子を示した。例えば、図示するように、地図の回転角度が徐々に増大し、60度をまたいで二度増減を繰り返して、単調に減少する場合を考える。ヒステリシスをもうけない場合には、破線で示すように、60度をまたぐ度に縦書き、横書きの切り替えが行われ、この例では合計4回の切り替えが行われることになる。
【0070】
これに対し、ヒステリシスを設けた場合、回転角が増加する際には、60度を超えても配置の切り替えが行われず、ヒステリシス幅の上限値を超えた時点で、初めて縦書きへの切り替えが行われる。次に減少する際には、60度になっても切り替えは行われず、ヒステリシス幅の下限値を下回った時点で、横書きへの切り替えが行われる。この結果、途中の増減による影響は現れず、縦書き、横書きの切り替えは2回におさまることになる。
【0071】
ヒステリシスの幅は任意に設定可能である。ただし、ヒステリシス幅を大きくすると、縦書き、横書きの切り替えが行われるのが遅れるため、見にくい表示となる可能性がある。ヒステリシス幅は、地図の回転に伴う切り替えの追随性と、頻繁な切り替えの抑制という相反する効果を考慮しつつ、設定することが好ましい。
【0072】
以上で説明した実施例の地図表示システムによれば、地図の回転に合わせて文字の向きおよび配置を制御することができる。この際、街区内の文字列の表示を統一的に制御することができるため、違和感のない見やすい地図を提供することが可能となる。
【0073】
C.第2実施例:
次に、第2実施例について説明する。装置構成は、第1実施例(図1)と概ね同様である。第1実施例では代表方向に基づいて文字表示を制御する例を示したが、第2実施例では代表方向を用いることなく文字表示を制御する例を示す。従って、図1に示した装置構成のうち、代表方向テーブル210については省略可能である。
【0074】
図7は第2実施例としての文字表示制御処理のフローチャートである。サーバ200は処理を開始すると、第1実施例と同様、地図表示範囲および地図回転方向θを入力する(ステップS50A)。
【0075】
サーバ200は、回転方向θに基づいて、文字の向きおよび配置を判定する(ステップS60A)。この判定は、各文字列ごとに行う。従って、この段階では、グループ内の文字列であっても、向きおよび配置は不統一となる可能性がある。
【0076】
次に、サーバ200は文字表示の統一化を行う(ステップS65A)。この処理は、グループ内の文字列について、ステップS60Aの判定結果を評価し、グループ全体の文字列の向きおよび配置を決定する処理である。図中に判定方法を例示した。文字列「A0A0A0」〜「A3A3A3」は同じグループ内の文字列であるとし、ステップS60Aの判定により、文字列「A2A2A2」についてのみ縦書き、横書きの配置の切り換えが必要と判断されたものとする。第2実施例では、このようにグループ内のいずれか一つ以上の文字列について配置の切り換えが必要と判断された時点で、全文字列について配置の切り換えを行うことで表示を統一化する。図中の例では、図示する通り、このグループ内の文字列は、全て配置を切り換えることになる。
【0077】
サーバ200は、こうして設定された文字表示データを出力して(ステップS70A)。文字表示制御処理を終了する。第2実施例の方法によっても、グループ内の文字表示を統一化することができ、違和感のない地図表示を実現することができる。
【0078】
第2実施例の統一化(ステップS65A)を行うための条件は任意に設定可能である。例えば、グループ内の2以上の所定数の文字列について切り換えが必要と判断された時点や、グループ内の全文字列について切り換えが必要と判断された時点で統一化を行うようにしてもよい。
【0079】
D.変形例:
第1および第2実施例では、街区内の文字列をグループとする例を示したが、グループは種々の設定が可能である。例えば、街区の他、文字列に対応する住所を基準として、行政界単位、街区単位などでグループを作成してもよい。また、学校敷地内の棟名称や、テーマパーク敷地内のアトラクション名称などでグループを作成してもよい。また、行政界を表す文字、道路や交差点や地名などを表すための文字、公共利用の施設を表す文字、個人の住居を表す文字など、文字列のカテゴリーごとにグループを作成してもよい。文字を表示する際の文字サイズまたは文字色ごとにグループを作成してもよい。例えば、「○○町」が赤字で表示され、「○○丁目」が黒字で表示されるような場合には、前者と後者を別々のグループとして定義することができる。ユーザの視認性には、文字色が与える影響も大きいため、このようにカテゴリーと文字色とを考慮してグループ化することにより、見やすさを、より向上させることができる。グループは、例えば、地図の縮尺などに応じて変化するようにしてもよい。
【0080】
図8はグループ化を例示する説明図である。この図は、住宅地図の一部を示したものであるが、図の煩雑化を避けるため、それぞれの家枠に記入される文字の表示は省略した。以下、上述の態様の他、図8を参照しながら、種々のグループ化の例について説明する。
【0081】
(1) 隣接する複数の街区をまとめてグループ化するようにしてもよい。隣接した街区は文字列の方向が概ねそろっていることが多いため、これらの街区をまとめてグループ化することにより、地図の見やすさを向上させることができる。例えば、図8中でハッチングを付した街区A、B、Dをグループ化させる態様を採ることができる。グループ化する街区の範囲は種々の設定が可能であり、街区内の図心などを代表点と定義し、この代表点同士の距離が所定範囲内にあるもの同士をグループ化するようにしてもよい。街区間を隔てる道路が所定幅以内であるもの同士としてもよい。道路幅を基準とする態様を採る場合、基準値となる道路幅によっては、図8では、街区A,Bは両者を隔てる道路が狭いため、グループ化されるが、街区Dと街区A,Bとを隔てる道路は幅が広いため、街区Dはグループ化から外れることがある。
【0082】
(2) 特定の道路と隣接する街区同士または複数の家枠同士をグループ化するようにしてもよい。例えば、図8中で、中央通りに沿った街区BとCをグループ化させる態様が該当する。この態様によれば、例えば、特定の国道の両側に配置された家屋の文字列の方向を統一的に表示することが可能となる。道路に沿って配置された家屋の形状は、視覚的な統一感を有していることが多いため、これらの文字を統一することにより、見やすさを向上することができる。グループ化する際の基準となる道路は、例えば、道路幅、道路種別、道路の形状(直線か曲線か)などに応じて種々設定することができる。
【0083】
(3) 上述の例と同様、一本の道路に沿って隣接して配置された家屋同士をグループ化するようにしてもよい。この態様は、街区と無関係にグループを作成する態様である。例えば、図8中で、街区B、D中のうち中央通りに沿った家屋をグループ化する態様が該当する。この態様によれば、ある道路の片側に並ぶ家屋の文字列を統一させることが可能である。
【0084】
グループ化する範囲は、所定幅以上の道路で挟まれた範囲や、同一行政界に属する範囲などの形で規定することができる。例えば、図8中において街区Dの下方に走る道路「晴海通り」でグループを区切るものとすれば、街区B,D内の家屋は同一のグループにまとめられることになる。例えば、道路を挟んで一方が住宅街、他方が商業施設などのように区画整理がなされているような地域にこの態様を適用することにより、道路の両側では文字列の方向が異なることを許容しつつ、区画ごとに文字列を統一し、見やすさを向上させることもできる。例えば、図8中で街区B,Dに属する家屋と、街区Cに属する家屋とを別グループとして定義する態様が相当する。
【0085】
(4) 文字列のカテゴリーに応じてグループ化する一例として、例えば、学校、警察署、郵便局など、施設の種類ごとにグループを作成するようにしてもよい。これらの施設は、比較的広いスペースが確保されていることが多く、文字列も太字で記載されていることが多い。また、これらの施設は地図を見る上で目標物となることも多い。従って、上記態様により、これら施設の文字列を統一することにより、地図の見やすさを向上させることができる。
【0086】
(5) 図8中の領域Eに示すように、交差点名と信号機記号とをグループ化するようにしてもよい。このように文字列を、関連の深い記号とグループ化するようにしてもよい。こうすることで、地図を見た時に、文字列の意味が理解しやすくなり、見やすさを向上させることができる。
【0087】
(6) 図8中の領域F内に示すように、複数種類の地図記号をグループ化するようにしてもよい。図中の領域F内には、郵便局と銀行の地図記号が含まれている。このような各種の地図記号をそれぞれの種類ごとにグループとしてもよいし、種別を問わず全地図記号を一つのグループとしてまとめるようにしてもよい。地図記号は一般人にとって文字列ほどなじみが深くないのが通常であるため、向きが変わると認識しづらくなる傾向にある。上記態様により、地図記号については表示方向を統一することにより、地図記号が認識しやすくなり、地図の見やすさを向上させることができる。地図記号の他、地図中の各街区に付される街区番号(図8中の丸付き数字)や、各ビルに付されるビルの高さ表示(階数表示)などもそれぞれグループ化してもよい。
【0088】
(7) 通行規制を表す記号、一方通行(図8中の記号G)や右左折禁止などの進行方向に対する規制を表す記号については、グループ化の対象から除外することが好ましい。これらの記号は道路に沿って表示された方がその意味を理解しやすい性質のものである。通行規制を表す記号をグループ化から除外することにより、各記号の向きを道路に沿うように個別に制御することが可能となり、地図を見やすくすることができる。
【0089】
また、グループはサーバ200が自動的に設定する他、予めオペレータが手動でグループ化を行い、図3のステップS30に示した形式や図4(b)に示した形式で、グループを登録しておくようにしてもよい。更に、半自動でグループ化する態様を採ることもできる。例えば、道路を基準としてグループ化を行う場合に、基準となる道路をオペレータが選択する方法がこれに該当する。具体例として、図8において、「中央通り」をオペレータが指定することで、これに沿った街区や家屋をグループ化する態様を採ることができる。
【0090】
E.第3実施例:
第3実施例として、地図の表示を連続的に移動または回転させる場合の文字表示の制御について説明する。もっとも、第1実施例および第2実施例で説明した方法も、連続的に回転させる際に適用可能ではある。第3実施例では、これらの表示により適した方法を説明する。第3実施例のハードウェア構成は、第1実施例(図1)と同様である。第3実施例では、表示範囲内の文字列をグループとして統一的に表示制御するものとして説明する。
【0091】
図9は回転時における文字表示の制御方法を示す説明図である。地図の表示方向を回転させるための回転コマンドが連続的に入力されている場合の文字表示の制御方法を示した。図9(a)は回転時の地図の表示範囲およびそこに含まれる文字列を例示している。ある時点で、地図の表示範囲が実線で示す領域MP1であったとする。領域MP1内には、「Q大学」、「HNホテル」、「NGOドーム」、「MM銀行」などの文字列が含まれる。地図が図中の矢印方向にθだけ回転し、表示範囲が破線で示す領域MP2になったとする。この時点では、「NGOドーム」が領域MP2から外れ、代わって「Kビル」、「(株)Z社」などが領域MP2内に含まれることになる。従って、先に図3で示した方法で代表方向となるべき角度を求めると、領域MP1、MP2に含まれる文字列の変化することによって、代表方向も不規則に変化する場合がある。
【0092】
第3実施例では、こうした弊害を回避するため図中にハッチングを付して示した領域CA内の文字列に基づいて代表方向を決定する。領域CAは、表示範囲を回転表示する際の回転中心を中心として表示範囲に内接する円領域である。第3実施例では、表示範囲の重心を中心とする円となっている。地図を回転させた場合でも、この領域CA内の文字列は変化しない。図の例では、領域CA内の文字列「HNホテル」は、地図を回転させる間、常に領域CA内に存在する。従って、領域CA内の文字列に基づいて代表方向を決定することにより、回転中に代表方向が不規則に変化することを回避できるのである。
【0093】
図9(b)は、地図の回転角度に対する代表方向の変化を示すグラフである。細線で示したグラフL1は、図9(a)内の領域MP1、MP2内の文字列に基づいて代表方向を決定した場合の様子を示している。太線で示したグラフL2は、図9(a)内の領域CA内の文字列に基づいて代表方向を決定した場合の様子を示している。領域MP1、MP2内の文字列を用いる場合には、グラフL1に示すように代表方向が不規則に変化するのに対し、領域CA内の文字列を用いる場合には、グラフL2に示す通り代表方向はほぼ一定値となる。
【0094】
図10は移動時における文字表示の制御方法を示す説明図である。移動コマンドに従って、矢印V方向に移動し、表示範囲が領域MP11から領域MP12に移動した場合を考える。表示範囲の中心点はCG11からCG12まで移動する。この時、領域γ内の文字列は、移動前の領域MP11内には含まれているものの、移動後の領域MP12には含まれなくなる。領域α内の文字列は、移動前の領域MP11には含まれないが、移動後の領域MP12には含まれるようになる。領域β内の文字列は、移動前後の領域MP11、MP12の双方に含まれる。このように、移動に伴って、表示範囲に含まれる文字列には変化が生じるため、表示範囲内の文字全体を用いて代表方向を求めると、代表方向が不規則に変化するおそれがある。ただし、移動時には回転時のように恒常的に表示範囲に含まれる領域は存在しない。図中の領域βは、図示した範囲では、移動前後の領域MP11、MP12の双方に含まれているが、更に移動を続ければ、いずれ表示範囲から外れることになる。
【0095】
従って、第3実施例では、移動時には各文字列に乗じる重み値を変化させることで、代表方向の不規則な変化を抑える方法を採った。図中に示すように、領域MP11に対して、図の横軸方向(「x方向」と称する)の位置に応じて重み値Wxを0〜1の範囲で変化させる。両端で重み値Wxを0とし、中央で重み値Wxを1とする。図の例では、重み値Wxを直線状に変化させているが、曲線状に変化させてもよい。また、両端近傍に重み値Wxが0となる区間を設けても良い。また、図の縦軸方向(「y方向」と称する)についても、位置に応じて重み値Wyを0〜1の範囲で変化させる。領域MP11内の文字列については、領域MP11内での位置座標x、yに応じた重み値Wx、Wyの積を用いる。図の例では、x方向、y方向の成分に分けて、重み値Wx、Wyを設定する例を示したが、二次元マップを用いて領域MP11の各位置に対して直接に重み値を与える構成としてもよい。
【0096】
領域MP12についても、同様の重み値Wx、Wyを適用する。図の例では、領域MP11の中心CG11に表示される文字列に関しては、領域MP11を表示する際には、重み値Wx,Wyは共に1となる。領域MP12を表示する際には、点CG11は領域MP12の中心からはずれるため、重み値は1よりもやや小さな値となる。このように、図示した重み値を用いることにより、移動に伴って、各文字列に対応づけられる重み値を徐々に変化させることができる。従って、表示範囲の周辺付近の文字列、即ち移動に伴って表示範囲から外れる直前の文字列や、表示範囲に新たに含まれたばかりの文字列の重み値を小さくすることができる。この結果、表示範囲の中央付近の文字列を重視して代表方向を設定することができるため、代表方向の不規則な変化を抑制することが可能となる。
【0097】
図11は代表方向設定処理のフローチャートである。図9、図10で説明した方法によって移動コマンドまたは回転コマンドに応じて、サーバ200が代表方向を設定するための処理である。
【0098】
この処理では、サーバ200は、地図表示範囲の指定を入力する(ステップS100)。この指定には、地図表示範囲の中心点および表示すべき領域の指定が含まれる。この指定によって、図9に示した領域MP1、図10に示した領域MP11の寸法が決定されることになる。サーバ200は、地図表示を変更するための表示変更コマンドを入力し、その内容に応じて次に示すそれぞれの処理を実行する(ステップS102)。表示変更コマンドは、ユーザがナビゲーション装置100を操作して入力するものとしてもよいし、ユーザの移動に伴ってナビゲーション装置100が自動的に発信するものとしてもよい。
【0099】
表示変更コマンドとして、地図表示を回転させる回転コマンドのみが入力された場合の処理について説明する。この時は、サーバ200は、地図表示範囲の内接円領域を求める(ステップS104)。図9に示した領域CAに相当する。そして、この内接円領域内の文字データを入力する(ステップS106)。サーバ200は、ここで入力した文字データに基づいて図3のステップS20で示した方法で中央値を算出し(ステップS130)、その結果を代表方向として用いる(ステップS132)。
【0100】
表示変更コマンドとして、地図の移動コマンドおよび表示スケールを拡大・縮小させる拡縮コマンドが入力された場合の処理について説明する。移動コマンドおよび拡縮コマンドとともに、回転コマンドが入力された場合も、この処理を実行する。この場合には、サーバ200は、地図表示範囲内の文字データを入力し(ステップS120)、各文字データの表示範囲内の相対的な位置に基づいて重み値Wを設定する(ステップS122)。重み値Wは、図10で示した通り、x方向の位置によって定まる重み値Wxと、y方向の位置によって定まる重み値Wyとの積を用いる。サーバ200は、地図表示範囲内の文字データに基づいて図5で示した方法で中央値を算出し(ステップS130)、その結果を代表方向として用いる(ステップS132)。
【0101】
表示変更コマンドが入力されていない場合、即ち表示の静止が指示されている場合には(ステップS102)、サーバ200は地図表示範囲内の文字データを入力し(ステップS110)、図3のステップS20で示した方法で中央値を算出し(ステップS130)、その結果を代表方向として用いる(ステップS132)。
【0102】
以上の方法で代表方向を設定した後は、第1実施例と同様の方法で文字の配置を制御することができる。このように、第3実施例では、表示変更コマンドに応じた方法で代表方向を設定することができる。従って、地図の移動中または回転中に文字の方向が不規則に変化することを抑制でき、それぞれ見やすい状態で文字を提示することができる。
【0103】
第3実施例では、地図の移動中に重み値を用いて代表方向を設定する例を示した(図10参照)。移動中の代表方向の設定方法は、かかる方法に限らず、例えば、移動コマンドが入力された時点の表示画面内の文字例を用いて代表方向を設定し、移動コマンドが継続的に入力されている限り、この代表方向を固定的に用いるようにしてもよい。こうすることで比較的軽い負荷で代表方向の決定、文字表示の制御を行うことができ、比較的軽い負荷でも、移動速度に十分追随しながら地図を表示させることが可能となる。
【0104】
以上、本発明の種々の実施例について説明したが、本発明はこれらの実施例に限定されず、その趣旨を逸脱しない範囲で種々の構成を採ることができることはいうまでもない。例えば、本実施例では、サーバ200とナビゲーション装置100からなるシステム構成例を示したが、本実施例はオペレータの指示に従って、種々の方向に回転させ、目的に応じた加工を施した地図、いわゆる企画地図を作成する装置として構成することもできる。この場合には、ナビゲーション装置100に代えて、上述の指示を与えるための端末としてネットワーク通信機能を有するパーソナルコンピュータを用いることでシステム構成することができる。サーバ200の機能をパーソナルコンピュータに備え、スタンドアロンで稼働するシステムとして構成してもよい。
【0105】
かかる構成では、地図の出力態様が印刷という形式に代わるのみであり、指定された地図の回転に応じて、文字表示を制御する処理については、実施例で説明した処理をそのまま適用可能である。
【図面の簡単な説明】
【0106】
【図1】実施例としての地図表示システムの構成を示す説明図である。
【図2】文字表示制御の概要を示す説明図である。
【図3】代表方向設定処理のフローチャートである。
【図4】文字レイヤのデータ構造例を示す説明図である。
【図5】変形例としての代表方向設定方法を示す説明図である。
【図6】文字表示制御処理のフローチャートである。
【図7】第2実施例としての文字表示制御処理のフローチャートである。
【図8】グループ化を例示する説明図である。
【図9】回転時における文字表示の制御方法を示す説明図である。
【図10】移動時における文字表示の制御方法を示す説明図である。
【図11】代表方向設定処理のフローチャートである。
【符号の説明】
【0107】
100…ナビゲーション装置
110…主制御部
120…通信部
130…コマンド入力部
140…GPS
150…表示制御部
200…サーバ
202…通信部
204…表示データ生成部
205…文字表示制御部
206…地図DB参照部
210…代表方向テーブル
220…地図DB
【技術分野】
【0001】
本発明は、地図を表示または印刷する際における、文字出力の制御に関し、地図を種々の方向に回転させて出力する際に、その回転に応じて、見やすい文字配列を実現する制御に関する。
【背景技術】
【0002】
地図データを参照して地図を表示する地図表示装置は、種々の用途に利用される。例えば、いわゆるナビゲーション装置においては、ユーザの現在位置から目的地までの経路を案内するための地図の表示に利用される。この際、北などの一定の方位を上側にして表示させるモードの他、ユーザの進行方向を上側にして表示させるヘディングアップと呼ばれるモードが採られることもある。ヘディングアップでは、ユーザの進行方向によって地図の上下方向が変化するため、これに応じて、地図中に含まれる文字の表示方向、縦書き/横書きという文字配列も変化させる必要がある。
【0003】
ナビゲーション装置のみならず、パーソナルコンピュータなどで地図を表示させる場合においても、ユーザが任意に指定した方位を上側とすることが可能である。こうした表示は、例えば、ユーザが特定の目的地への経路を分かりやすく伝えるなどの意図で地図を作成する場合に要望される。北などの決まった方位を上側にするよりも、駅などの分かりやすい基準点を原点として主要な道路の方向を上側にした方が、把握しやすくなることがあるからである。
【0004】
このように、地図データを利用して地図の表示や印刷などの出力を行う場合、地図データの作成時に規定されている上下方向から回転させた状態での地図出力が要望されることがある。地図を回転させて出力する際に、文字の配列を制御する技術として特許文献1〜3記載の技術が挙げられる。
【0005】
特許文献1は、ナビゲーションシステムにおいて、地図を回転させる際に、回転に応じて、文字の縦書き、横書きの文字配列を使い分けて表示する技術を開示する。特許文献2は、ナビゲーションシステムにおいて、東西南北の基準方位から45度以上ずれた方向に車両が進行すると、その状態が所定時間継続したところで、文字の縦書き、横書きを切り替える技術を開示している。特許文献3は、同様に、進行方向に応じて、文字の配列方向等を切り替える技術を開示している。
【0006】
【特許文献1】特許第2781113号公報
【特許文献2】特開平7−129892号公報
【特許文献3】特開平4−288584号公報
【発明の開示】
【発明が解決しようとする課題】
【0007】
上述の通り、従来、地図を回転させた際に、縦書きや横書きという文字配列の使い分けを文字列ごとに個別に制御する技術は開示されていた。しかし、地図には、種々の地物が種々の配置で含まれており、これら地物との関係で種々の文字列が含まれている。例えば、住宅地図のような詳細な地図では、各家枠ごとに、居住者名などを表す文字列が対応している。これらの文字列には、同一の街区に存在する家枠に対応づけられた文字列など、出力時の統一感が要求されるものがある。従って、同一の街区に存在する家枠に対応づけられた文字列の方向が、家枠ごとに不統一であると、たとえ一つ一つの家枠の文字列が読みやすい場合であっても、その街区全体としては非常に見づらくなってしまうという課題が生じる。特に、同一街区に存在する複数の文字列のうち、一部のみに縦書きから横書きまたはこれと逆の変化が生じると、文字列ごとに文字の向きが90度異なる文字が混在することとなり、地図が非常に見づらくなってしまう。こうした課題は、特に、もとの地図データにおいて、斜めに配置された建物の枠に合わせて斜めに配置された文字などが存在する時に顕著であった。
【0008】
従来技術では、文字列の向きを個別に制御する点は考慮されているものの、文字列間の統一感については十分考慮されてはいなかった。本発明は、こうした課題に鑑み、種々の方向に回転させて地図を出力する際に、複数の文字列間に統一感を持たせ、見やすい地図を実現する技術を提供することを目的とする。
【課題を解決するための手段】
【0009】
本発明は、地図出力用の出力データを生成する地図出力装置として構成することができる。出力データは、地図をコンピュータの画面等に表示させるための表示データ、印刷装置で印刷させるための印刷データなど種々の形式のデータを含む。本明細書において、出力とは、このように画面への表示、印刷などを含む広義の用語として用いる。
【0010】
本発明の地図出力装置は、出力の対象となる地図データを参照する。また、出力時の出力条件を入力する。この出力条件には、地図の回転角の要求値が含まれる。例えば、北を上(基準方向と呼ぶ)として作成された地図データを、西を上として出力する場合には、出力条件として90度の回転角が指定されることになる。地図データを作成する際の基準方向の設定、および回転角の定義は任意に設定可能である。
【0011】
地図出力装置は、この出力条件に応じて地図データに含まれる文字の配列を制御し、その制御結果および地図データを用いて、地図を出力するための出力データを生成する。この際、地図出力装置は、地図データに格納された複数の文字列のうち、少なくとも一部を関連づけ、これら関連づけられた文字列の配列を統一的に制御する。こうすることにより、複数の文字列の文字の配列を統一することができ、見やすい地図を提供することが可能となる。
【0012】
複数の文字列の関連づけは、例えば、地図データを作成するオペレータまたは地図データのユーザが予め設定し、グループとして登録しておくものとしてもよい。こうすることで、統一的に扱われる文字列を柔軟に設定することが可能となる。
【0013】
文字列の関連づけは、予め設定された規則に従って行うものとしてもよい。こうすることにより、オペレータやユーザの手間をかけるまでもなく、見やすい地図を提供することが可能となる。予め設定された規則に従って関連づけを行う場合、地図出力に先立って関連づけを行い、その結果を地図データに登録しておくようにしてもよいし、地図出力の度に関連づけを行うようにしてもよい。上述の態様を組み合わせ、予め設定された規則に従って、設定された関連づけを行った上で、オペレータ等の操作によって、一部の関連づけを解除、追加、または修正可能としてもよい。以下、予め登録されているもの、出力時に判断するものも含み、関連づけられた文字列を、「グループ」「グループ化」と表すこともある。
【0014】
地図出力装置が自動的にグループを作成するための規則は種々の設定が可能である。例えば、文字列に対応する住所を基準として、行政界単位、街区単位などでグループを作成してもよい。また、行政界を表す文字、道路や交差点や地名などを表すための文字、公共利用の施設を表す文字、個人の住居を表す文字など、文字列のカテゴリーごとにグループを作成してもよい。文字を表示する際の文字サイズまたは文字色ごとにグループを作成してもよい。行政界ごとにグループ化する例としては、「○○丁目」や「○○町」などの単位で文字列同士をグループ化する態様が挙げられる。また、行政界を表す文字列同士をグループ化させてもよい。この場合には、文字列のカテゴリーと文字色を組み合わせてグループを定義するようにしてもよい。例えば、「○○町」が赤字で表示され、「○○丁目」が黒字で表示されるような場合には、前者と後者を別々のグループとして定義することができる。ユーザの視認性には、文字色が与える影響も大きいため、このようにカテゴリーと文字色とを考慮してグループ化することにより、見やすさを、より向上させることができる。グループは、例えば、地図の縮尺などに応じて変化するようにしてもよい。
【0015】
上述の他、グループを作成するための規則を以下に例示する。
(1)隣接する複数の街区をまとめてグループ化するようにしてもよい。隣接した街区は文字列の方向が概ねそろっていることが多いため、これらの街区をまとめてグループ化することにより、地図の見やすさを向上させることができる。グループ化する街区の範囲は種々の設定が可能であり、街区内の図心などの代表点同士の距離が所定範囲内にあるものとしてもよいし、街区間を隔てる道路が所定幅以内であるもの同士としてもよい。
【0016】
(2)特定の道路と隣接する街区同士または複数の家枠同士をグループ化するようにしてもよい。この態様によれば、例えば、特定の国道の両側に配置された家屋の文字列の方向を統一的に表示することが可能となる。道路に沿って配置された家屋の形状は、視覚的な統一感を有していることが多いため、これらの文字を統一することにより、見やすさを向上することができる。グループ化する際の基準となる道路は、例えば、道路幅、道路種別、道路の形状(直線か曲線か)などに応じて種々設定することができる。
【0017】
(3)上述の例と同様、一本の道路に沿って隣接して配置された家屋同士をグループ化するようにしてもよい。この態様によれば、ある道路の片側に並ぶ家屋の文字列を統一させることが可能である。例えば、道路を挟んで一方が住宅街、他方が商業施設などのように区画整理がなされているような地域にこの態様を適用すれは、道路の両側では文字列の方向が異なることを許容しつつ、区画ごとに文字列を統一することができ、見やすさを向上させることができる。
【0018】
(4)文字列のカテゴリーに応じてグループ化する一例として、例えば、学校、警察署、郵便局など、施設の種類ごとにグループを作成するようにしてもよい。これらの施設は、比較的広いスペースが確保されていることが多く、文字列も太字で記載されていることが多い。また、これらの施設は地図を見る上で目標物となることも多い。従って、上記態様により、これら施設の文字列を統一することにより、地図の見やすさを向上させることができる。
【0019】
(5)交差点名と信号機記号とをグループ化するようにしてもよい。このように文字列を、関連の深い記号とグループ化するようにしてもよい。こうすることで、地図を見た時に、文字列の意味が理解しやすくなり、見やすさを向上させることができる。
【0020】
(6)複数種類の地図記号をグループ化するようにしてもよい。例えば、郵便局、警察、学校などの施設を表す地図記号を全て一つのグループとしてまとめてもよい。地図記号の種別を問わず、全地図記号を一つのグループとしてまとめるようにしてもよい。地図記号は一般人にとって文字列ほどなじみが深くないのが通常であるため、向きが変わると認識しづらくなる傾向にある。上記態様により、地図記号については表示方向を統一することにより、地図記号が認識しやすくなり、地図の見やすさを向上させることができる。地図記号の他、地図中の各街区に付される街区番号や、各ビルに付されるビルの高さ表示(階数表示)などもそれぞれグループ化してもよい。
【0021】
(7)通行規制を表す記号、例えば一方通行や右左折禁止などの進行方向に対する規制を表す記号については、グループ化の対象から除外することが好ましい。これらの記号は道路に沿って表示された方がその意味を理解しやすい性質のものである。通行規制を表す記号をグループ化から除外することにより、各記号の向きを道路に沿うように個別に制御することが可能となり、地図を見やすくすることができる。
【0022】
このようにグループ化された文字列の文字の配列の制御も種々の方法を適用可能である。例えば、出力条件として指定された回転角の要求値と、文字の向きの比較に基づいて配列を決定するようにしてもよい。例えば、これらのデータから、要求された回転角だけ回転した時点での文字の向きを求め、この向きに基づいて縦書き、横書きの切り替えの要否を判断する方法を採ることができる。複数の文字列については、これらの文字列内の文字の向きを表す代表値(以下、「代表方向」と呼ぶ)を設定し、この代表方向を用いて、上述の判定を行えばよい。こうすることにより、個別の文字列の制御と同様の方法で、複数の文字列を統一的に制御することが可能となる。
【0023】
上述の代表方向は、例えば、グループ化された文字列のいずれかの文字列の方向を用いてもよい。こうすることで、代表方向に設定された文字列に関しては、最も見やすい状態を実現することができ、結果として、グループ内の文字列全体の統一感を向上させることができる。代表方向は、関連づけられた複数の文字列の方向の平均値としてもよいが、この場合は、他の文字列と極端に方向が異なる文字列が存在すると平均値が影響を受け、グループ内の文字列全体の配置切り替えタイミングが不適切になるおそれもある。いずれかの文字列の方向を代表方向として採用すれば、かかる弊害を回避することができる利点がある。
【0024】
代表方向は、例えば、グループ内の文字列の方向の中央値とすることができる。i(iは自然数)番目の文字列(以下、「文字列i」と表す)における方向をAiとし、文字列i,j(jは自然数)の方向Ai,Ajの方向の差違をAijと表す時、中央値はΣjAijが最小値となる文字列iの方向Aiとなる。単純な例では、例えば、5つの文字列の向きを角度の小さい順にA1〜A5と並べると、中央値はA3の向きとなる。こうすることで、グループ全体の統一感を保ちつつ、適切なタイミングでの配置の切り替えが可能となる。
【0025】
代表方向は、複数の文字列に予め設定された規則に従って重みを与えた場合の中央値に基づいて設定してもよい。各文字Ajに与えられる重みをWjとすると、重みを与えた場合の中央値は、ΣjWjAijが最小値となる文字列iの方向Aiとなる。重みは、例えば、文字列が対応づけられている地物の面積、文字列のフォントサイズなどに基づいて設定することができる。こうすることにより、グループ内の主要な文字に基づいて代表方向が決定されやすくなるため、統一感および切り替えタイミングの適切さを向上させることができる。
【0026】
これらの態様を採る場合、グループ内の代表方向を予め地図データに登録しておくようにしてもよい。この場合、地図データは、地図中に表示すべき複数の文字列を格納する文字列データ格納領域と、関連情報格納領域、代表方向情報格納領域を有するデータ構造となる。関連情報格納領域には、複数の文字列の一部を関連づける情報が記録される。例えば、各文字列に対して、グループ固有のIDを付す構造が挙げられる。代表方向情報格納領域には、関連づけられた文字列の代表方向を表す情報が記録される。例えば、代表方向としての角度をグループ単位で登録しておくようにしてもよい。また、グループ内のいずれかの文字列の方向を代表方向として用いる場合には、各文字列に対して代表か否かを表すフラグを付すようにしてもよい。
【0027】
文字配列の制御は、上述のように代表方向を設定する方法に限られない。例えば、グループ内の少なくとも一部の文字列について文字の配列を変化させるべき条件が成立した時点で、グループ内の文字列の配列を統一的に変化させるようにしてもよい。逆に、全ての文字列に対して条件が成立した時に、グループ内の文字列の配置を統一的に変化させるようにしてもよい。これらの方法を用いることにより、例えば、ナビゲーション装置など地図の方向が連続的に変化する場合において、地図の方向が左右に振動するように変化する時に、比較的容易に文字列の配置が頻繁に変化することを回避可能となる。
【0028】
本発明では、地図を連続的に移動させながら表示させてもよい。この場合、先に説明した出力条件としては、地図の出力範囲の指定、および地図の出力範囲を連続的に移動させる移動コマンド、または地図の出力範囲を所定の代表点周りに連続的に回転させる回転コマンドが含まれる。移動コマンドおよび回転コマンドは、いずれか一方のみを含むものとしてもよいし、双方を含んでも良い。後者には、例えば、カーブしている道なりに進行する際に、進行方向が上となる向き、いわゆるヘディングアップで地図を表示する態様が相当する。本発明の地図出力装置は、このような表示を行う際には、出力範囲内の文字列をグループとして関連づけ、グループ内の文字列内の文字の向きの代表値となる代表方向を設定し、この代表方向を用いることで移動コマンドまたは回転コマンドに応じて文字の配列を制御する。こうすることで、出力される文字の配列を統一的に制御することができ、移動中も見やすい地図を提供することができる。
【0029】
上述の制御を行う際、代表方向は、移動コマンドまたは回転コマンドが継続的に入力されている期間は、グループ内の文字列に対して相対的に固定してもよい。こうすることで、地図を移動または回転している間、代表方向が不規則に変動することを回避でき、出力される文字の配列が不規則に変化することを回避できる。
【0030】
地図を回転させる場合、出力範囲が矩形など非円形である時には、回転中心となる代表点から遠方の領域では、回転に伴って出力範囲に含まれる文字が変化していく。仮に、出力範囲全体に含まれる文字の向きに基づいて代表方向を設定すると、出力範囲に含まれる文字が変化するのに伴って、代表方向が不規則に変化することが生じ得る。こうした弊害を回避する観点から、回転コマンドが入力された場合には、代表方向は、例えば、代表点を中心とする出力範囲の内接円に重なる文字列の文字の向きに基づいて設定してもよい。内接円に完全に含まれる文字列を用いても良いし、一部でも含まれる全文字列を用いても良い。こうすることにより、出力範囲の回転中も内接円内の文字は変化しないため、代表方向が不規則に変化することを回避でき、出力される文字の配列が不規則に変化することを回避できる。
【0031】
上述の制御においては、移動コマンドが入力された場合と回転コマンドが入力された場合とで、代表方向の設定方法を切り換えてもよい。例えば、回転コマンド入力時には上述した内接円内の文字列に基づいて代表方向を設定し、移動コマンド入力時には、これと異なる方法で代表方向を設定するようにしてもよい。例えば、移動コマンドの入力が開始された時点で設定された代表方向を固定的に用いるようにしてもよい。こうすることで、移動コマンドおよび回転コマンドのそれぞれに適した方法で代表方向を設定することができ、より見やすい地図を提供することができる。移動コマンド入力時には代表方向を固定する態様には、移動コマンド入力時に文字の配列を制御するための処理負荷を軽減することができ、地図の表示速度を向上させることができる利点もある。この態様において、移動コマンドと回転コマンドの双方が同時に入力された場合は、移動コマンドまたは回転コマンドの一方が入力されたものとして扱っても良いし、移動コマンド入力時および回転コマンド入力時のいずれとも異なる方法で代表方向を決定しても良い。
【0032】
本発明は、上述の地図出力装置としての態様の他、表示装置と組み合わせて地図表示システムとしたり、印刷装置と組み合わせて地図印刷システムとして構成してもよい。また、コンピュータによって地図を出力させる地図出力方法として構成してもよい。更に、地図を出力させるためのコンピュータプログラムとして構成することもでき、このコンピュータプログラムを記録した記録媒体として構成することもできる。ここで、記録媒体としては、フレキシブルディスクやCD−ROM、光磁気ディスク、ICカード、ROMカートリッジ、パンチカード、バーコードなどの符号が印刷された印刷物、コンピュータの内部記憶装置(RAMやROMなどのメモリ)および外部記憶装置等、コンピュータが読取り可能な種々の媒体を利用できる。
【発明を実施するための最良の形態】
【0033】
本発明の実施例について以下の順序で説明する。
A.装置構成:
B.文字表示制御:
B1.代表方向設定処理:
B2.代表方向設定処理(変形例):
B3.文字表示制御処理:
C.第2実施例:
D.変形例:
E.第3実施例:
【0034】
A.装置構成:
図1は実施例としての地図表示システムの構成を示す説明図である。地図表示システムは、ナビゲーション装置100からの指示に従ってサーバ200で経路探索を行い、その結果とともに経路案内用の地図をナビゲーション装置100に提供するシステムである。本実施例の地図表示システムは、サーバ200とナビゲーション装置100とをネットワークNETで接続して構成されている。ネットワークNETは無線通信を利用したネットワークであり、LANやイントラネットのように限定的なものであってもよいし、インターネットのように広域的なものであってもよい。
【0035】
ナビゲーション装置100は、ユーザの操作に応じて、経路探索および地図表示に必要な指示をサーバ200に送信するための機能を奏する。図中には、ナビゲーション装置100の機能ブロックを併せて示した。ナビゲーション装置100は、CPU、RAM、ROMを備えたマイクロコンピュータを制御装置として内蔵しており、このCPUはROMに記憶されたソフトウェアを実行することで、図示する各機能ブロックを構成する。これらの機能ブロックは、このようにソフトウェア的に構成する他、ハードウェア的に構成することも可能である。
【0036】
通信部120は、ネットワークNETを介してサーバ200と通信する機能を奏する。GPS140は、全地球測位システム(Global Positioning System)を利用して、ナビゲーション装置100の現在位置の緯度、経度を検出する。コマンド入力部130は、スイッチ等に対するユーザ操作に基づいて、経路探索や地図表示に関するコマンドを入力する。コマンドとしては、図示した通り、経路探索の目的地の指定、表示モード、ズームなどが挙げられる。表示モードとは地図の表示態様の指定であり、本実施例では、常に北方向を上向きに表示する「ノースアップモード」、進行方向を上向きに表示する「ヘディングアップモード」が含まれる。これらの指定は、サーバ200に送信される。表示制御部150は、ナビゲーション装置100のディスプレイに、上述したコマンド入力用のメニューを表示したり、サーバ200から受信した地図表示データに基づいて地図を表示させたりする。主制御部110は、上述した各機能ブロックを統括制御することで、ナビゲーション装置100の全体機能を制御する。
【0037】
サーバ200は、ナビゲーション装置100からのコマンドに基づいて、種々のデータベースを参照しながら、地図表示するための地図表示データを生成したり、経路探索を行ったりし、その結果をナビゲーション装置100に提供する。図中では、かかる機能のうち、特に地図表示を実現するための機能ブロックおよびデータベースの例を図中に示した。この他、サーバ200には、経路探索を実現するための機能ブロックが備えられるが、その構成は周知であるため図示および詳細な説明を省略する。図中の各機能ブロックは、サーバ200のCPUが実行するコンピュータプログラムによって、ソフトウェア的に構成されるが、ハードウェア的に構成することも可能である。
【0038】
通信部202は、ナビゲーション装置100からのコマンドの受信、およびナビゲーション装置100への地図表示データの送信などを行う。表示データ生成部204は、ナビゲーション装置100から経路案内のコマンドに基づいて、案内用の地図を表示するため、地図表示データを生成する。
【0039】
この地図は、地図DB220を参照して生成される。地図DB220は、地図を表示するためのデータベースであり、背景レイヤ、地物レイヤ、文字レイヤなどの階層に分けて必要なデータを格納している。背景レイヤは、河川などの水系や陸地の形状を記録するレイヤである。地物レイヤは、道路、鉄道、建造物などの地物のポリゴンデータおよび属性データを記録するレイヤである。文字レイヤは、地図上に表示すべき文字情報を記憶するレイヤである。各レイヤは、更に、細かいレイヤに分けて記録されている。
【0040】
地図DB参照部206は、表示対象となる地域のデータを地図DB220から読み込み、表示データ生成部204に受け渡す。また、文字レイヤの情報については、文字表示制御部205に受け渡す。
【0041】
文字表示制御部205は、地図の方向に応じて文字の方向を回転させるとともに、縦書き、横書きの配置を切り替える制御を実行する。この制御は、ヘディングアップモードが指定されている時に有効である。ヘディングアップモードでは、ナビゲーション装置100の進行方向に応じて地図が回転する。従って、このモードでは、ユーザに見やすい地図を提供するため、地図の回転に応じて文字の表示方向等を制御する必要がある。こうすることで、家枠などの地物の表示との干渉を避けて、文字を表示させることが可能となる。以下、このように文字の向きおよび縦書き、横書きの配置を制御することを「文字表示制御」と称する。文字表示制御部205は、この文字表示制御を実行する機能ブロックである。
【0042】
文字表示制御の内容は後述する通り各文字列の表示を個別に制御するだけでなく、グループ化された複数の文字列の統一的な制御も実行する。この統一的な制御には、後述する通り、グループ化された複数の文字列に設定された代表方向が用いられる。代表方向テーブル210は、この代表方向テーブル210を記憶しているテーブルである。
【0043】
B.文字表示制御:
図2は文字表示制御の概要を示す説明図である。破線で囲った部分は地図中の一つの街区を表している。状態M1〜M8は、地図の回転に合わせて、それぞれ同一の街区を回転させて表示した例を示している。例えば、北を上に向けて地図を表示する際には、この街区の表示は、状態M1となる。地図の上方向となる方位を西側に45度回転させ北西が上となる時、街区の表示は状態M2となる。以下、順に45度回転させた時の街区の表示が状態M3〜M8となる。
【0044】
このように地図の上側に来るべき方位に応じて、地図は回転して表示される。以下では、単に地図を図中のθ方向に回転させて表示するという表現で説明を行うが、それぞれの場合における方位との対応関係は上述の通りである。
【0045】
本実施例において、文字の「方向」とは、例えば、図中に示す「MM銀行」の文字のように各文字の上方向Dchを表す。文字の方向は、この上方向Dchと表示時の基準方向(図中のN方向)との角度差Achで定量的に表現するものとする。
【0046】
図2の例は、本実施例で実現すべき文字表示制御の概要を表している。まず、本実施例では、それぞれの文字の方向が、地図の上方向(図のN方向)から±45度の範囲を向くように、文字の方向および縦書き、横書きの配置を制御する。例えば、状態M1では横書きで表示されている「MM銀行」の文字は、この状態では、上述の範囲を向いている。
【0047】
地図を45度回転させて状態M2となった時、「MM銀行」が横書きのままであったとすると、その方向は、N方向から(45+Ach)度の方向を向くことになり、上述の範囲からはずれることになる。これに対し、文字の配置を縦書き切り替えれば、図示するようにN方向から45度以内の方向を達成することができる。厳密には、地図を(45−Ach)度回転させたところで縦書きへの切り替えを行うことになる。
【0048】
以下、同様の考え方により、状態M3では縦書きのまま、状態M4,M5では横書き、状態M6,M7では縦書き、状態M8では横書きにそれぞれ配置を切り替えることによって、N方向から±45度内の方向を達成することができる。
【0049】
しかし、上述の考え方を、街区内のそれぞれの文字列に個別に適用すると、例えば、状態M1においてやや右上がりに書かれている「N時計店」の文字は、45度よりも大きい角度だけ回転させて初めて縦書きに切り替えられることになるから、状態M2では横書きのままで表示されることになる。従って、個別に制御した場合には、状態M2において「MM銀行」は縦書きになっているにも関わらず、「N時計店」は横書きのままとなってしまう。しかもこの時点では配列の相違に伴い、「MM銀行」と「N時計店」の文字列の方向は約90度異なることになる。
【0050】
本実施例では、このように非常に見づらい状態を避けるため、同一街区内の文字の表示を統一的に制御する。例えば、状態M2では、上述の考え方からすれば配置の切り替えは不要であるにも関わらず、図示する通り「N時計店」の配置を縦書きに切り替えるのである。以下、状態M3〜M8においても、それぞれ街区内の文字列は統一的に配置の切り替えを行う。
【0051】
以下、かかる制御を実現するための処理について説明する。本実施例では、同一の街区に存在する文字列を自動的にグループとして扱い、統一的に制御する態様を例にとって説明する。即ち、サーバ200は地図データの各文字列に対応づけられた住所情報から、それぞれの文字列の街区を判定し、同一街区に属する文字列をグループとして扱う。
【0052】
B1.代表方向設定処理:
図3は代表方向設定処理のフローチャートである。サーバ200の文字表示制御部205が他の機能ブロックと協同しながら実現する処理であり、ハードウェア的にはサーバ200のCPUが実行する処理である。
【0053】
この処理は、図2に示したように、グループ化された文字列を統一的に扱うための代表方向を予め決定する処理である。決定された代表方向は、代表方向テーブル210に記録される。図2に示した文字表示制御においては、各街区の文字列に対しては、この代表方向が、図2中のN方向±45度の範囲内になるよう、向きおよび配置の制御がなされることになる。
【0054】
代表方向設定処理が開始されると、サーバ200は対象グループの文字データを入力する(ステップS10)。本実施例では、街区単位でグループを生成する場合を想定しているから、ここではいずれか未処理の街区を選択し、そこに属する複数の文字列を入力することになる。
【0055】
サーバ200は、これらの文字列の方向の中央値を算出する。図中に中央値の算出例を示した。図示する通り、文字列番号0〜6の7通りの文字列が処理対象となっている場合を考える。それぞれの文字列の方向Aiは、図中に示す通り、0度、15度、60度、75度、90度、105度、120度と求まっているものとする。
【0056】
この時、中央値は、文字列番号i,j(jは自然数)の方向Ai,Ajの方向の差違をAijと表す時、ΣjAijが最小値となる方向Aiとなる。図の表に、それぞれAij、およびΣjAijを示した。この例では、A3の方向75度が中央値として求められる。それぞれの文字列の方向に重みを与えない場合には、中央値は、単純に方向Aiを昇順または降順にソートして中央に来る値と一致する。このように、本実施例では、代表方向は、グループ内のいずれかの文字列の方向と一致する。
【0057】
サーバ200は、こうして求められた値を、代表方向として代表方向テーブル210に登録する(ステップS30)。図中に代表方向テーブル210のデータ構造例を示した。この例では、グループ名として「○○市△△町…」という街区名を用い、そこに含まれる文字列および代表方向をテーブル形式で記録するものとした。
【0058】
グループおよび代表方向は、地図の縮尺に応じて設定してもよい。図示する通り、拡大図(表示レベル1)の場合には、街区単位でグループを作成し、表示レベル3などの広域図では市単位でグループを作成するようにしてもよい。代表方向テーブル210には、表示レベルと対応づけて、各グループおよび代表方向を記録しておけばよい。こうすることにより、同一の文字列であっても、表示レベルに応じてグループを変え、回転時の制御態様を切り替えることが可能となる。従って、各表示レベルに応じて見やすい文字表示を実現することが可能となる。
【0059】
代表方向設定処理においては、地図の表示範囲内の文字のみを用いて求めるようにしてもよい。地図の出力時には、地図の中心点位置および表示範囲が指定されるため、サーバ200はこれらの指定に基づいて地図の表示範囲を決定することができ、それぞれの文字がこの表示範囲に含まれるか否かを判定することができる。従って、この表示範囲に含まれる文字のみを用いて代表方向を設定することもできる。この方法は、表示範囲から外れる文字の影響を受けずに代表方向を設定することができる点で、文字表示の制御に適している。また、上述の処理では、表示範囲内の文字をグループとして扱っても良い。こうすることで、表示範囲内の文字全体の表示を統一的に制御でき、見やすい文字表示を実現することが可能となる。
【0060】
図4は文字レイヤのデータ構造例を示す説明図である。代表方向は、代表方向テーブル210に代えて、各文字列の属性データの一つとして記録するようにしてもよい。例えば、図4(a)に示すように、文字レイヤにおいて、文字ID、文字列、文字列を表示すべき基準位置の座標、表示方向(図2参照)、縦書き/横書きの配置などを対応づけて記録し、更に、代表方向を記録する。この例では、ID0とID1の文字列がグループとなっていることは明示的には記録されていない。しかし、両者に共通の代表方向が記録されていることにより、文字表示は統一的に制御することが可能となる。
【0061】
本実施例では、グループの代表方向はいずれかの文字列の方向と一致する。従って、図4(b)に示すように、代表方向を与える文字列を識別するためのフラグを記録するようにしてもよい。図の例では、文字ID00〜ID02の各文字列に対し、フラグ「0」が与えられ、ID03の文字列に対し、フラグ「1」が与えられている。文字IDの上位桁「0」はグループの識別子である。図4(b)によれば、IDの上位桁が「0」である文字列(ID00〜ID03)については、代表方向はフラグが付されたID03の文字列の方向、75度であると認識することが可能となる。グループを識別するための情報には、上述の態様に限らず、種々の方法を採ることが可能であり、例えば、別途、グループIDを設けるようにしてもよい。グループの識別子の桁数を増やしたり、グループIDの数を増やしたりすることにより、表示レベルごとのグループ設定も可能となる。
【0062】
B2.代表方向設定方法(変形例):
図5は変形例としての代表方向設定方法を示す説明図である。図3のステップS20に代わる処理である。図3の例では、グループ内の文字列に対して重みを付すことなく中央値を求めた。これに対し、図5の変形例では、重みを付して中央値を求める例を示す。
【0063】
各文字Ajに与えられる重みをWjとすると、重みを与えた場合の中央値はΣjWjAijが最小値となる文字列iの方向Aiとなる。重みは、例えば、文字列が対応づけられている地物の面積、文字列のフォントサイズなどに基づいて設定することができる。図の例では、文字列番号5,6に重み「2」を与え、その他の文字列に重み「1」を与えた例を示した。表中には、それぞれWjAij、およびΣjWjAijの値を示した。この例では、中央値はA3の75度と求められる。重みWjの設定によって、中央値は変化する。
【0064】
変形例の方法によれば、グループ内での主要な建築物や、大きなフォントで表示される文字などを重視して、中央値を設定することができる。この結果、地図表示時に注意を引きやすい文字列の状態に即して、グループ内の文字列の表示が制御される可能性が高くなり、より違和感の少ない表示を実現することが可能となる。
【0065】
B3.文字表示制御処理:
図6は文字表示制御処理のフローチャートである。地図を表示する際に、文字表示制御部205が実行する処理であり、ハードウェア的にはサーバ200のCPUが実行する処理である。この処理では、図3〜5で設定された代表方向を用いて、地図の回転に応じた文字表示を実現する。
【0066】
処理を開始すると、サーバ200は、地図表示範囲および地図回転方向θを入力する。そして、先に設定した代表方向を用いて、グループごとに文字の向きおよび配置を判定し(ステップS60)、文字表示データを出力する(ステップS70)。サーバ200が、このデータと、地形や地物などを表した背景データ、地物データとを併せて、ナビゲーション装置100に送信すると、ナビゲーション装置100に地図が表示される。
【0067】
図中に文字の向きおよび配置の判定方法を示した。図3〜5に示すように、代表方向が75度と設定されているとする。地図を回転させない時(θ=0度)なら、代表方向の文字は、左側に示す文字列「A3A3A3」のように示されることになる。この状態から、地図をθ方向に回転させると、地図が60度回転し、文字列の方向が135度に来る時に横書きから縦書きへの配置の切り替えが行われることになる。
【0068】
本実施例では、ナビゲーション装置100への地図表示を行う。ヘディングアップモードで表示を行うものとすれば、地図の回転角度は、ユーザ、即ちナビゲーション装置100の進行方向に応じて定まる。従って、回転角度は、単調に増加または減少するとは限らず、振動的に増減することもある。本実施例では、このような増減が生じた場合でも、文字の配置が頻繁に切り替わるのを回避するため、切り替え判定に数度のヒステリシスを設けた。
【0069】
図の右側に、ヒステリシスによる効果を示した。図中のハッチングを付した範囲がヒステリシスの幅である。図の上方に横書き/縦書きの切り替えの様子を示した。例えば、図示するように、地図の回転角度が徐々に増大し、60度をまたいで二度増減を繰り返して、単調に減少する場合を考える。ヒステリシスをもうけない場合には、破線で示すように、60度をまたぐ度に縦書き、横書きの切り替えが行われ、この例では合計4回の切り替えが行われることになる。
【0070】
これに対し、ヒステリシスを設けた場合、回転角が増加する際には、60度を超えても配置の切り替えが行われず、ヒステリシス幅の上限値を超えた時点で、初めて縦書きへの切り替えが行われる。次に減少する際には、60度になっても切り替えは行われず、ヒステリシス幅の下限値を下回った時点で、横書きへの切り替えが行われる。この結果、途中の増減による影響は現れず、縦書き、横書きの切り替えは2回におさまることになる。
【0071】
ヒステリシスの幅は任意に設定可能である。ただし、ヒステリシス幅を大きくすると、縦書き、横書きの切り替えが行われるのが遅れるため、見にくい表示となる可能性がある。ヒステリシス幅は、地図の回転に伴う切り替えの追随性と、頻繁な切り替えの抑制という相反する効果を考慮しつつ、設定することが好ましい。
【0072】
以上で説明した実施例の地図表示システムによれば、地図の回転に合わせて文字の向きおよび配置を制御することができる。この際、街区内の文字列の表示を統一的に制御することができるため、違和感のない見やすい地図を提供することが可能となる。
【0073】
C.第2実施例:
次に、第2実施例について説明する。装置構成は、第1実施例(図1)と概ね同様である。第1実施例では代表方向に基づいて文字表示を制御する例を示したが、第2実施例では代表方向を用いることなく文字表示を制御する例を示す。従って、図1に示した装置構成のうち、代表方向テーブル210については省略可能である。
【0074】
図7は第2実施例としての文字表示制御処理のフローチャートである。サーバ200は処理を開始すると、第1実施例と同様、地図表示範囲および地図回転方向θを入力する(ステップS50A)。
【0075】
サーバ200は、回転方向θに基づいて、文字の向きおよび配置を判定する(ステップS60A)。この判定は、各文字列ごとに行う。従って、この段階では、グループ内の文字列であっても、向きおよび配置は不統一となる可能性がある。
【0076】
次に、サーバ200は文字表示の統一化を行う(ステップS65A)。この処理は、グループ内の文字列について、ステップS60Aの判定結果を評価し、グループ全体の文字列の向きおよび配置を決定する処理である。図中に判定方法を例示した。文字列「A0A0A0」〜「A3A3A3」は同じグループ内の文字列であるとし、ステップS60Aの判定により、文字列「A2A2A2」についてのみ縦書き、横書きの配置の切り換えが必要と判断されたものとする。第2実施例では、このようにグループ内のいずれか一つ以上の文字列について配置の切り換えが必要と判断された時点で、全文字列について配置の切り換えを行うことで表示を統一化する。図中の例では、図示する通り、このグループ内の文字列は、全て配置を切り換えることになる。
【0077】
サーバ200は、こうして設定された文字表示データを出力して(ステップS70A)。文字表示制御処理を終了する。第2実施例の方法によっても、グループ内の文字表示を統一化することができ、違和感のない地図表示を実現することができる。
【0078】
第2実施例の統一化(ステップS65A)を行うための条件は任意に設定可能である。例えば、グループ内の2以上の所定数の文字列について切り換えが必要と判断された時点や、グループ内の全文字列について切り換えが必要と判断された時点で統一化を行うようにしてもよい。
【0079】
D.変形例:
第1および第2実施例では、街区内の文字列をグループとする例を示したが、グループは種々の設定が可能である。例えば、街区の他、文字列に対応する住所を基準として、行政界単位、街区単位などでグループを作成してもよい。また、学校敷地内の棟名称や、テーマパーク敷地内のアトラクション名称などでグループを作成してもよい。また、行政界を表す文字、道路や交差点や地名などを表すための文字、公共利用の施設を表す文字、個人の住居を表す文字など、文字列のカテゴリーごとにグループを作成してもよい。文字を表示する際の文字サイズまたは文字色ごとにグループを作成してもよい。例えば、「○○町」が赤字で表示され、「○○丁目」が黒字で表示されるような場合には、前者と後者を別々のグループとして定義することができる。ユーザの視認性には、文字色が与える影響も大きいため、このようにカテゴリーと文字色とを考慮してグループ化することにより、見やすさを、より向上させることができる。グループは、例えば、地図の縮尺などに応じて変化するようにしてもよい。
【0080】
図8はグループ化を例示する説明図である。この図は、住宅地図の一部を示したものであるが、図の煩雑化を避けるため、それぞれの家枠に記入される文字の表示は省略した。以下、上述の態様の他、図8を参照しながら、種々のグループ化の例について説明する。
【0081】
(1) 隣接する複数の街区をまとめてグループ化するようにしてもよい。隣接した街区は文字列の方向が概ねそろっていることが多いため、これらの街区をまとめてグループ化することにより、地図の見やすさを向上させることができる。例えば、図8中でハッチングを付した街区A、B、Dをグループ化させる態様を採ることができる。グループ化する街区の範囲は種々の設定が可能であり、街区内の図心などを代表点と定義し、この代表点同士の距離が所定範囲内にあるもの同士をグループ化するようにしてもよい。街区間を隔てる道路が所定幅以内であるもの同士としてもよい。道路幅を基準とする態様を採る場合、基準値となる道路幅によっては、図8では、街区A,Bは両者を隔てる道路が狭いため、グループ化されるが、街区Dと街区A,Bとを隔てる道路は幅が広いため、街区Dはグループ化から外れることがある。
【0082】
(2) 特定の道路と隣接する街区同士または複数の家枠同士をグループ化するようにしてもよい。例えば、図8中で、中央通りに沿った街区BとCをグループ化させる態様が該当する。この態様によれば、例えば、特定の国道の両側に配置された家屋の文字列の方向を統一的に表示することが可能となる。道路に沿って配置された家屋の形状は、視覚的な統一感を有していることが多いため、これらの文字を統一することにより、見やすさを向上することができる。グループ化する際の基準となる道路は、例えば、道路幅、道路種別、道路の形状(直線か曲線か)などに応じて種々設定することができる。
【0083】
(3) 上述の例と同様、一本の道路に沿って隣接して配置された家屋同士をグループ化するようにしてもよい。この態様は、街区と無関係にグループを作成する態様である。例えば、図8中で、街区B、D中のうち中央通りに沿った家屋をグループ化する態様が該当する。この態様によれば、ある道路の片側に並ぶ家屋の文字列を統一させることが可能である。
【0084】
グループ化する範囲は、所定幅以上の道路で挟まれた範囲や、同一行政界に属する範囲などの形で規定することができる。例えば、図8中において街区Dの下方に走る道路「晴海通り」でグループを区切るものとすれば、街区B,D内の家屋は同一のグループにまとめられることになる。例えば、道路を挟んで一方が住宅街、他方が商業施設などのように区画整理がなされているような地域にこの態様を適用することにより、道路の両側では文字列の方向が異なることを許容しつつ、区画ごとに文字列を統一し、見やすさを向上させることもできる。例えば、図8中で街区B,Dに属する家屋と、街区Cに属する家屋とを別グループとして定義する態様が相当する。
【0085】
(4) 文字列のカテゴリーに応じてグループ化する一例として、例えば、学校、警察署、郵便局など、施設の種類ごとにグループを作成するようにしてもよい。これらの施設は、比較的広いスペースが確保されていることが多く、文字列も太字で記載されていることが多い。また、これらの施設は地図を見る上で目標物となることも多い。従って、上記態様により、これら施設の文字列を統一することにより、地図の見やすさを向上させることができる。
【0086】
(5) 図8中の領域Eに示すように、交差点名と信号機記号とをグループ化するようにしてもよい。このように文字列を、関連の深い記号とグループ化するようにしてもよい。こうすることで、地図を見た時に、文字列の意味が理解しやすくなり、見やすさを向上させることができる。
【0087】
(6) 図8中の領域F内に示すように、複数種類の地図記号をグループ化するようにしてもよい。図中の領域F内には、郵便局と銀行の地図記号が含まれている。このような各種の地図記号をそれぞれの種類ごとにグループとしてもよいし、種別を問わず全地図記号を一つのグループとしてまとめるようにしてもよい。地図記号は一般人にとって文字列ほどなじみが深くないのが通常であるため、向きが変わると認識しづらくなる傾向にある。上記態様により、地図記号については表示方向を統一することにより、地図記号が認識しやすくなり、地図の見やすさを向上させることができる。地図記号の他、地図中の各街区に付される街区番号(図8中の丸付き数字)や、各ビルに付されるビルの高さ表示(階数表示)などもそれぞれグループ化してもよい。
【0088】
(7) 通行規制を表す記号、一方通行(図8中の記号G)や右左折禁止などの進行方向に対する規制を表す記号については、グループ化の対象から除外することが好ましい。これらの記号は道路に沿って表示された方がその意味を理解しやすい性質のものである。通行規制を表す記号をグループ化から除外することにより、各記号の向きを道路に沿うように個別に制御することが可能となり、地図を見やすくすることができる。
【0089】
また、グループはサーバ200が自動的に設定する他、予めオペレータが手動でグループ化を行い、図3のステップS30に示した形式や図4(b)に示した形式で、グループを登録しておくようにしてもよい。更に、半自動でグループ化する態様を採ることもできる。例えば、道路を基準としてグループ化を行う場合に、基準となる道路をオペレータが選択する方法がこれに該当する。具体例として、図8において、「中央通り」をオペレータが指定することで、これに沿った街区や家屋をグループ化する態様を採ることができる。
【0090】
E.第3実施例:
第3実施例として、地図の表示を連続的に移動または回転させる場合の文字表示の制御について説明する。もっとも、第1実施例および第2実施例で説明した方法も、連続的に回転させる際に適用可能ではある。第3実施例では、これらの表示により適した方法を説明する。第3実施例のハードウェア構成は、第1実施例(図1)と同様である。第3実施例では、表示範囲内の文字列をグループとして統一的に表示制御するものとして説明する。
【0091】
図9は回転時における文字表示の制御方法を示す説明図である。地図の表示方向を回転させるための回転コマンドが連続的に入力されている場合の文字表示の制御方法を示した。図9(a)は回転時の地図の表示範囲およびそこに含まれる文字列を例示している。ある時点で、地図の表示範囲が実線で示す領域MP1であったとする。領域MP1内には、「Q大学」、「HNホテル」、「NGOドーム」、「MM銀行」などの文字列が含まれる。地図が図中の矢印方向にθだけ回転し、表示範囲が破線で示す領域MP2になったとする。この時点では、「NGOドーム」が領域MP2から外れ、代わって「Kビル」、「(株)Z社」などが領域MP2内に含まれることになる。従って、先に図3で示した方法で代表方向となるべき角度を求めると、領域MP1、MP2に含まれる文字列の変化することによって、代表方向も不規則に変化する場合がある。
【0092】
第3実施例では、こうした弊害を回避するため図中にハッチングを付して示した領域CA内の文字列に基づいて代表方向を決定する。領域CAは、表示範囲を回転表示する際の回転中心を中心として表示範囲に内接する円領域である。第3実施例では、表示範囲の重心を中心とする円となっている。地図を回転させた場合でも、この領域CA内の文字列は変化しない。図の例では、領域CA内の文字列「HNホテル」は、地図を回転させる間、常に領域CA内に存在する。従って、領域CA内の文字列に基づいて代表方向を決定することにより、回転中に代表方向が不規則に変化することを回避できるのである。
【0093】
図9(b)は、地図の回転角度に対する代表方向の変化を示すグラフである。細線で示したグラフL1は、図9(a)内の領域MP1、MP2内の文字列に基づいて代表方向を決定した場合の様子を示している。太線で示したグラフL2は、図9(a)内の領域CA内の文字列に基づいて代表方向を決定した場合の様子を示している。領域MP1、MP2内の文字列を用いる場合には、グラフL1に示すように代表方向が不規則に変化するのに対し、領域CA内の文字列を用いる場合には、グラフL2に示す通り代表方向はほぼ一定値となる。
【0094】
図10は移動時における文字表示の制御方法を示す説明図である。移動コマンドに従って、矢印V方向に移動し、表示範囲が領域MP11から領域MP12に移動した場合を考える。表示範囲の中心点はCG11からCG12まで移動する。この時、領域γ内の文字列は、移動前の領域MP11内には含まれているものの、移動後の領域MP12には含まれなくなる。領域α内の文字列は、移動前の領域MP11には含まれないが、移動後の領域MP12には含まれるようになる。領域β内の文字列は、移動前後の領域MP11、MP12の双方に含まれる。このように、移動に伴って、表示範囲に含まれる文字列には変化が生じるため、表示範囲内の文字全体を用いて代表方向を求めると、代表方向が不規則に変化するおそれがある。ただし、移動時には回転時のように恒常的に表示範囲に含まれる領域は存在しない。図中の領域βは、図示した範囲では、移動前後の領域MP11、MP12の双方に含まれているが、更に移動を続ければ、いずれ表示範囲から外れることになる。
【0095】
従って、第3実施例では、移動時には各文字列に乗じる重み値を変化させることで、代表方向の不規則な変化を抑える方法を採った。図中に示すように、領域MP11に対して、図の横軸方向(「x方向」と称する)の位置に応じて重み値Wxを0〜1の範囲で変化させる。両端で重み値Wxを0とし、中央で重み値Wxを1とする。図の例では、重み値Wxを直線状に変化させているが、曲線状に変化させてもよい。また、両端近傍に重み値Wxが0となる区間を設けても良い。また、図の縦軸方向(「y方向」と称する)についても、位置に応じて重み値Wyを0〜1の範囲で変化させる。領域MP11内の文字列については、領域MP11内での位置座標x、yに応じた重み値Wx、Wyの積を用いる。図の例では、x方向、y方向の成分に分けて、重み値Wx、Wyを設定する例を示したが、二次元マップを用いて領域MP11の各位置に対して直接に重み値を与える構成としてもよい。
【0096】
領域MP12についても、同様の重み値Wx、Wyを適用する。図の例では、領域MP11の中心CG11に表示される文字列に関しては、領域MP11を表示する際には、重み値Wx,Wyは共に1となる。領域MP12を表示する際には、点CG11は領域MP12の中心からはずれるため、重み値は1よりもやや小さな値となる。このように、図示した重み値を用いることにより、移動に伴って、各文字列に対応づけられる重み値を徐々に変化させることができる。従って、表示範囲の周辺付近の文字列、即ち移動に伴って表示範囲から外れる直前の文字列や、表示範囲に新たに含まれたばかりの文字列の重み値を小さくすることができる。この結果、表示範囲の中央付近の文字列を重視して代表方向を設定することができるため、代表方向の不規則な変化を抑制することが可能となる。
【0097】
図11は代表方向設定処理のフローチャートである。図9、図10で説明した方法によって移動コマンドまたは回転コマンドに応じて、サーバ200が代表方向を設定するための処理である。
【0098】
この処理では、サーバ200は、地図表示範囲の指定を入力する(ステップS100)。この指定には、地図表示範囲の中心点および表示すべき領域の指定が含まれる。この指定によって、図9に示した領域MP1、図10に示した領域MP11の寸法が決定されることになる。サーバ200は、地図表示を変更するための表示変更コマンドを入力し、その内容に応じて次に示すそれぞれの処理を実行する(ステップS102)。表示変更コマンドは、ユーザがナビゲーション装置100を操作して入力するものとしてもよいし、ユーザの移動に伴ってナビゲーション装置100が自動的に発信するものとしてもよい。
【0099】
表示変更コマンドとして、地図表示を回転させる回転コマンドのみが入力された場合の処理について説明する。この時は、サーバ200は、地図表示範囲の内接円領域を求める(ステップS104)。図9に示した領域CAに相当する。そして、この内接円領域内の文字データを入力する(ステップS106)。サーバ200は、ここで入力した文字データに基づいて図3のステップS20で示した方法で中央値を算出し(ステップS130)、その結果を代表方向として用いる(ステップS132)。
【0100】
表示変更コマンドとして、地図の移動コマンドおよび表示スケールを拡大・縮小させる拡縮コマンドが入力された場合の処理について説明する。移動コマンドおよび拡縮コマンドとともに、回転コマンドが入力された場合も、この処理を実行する。この場合には、サーバ200は、地図表示範囲内の文字データを入力し(ステップS120)、各文字データの表示範囲内の相対的な位置に基づいて重み値Wを設定する(ステップS122)。重み値Wは、図10で示した通り、x方向の位置によって定まる重み値Wxと、y方向の位置によって定まる重み値Wyとの積を用いる。サーバ200は、地図表示範囲内の文字データに基づいて図5で示した方法で中央値を算出し(ステップS130)、その結果を代表方向として用いる(ステップS132)。
【0101】
表示変更コマンドが入力されていない場合、即ち表示の静止が指示されている場合には(ステップS102)、サーバ200は地図表示範囲内の文字データを入力し(ステップS110)、図3のステップS20で示した方法で中央値を算出し(ステップS130)、その結果を代表方向として用いる(ステップS132)。
【0102】
以上の方法で代表方向を設定した後は、第1実施例と同様の方法で文字の配置を制御することができる。このように、第3実施例では、表示変更コマンドに応じた方法で代表方向を設定することができる。従って、地図の移動中または回転中に文字の方向が不規則に変化することを抑制でき、それぞれ見やすい状態で文字を提示することができる。
【0103】
第3実施例では、地図の移動中に重み値を用いて代表方向を設定する例を示した(図10参照)。移動中の代表方向の設定方法は、かかる方法に限らず、例えば、移動コマンドが入力された時点の表示画面内の文字例を用いて代表方向を設定し、移動コマンドが継続的に入力されている限り、この代表方向を固定的に用いるようにしてもよい。こうすることで比較的軽い負荷で代表方向の決定、文字表示の制御を行うことができ、比較的軽い負荷でも、移動速度に十分追随しながら地図を表示させることが可能となる。
【0104】
以上、本発明の種々の実施例について説明したが、本発明はこれらの実施例に限定されず、その趣旨を逸脱しない範囲で種々の構成を採ることができることはいうまでもない。例えば、本実施例では、サーバ200とナビゲーション装置100からなるシステム構成例を示したが、本実施例はオペレータの指示に従って、種々の方向に回転させ、目的に応じた加工を施した地図、いわゆる企画地図を作成する装置として構成することもできる。この場合には、ナビゲーション装置100に代えて、上述の指示を与えるための端末としてネットワーク通信機能を有するパーソナルコンピュータを用いることでシステム構成することができる。サーバ200の機能をパーソナルコンピュータに備え、スタンドアロンで稼働するシステムとして構成してもよい。
【0105】
かかる構成では、地図の出力態様が印刷という形式に代わるのみであり、指定された地図の回転に応じて、文字表示を制御する処理については、実施例で説明した処理をそのまま適用可能である。
【図面の簡単な説明】
【0106】
【図1】実施例としての地図表示システムの構成を示す説明図である。
【図2】文字表示制御の概要を示す説明図である。
【図3】代表方向設定処理のフローチャートである。
【図4】文字レイヤのデータ構造例を示す説明図である。
【図5】変形例としての代表方向設定方法を示す説明図である。
【図6】文字表示制御処理のフローチャートである。
【図7】第2実施例としての文字表示制御処理のフローチャートである。
【図8】グループ化を例示する説明図である。
【図9】回転時における文字表示の制御方法を示す説明図である。
【図10】移動時における文字表示の制御方法を示す説明図である。
【図11】代表方向設定処理のフローチャートである。
【符号の説明】
【0107】
100…ナビゲーション装置
110…主制御部
120…通信部
130…コマンド入力部
140…GPS
150…表示制御部
200…サーバ
202…通信部
204…表示データ生成部
205…文字表示制御部
206…地図DB参照部
210…代表方向テーブル
220…地図DB
【特許請求の範囲】
【請求項1】
地図出力用の出力データを生成する地図出力装置であって、
出力の対象となる地図データを参照する地図データ参照部と、
前記出力時における前記地図の回転角の要求値を含む出力条件を入力する出力条件入力部と、
前記出力条件に応じて前記地図データに含まれる文字の配列を制御する文字出力制御部と、
前記文字の制御結果および前記地図データを用いて、前記出力データを生成する出力データ生成部とを有し、
前記文字出力制御部は、前記地図データに格納された複数の文字列のうち、少なくとも一部を関連づけられた文字列として、文字の配列を統一的に制御する地図データ出力装置。
【請求項2】
請求項1記載の地図出力装置であって、
前記文字出力制御部は、予め設定された規則に従って前記関連づけを行う地図出力装置。
【請求項3】
請求項1または2記載の地図出力装置であって、
前記文字出力制御部は、前記回転角の要求値と、前記関連づけられた複数の文字列内の文字の向きの代表値となる代表方向とに基づき、前記文字の配列を制御する地図出力装置。
【請求項4】
請求項3記載の地図出力装置であって、
前記代表方向として、前記関連づけられた複数の文字列のいずれかの文字列の方向を用いる地図出力装置。
【請求項5】
請求項3記載の地図出力装置であって、
前記代表方向は、前記関連づけられた複数の文字列の方向の中央値に基づいて設定される地図出力装置。
【請求項6】
請求項5記載の地図出力装置であって、
前記代表方向は、前記複数の文字列に予め設定された規則に従って重みを与えた場合の中央値に基づいて設定される地図出力装置。
【請求項7】
請求項1または2記載の地図出力装置であって、
前記文字出力制御部は、
前記回転角の要求値と前記文字列の文字の向きとを比較して、前記文字の配列を制御しており、
前記関連づけられた複数の文字列については、少なくとも一部の文字列について文字の配列を変化させるべき条件が成立する際に、該複数の文字列の配列を統一的に変化させる地図出力装置。
【請求項8】
請求項2記載の地図出力装置であって、
前記出力条件には、地図の出力範囲の指定、および地図の出力範囲を連続的に移動させる移動コマンド、または地図の出力範囲を所定の代表点周りに連続的に回転させる回転コマンドが含まれており、
前記文字出力制御部は、前記出力範囲内の文字列を関連づけると共に、該関連づけられた複数の文字列内の文字の向きの代表値となる代表方向に基づき、前記移動コマンドまたは回転コマンドに応じて前記文字の配列を制御する地図出力装置。
【請求項9】
請求項8記載の地図出力装置であって、
前記代表方向は、前記移動コマンドまたは回転コマンドが継続的に入力されている期間は、前記関連づけられた文字列に対して相対的に固定される地図出力装置。
【請求項10】
請求項8または9記載の地図出力装置であって、
前記回転コマンドが入力された場合、前記代表方向は、前記代表点を中心とする前記出力範囲の内接円に重なる文字列の文字の向きに基づいて設定される地図出力装置。
【請求項11】
請求項8〜10いずれか記載の地図出力装置であって、
前記文字出力制御部は、前記移動コマンドが入力された場合と回転コマンドが入力された場合とで、前記代表方向の設定方法を切り換える地図出力装置。
【請求項12】
地図出力用の出力データを生成するためのコンピュータプログラムであって、
出力の対象となる地図データを参照する地図データ参照サブプログラムと、
前記出力時における前記地図の回転角の要求値を含む出力条件を入力する出力条件入力サブプログラムと、
前記出力条件に応じて前記地図データに含まれる文字の配列を制御する文字出力制御サブプログラムと、
前記文字の制御結果および前記地図データを用いて、前記出力データを生成する出力データ生成サブプログラムとを有し、
前記文字出力制御サブプログラムは、前記地図データに格納された複数の文字列のうち、少なくとも一部を関連づけられた文字列として、文字の配列を統一的に制御するコンピュータプログラム。
【請求項13】
請求項4記載の地図出力装置による地図出力に用いられる地図データのデータ構造であって、
地図中に表示すべき複数の文字列を格納する文字列データ格納領域と、
前記複数の文字列の一部を関連づける情報を記録した関連情報格納領域と、
前記関連づけられた文字列の代表方向を表す情報を記録した代表方向情報格納領域とを備えるデータ構造。
【請求項1】
地図出力用の出力データを生成する地図出力装置であって、
出力の対象となる地図データを参照する地図データ参照部と、
前記出力時における前記地図の回転角の要求値を含む出力条件を入力する出力条件入力部と、
前記出力条件に応じて前記地図データに含まれる文字の配列を制御する文字出力制御部と、
前記文字の制御結果および前記地図データを用いて、前記出力データを生成する出力データ生成部とを有し、
前記文字出力制御部は、前記地図データに格納された複数の文字列のうち、少なくとも一部を関連づけられた文字列として、文字の配列を統一的に制御する地図データ出力装置。
【請求項2】
請求項1記載の地図出力装置であって、
前記文字出力制御部は、予め設定された規則に従って前記関連づけを行う地図出力装置。
【請求項3】
請求項1または2記載の地図出力装置であって、
前記文字出力制御部は、前記回転角の要求値と、前記関連づけられた複数の文字列内の文字の向きの代表値となる代表方向とに基づき、前記文字の配列を制御する地図出力装置。
【請求項4】
請求項3記載の地図出力装置であって、
前記代表方向として、前記関連づけられた複数の文字列のいずれかの文字列の方向を用いる地図出力装置。
【請求項5】
請求項3記載の地図出力装置であって、
前記代表方向は、前記関連づけられた複数の文字列の方向の中央値に基づいて設定される地図出力装置。
【請求項6】
請求項5記載の地図出力装置であって、
前記代表方向は、前記複数の文字列に予め設定された規則に従って重みを与えた場合の中央値に基づいて設定される地図出力装置。
【請求項7】
請求項1または2記載の地図出力装置であって、
前記文字出力制御部は、
前記回転角の要求値と前記文字列の文字の向きとを比較して、前記文字の配列を制御しており、
前記関連づけられた複数の文字列については、少なくとも一部の文字列について文字の配列を変化させるべき条件が成立する際に、該複数の文字列の配列を統一的に変化させる地図出力装置。
【請求項8】
請求項2記載の地図出力装置であって、
前記出力条件には、地図の出力範囲の指定、および地図の出力範囲を連続的に移動させる移動コマンド、または地図の出力範囲を所定の代表点周りに連続的に回転させる回転コマンドが含まれており、
前記文字出力制御部は、前記出力範囲内の文字列を関連づけると共に、該関連づけられた複数の文字列内の文字の向きの代表値となる代表方向に基づき、前記移動コマンドまたは回転コマンドに応じて前記文字の配列を制御する地図出力装置。
【請求項9】
請求項8記載の地図出力装置であって、
前記代表方向は、前記移動コマンドまたは回転コマンドが継続的に入力されている期間は、前記関連づけられた文字列に対して相対的に固定される地図出力装置。
【請求項10】
請求項8または9記載の地図出力装置であって、
前記回転コマンドが入力された場合、前記代表方向は、前記代表点を中心とする前記出力範囲の内接円に重なる文字列の文字の向きに基づいて設定される地図出力装置。
【請求項11】
請求項8〜10いずれか記載の地図出力装置であって、
前記文字出力制御部は、前記移動コマンドが入力された場合と回転コマンドが入力された場合とで、前記代表方向の設定方法を切り換える地図出力装置。
【請求項12】
地図出力用の出力データを生成するためのコンピュータプログラムであって、
出力の対象となる地図データを参照する地図データ参照サブプログラムと、
前記出力時における前記地図の回転角の要求値を含む出力条件を入力する出力条件入力サブプログラムと、
前記出力条件に応じて前記地図データに含まれる文字の配列を制御する文字出力制御サブプログラムと、
前記文字の制御結果および前記地図データを用いて、前記出力データを生成する出力データ生成サブプログラムとを有し、
前記文字出力制御サブプログラムは、前記地図データに格納された複数の文字列のうち、少なくとも一部を関連づけられた文字列として、文字の配列を統一的に制御するコンピュータプログラム。
【請求項13】
請求項4記載の地図出力装置による地図出力に用いられる地図データのデータ構造であって、
地図中に表示すべき複数の文字列を格納する文字列データ格納領域と、
前記複数の文字列の一部を関連づける情報を記録した関連情報格納領域と、
前記関連づけられた文字列の代表方向を表す情報を記録した代表方向情報格納領域とを備えるデータ構造。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【公開番号】特開2007−140447(P2007−140447A)
【公開日】平成19年6月7日(2007.6.7)
【国際特許分類】
【出願番号】特願2006−71167(P2006−71167)
【出願日】平成18年3月15日(2006.3.15)
【出願人】(597151563)株式会社ゼンリン (155)
【Fターム(参考)】
【公開日】平成19年6月7日(2007.6.7)
【国際特許分類】
【出願日】平成18年3月15日(2006.3.15)
【出願人】(597151563)株式会社ゼンリン (155)
【Fターム(参考)】
[ Back to top ]