(57)【特許請求の範囲】
【請求項１】
地図出力用の出力データを生成する地図出力装置であって、  出力の対象となる地図データを参照する地図データ参照部と、 出力時における前記地図の回転角の要求値を含む出力条件を入力する出力条件入力部と、  前記出力条件に応じて前記地図データに含まれる文字の配列を制御する文字出力制御部と、  前記文字の制御結果および前記地図データを用いて、前記出力データを生成する出力データ生成部とを有し、  前記文字出力制御部は、前記地図データに格納された複数の文字列のうち、少なくとも一部を関連づけられた文字列として、文字の配列を統一的に制御する地図出力装置。
【請求項２】
請求項１記載の地図出力装置であって、
前記文字出力制御部は、前記回転角の要求値と、前記関連づけられた複数の文字列内の文字の向きの代表値となる代表方向とに基づき、前記文字の配列を制御する地図出力装置。
【請求項３】
請求項１記載の地図出力装置であって、
前記文字出力制御部は、
前記回転角の要求値と前記文字列の文字の向きとを比較して、前記文字の配列を制御しており、
前記関連づけられた複数の文字列については、少なくとも一部の文字列について文字の配列を変化させるべき条件が成立する際に、該複数の文字列の配列を統一的に変化させる地図出力装置。
【請求項４】
請求項１記載の地図出力装置であって、
前記出力条件には、地図の出力範囲の指定、および地図の出力範囲を連続的に移動させる移動コマンド、または地図の出力範囲を所定の代表点周りに連続的に回転させる回転コマンドが含まれており、
前記文字出力制御部は、前記出力範囲内の文字列を予め設定された規則に従って関連づけると共に、該関連づけられた複数の文字列内の文字の向きの代表値となる代表方向に基づき、前記移動コマンドまたは回転コマンドに応じて前記文字の配列を制御する地図出力装置。
【請求項５】
請求項４記載の地図出力装置であって、
前記代表方向は、前記移動コマンドまたは回転コマンドが継続的に入力されている期間は、前記関連づけられた文字列に対して相対的に固定される地図出力装置。
【請求項６】
請求項４または５記載の地図出力装置であって、
前記回転コマンドが入力された場合、前記代表方向は、前記代表点を中心とする前記出力範囲の内接円に重なる文字列の文字の向きに基づいて設定される地図出力装置。 
【請求項７】
請求項４〜６いずれか記載の地図出力装置であって、
前記文字出力制御部は、前記移動コマンドが入力された場合と回転コマンドが入力された場合とで、前記代表方向の設定方法を切り換える地図出力装置。 
【請求項８】
代表方向として関連づけられた複数の文字列のいずれかの文字列の方向を用いる請求項２記載の地図出力装置による地図出力に用いられる地図データのデータ構造であって、
地図中に表示すべき複数の文字列を示す文字列データと、
前記複数の文字列の一部を関連づける情報を示す関連情報と、
前記関連づけられた文字列の代表方向を表す情報を示す代表方向情報と
を備えるデータ構造。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、地図を表示または印刷する際における、文字出力の制御に関し、地図を種々の方向に回転させて出力する際に、その回転に応じて、見やすい文字配列を実現する制御に関する。
【背景技術】
【０００２】
地図データを参照して地図を表示する地図表示装置は、種々の用途に利用される。例えば、いわゆるナビゲーション装置においては、ユーザの現在位置から目的地までの経路を案内するための地図の表示に利用される。この際、北などの一定の方位を上側にして表示させるモードの他、ユーザの進行方向を上側にして表示させるヘディングアップと呼ばれるモードが採られることもある。ヘディングアップでは、ユーザの進行方向によって地図の上下方向が変化するため、これに応じて、地図中に含まれる文字の表示方向、縦書き／横書きという文字配列も変化させる必要がある。
【０００３】
ナビゲーション装置のみならず、パーソナルコンピュータなどで地図を表示させる場合においても、ユーザが任意に指定した方位を上側とすることが可能である。こうした表示は、例えば、ユーザが特定の目的地への経路を分かりやすく伝えるなどの意図で地図を作成する場合に要望される。北などの決まった方位を上側にするよりも、駅などの分かりやすい基準点を原点として主要な道路の方向を上側にした方が、把握しやすくなることがあるからである。
【０００４】
このように、地図データを利用して地図の表示や印刷などの出力を行う場合、地図データの作成時に規定されている上下方向から回転させた状態での地図出力が要望されることがある。地図を回転させて出力する際に、文字の配列を制御する技術として特許文献１〜３記載の技術が挙げられる。
【０００５】
特許文献１は、ナビゲーションシステムにおいて、地図を回転させる際に、回転に応じて、文字の縦書き、横書きの文字配列を使い分けて表示する技術を開示する。特許文献２は、ナビゲーションシステムにおいて、東西南北の基準方位から４５度以上ずれた方向に車両が進行すると、その状態が所定時間継続したところで、文字の縦書き、横書きを切り替える技術を開示している。特許文献３は、同様に、進行方向に応じて、文字の配列方向等を切り替える技術を開示している。
【０００６】
【特許文献１】特許第２７８１１１３号公報
【特許文献２】特開平７−１２９８９２号公報
【特許文献３】特開平４−２８８５８４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
上述の通り、従来、地図を回転させた際に、縦書きや横書きという文字配列の使い分けを文字列ごとに個別に制御する技術は開示されていた。しかし、地図には、種々の地物が種々の配置で含まれており、これら地物との関係で種々の文字列が含まれている。例えば、住宅地図のような詳細な地図では、各家枠ごとに、居住者名などを表す文字列が対応している。これらの文字列には、同一の街区に存在する家枠に対応づけられた文字列など、出力時の統一感が要求されるものがある。従って、同一の街区に存在する家枠に対応づけられた文字列の方向が、家枠ごとに不統一であると、たとえ一つ一つの家枠の文字列が読みやすい場合であっても、その街区全体としては非常に見づらくなってしまうという課題が生じる。特に、同一街区に存在する複数の文字列のうち、一部のみに縦書きから横書きまたはこれと逆の変化が生じると、文字列ごとに文字の向きが９０度異なる文字が混在することとなり、地図が非常に見づらくなってしまう。こうした課題は、特に、もとの地図データにおいて、斜めに配置された建物の枠に合わせて斜めに配置された文字などが存在する時に顕著であった。
【０００８】
従来技術では、文字列の向きを個別に制御する点は考慮されているものの、文字列間の統一感については十分考慮されてはいなかった。本発明は、こうした課題に鑑み、種々の方向に回転させて地図を出力する際に、複数の文字列間に統一感を持たせ、見やすい地図を実現する技術を提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明は、地図出力用の出力データを生成する地図出力装置として構成することができる。出力データは、地図をコンピュータの画面等に表示させるための表示データ、印刷装置で印刷させるための印刷データなど種々の形式のデータを含む。本明細書において、出力とは、このように画面への表示、印刷などを含む広義の用語として用いる。
【００１０】
本発明の地図出力装置は、出力の対象となる地図データを参照する。また、出力時の出力条件を入力する。この出力条件には、地図の回転角の要求値が含まれる。例えば、北を上（基準方向と呼ぶ）として作成された地図データを、西を上として出力する場合には、出力条件として９０度の回転角が指定されることになる。地図データを作成する際の基準方向の設定、および回転角の定義は任意に設定可能である。
【００１１】
地図出力装置は、この出力条件に応じて地図データに含まれる文字の配列を制御し、その制御結果および地図データを用いて、地図を出力するための出力データを生成する。この際、地図出力装置は、地図データに格納された複数の文字列のうち、少なくとも一部を関連づけ、これら関連づけられた文字列の配列を統一的に制御する。こうすることにより、複数の文字列の文字の配列を統一することができ、見やすい地図を提供することが可能となる。
【００１２】
複数の文字列の関連づけは、例えば、地図データを作成するオペレータまたは地図データのユーザが予め設定し、グループとして登録しておくものとしてもよい。こうすることで、統一的に扱われる文字列を柔軟に設定することが可能となる。
【００１３】
文字列の関連づけは、予め設定された規則に従って行うものとしてもよい。こうすることにより、オペレータやユーザの手間をかけるまでもなく、見やすい地図を提供することが可能となる。予め設定された規則に従って関連づけを行う場合、地図出力に先立って関連づけを行い、その結果を地図データに登録しておくようにしてもよいし、地図出力の度に関連づけを行うようにしてもよい。上述の態様を組み合わせ、予め設定された規則に従って、設定された関連づけを行った上で、オペレータ等の操作によって、一部の関連づけを解除、追加、または修正可能としてもよい。以下、予め登録されているもの、出力時に判断するものも含み、関連づけられた文字列を、「グループ」「グループ化」と表すこともある。
【００１４】
地図出力装置が自動的にグループを作成するための規則は種々の設定が可能である。例えば、文字列に対応する住所を基準として、行政界単位、街区単位などでグループを作成してもよい。また、行政界を表す文字、道路や交差点や地名などを表すための文字、公共利用の施設を表す文字、個人の住居を表す文字など、文字列のカテゴリーごとにグループを作成してもよい。文字を表示する際の文字サイズまたは文字色ごとにグループを作成してもよい。行政界ごとにグループ化する例としては、「○○丁目」や「○○町」などの単位で文字列同士をグループ化する態様が挙げられる。また、行政界を表す文字列同士をグループ化させてもよい。この場合には、文字列のカテゴリーと文字色を組み合わせてグループを定義するようにしてもよい。例えば、「○○町」が赤字で表示され、「○○丁目」が黒字で表示されるような場合には、前者と後者を別々のグループとして定義することができる。ユーザの視認性には、文字色が与える影響も大きいため、このようにカテゴリーと文字色とを考慮してグループ化することにより、見やすさを、より向上させることができる。グループは、例えば、地図の縮尺などに応じて変化するようにしてもよい。
【００１５】
上述の他、グループを作成するための規則を以下に例示する。
（１）隣接する複数の街区をまとめてグループ化するようにしてもよい。隣接した街区は文字列の方向が概ねそろっていることが多いため、これらの街区をまとめてグループ化することにより、地図の見やすさを向上させることができる。グループ化する街区の範囲は種々の設定が可能であり、街区内の図心などの代表点同士の距離が所定範囲内にあるものとしてもよいし、街区間を隔てる道路が所定幅以内であるもの同士としてもよい。
【００１６】
（２）特定の道路と隣接する街区同士または複数の家枠同士をグループ化するようにしてもよい。この態様によれば、例えば、特定の国道の両側に配置された家屋の文字列の方向を統一的に表示することが可能となる。道路に沿って配置された家屋の形状は、視覚的な統一感を有していることが多いため、これらの文字を統一することにより、見やすさを向上することができる。グループ化する際の基準となる道路は、例えば、道路幅、道路種別、道路の形状（直線か曲線か）などに応じて種々設定することができる。
【００１７】
（３）上述の例と同様、一本の道路に沿って隣接して配置された家屋同士をグループ化するようにしてもよい。この態様によれば、ある道路の片側に並ぶ家屋の文字列を統一させることが可能である。例えば、道路を挟んで一方が住宅街、他方が商業施設などのように区画整理がなされているような地域にこの態様を適用すれは、道路の両側では文字列の方向が異なることを許容しつつ、区画ごとに文字列を統一することができ、見やすさを向上させることができる。
【００１８】
（４）文字列のカテゴリーに応じてグループ化する一例として、例えば、学校、警察署、郵便局など、施設の種類ごとにグループを作成するようにしてもよい。これらの施設は、比較的広いスペースが確保されていることが多く、文字列も太字で記載されていることが多い。また、これらの施設は地図を見る上で目標物となることも多い。従って、上記態様により、これら施設の文字列を統一することにより、地図の見やすさを向上させることができる。
【００１９】
（５）交差点名と信号機記号とをグループ化するようにしてもよい。このように文字列を、関連の深い記号とグループ化するようにしてもよい。こうすることで、地図を見た時に、文字列の意味が理解しやすくなり、見やすさを向上させることができる。
【００２０】
（６）複数種類の地図記号をグループ化するようにしてもよい。例えば、郵便局、警察、学校などの施設を表す地図記号を全て一つのグループとしてまとめてもよい。地図記号の種別を問わず、全地図記号を一つのグループとしてまとめるようにしてもよい。地図記号は一般人にとって文字列ほどなじみが深くないのが通常であるため、向きが変わると認識しづらくなる傾向にある。上記態様により、地図記号については表示方向を統一することにより、地図記号が認識しやすくなり、地図の見やすさを向上させることができる。地図記号の他、地図中の各街区に付される街区番号や、各ビルに付されるビルの高さ表示（階数表示）などもそれぞれグループ化してもよい。
【００２１】
（７）通行規制を表す記号、例えば一方通行や右左折禁止などの進行方向に対する規制を表す記号については、グループ化の対象から除外することが好ましい。これらの記号は道路に沿って表示された方がその意味を理解しやすい性質のものである。通行規制を表す記号をグループ化から除外することにより、各記号の向きを道路に沿うように個別に制御することが可能となり、地図を見やすくすることができる。
【００２２】
このようにグループ化された文字列の文字の配列の制御も種々の方法を適用可能である。例えば、出力条件として指定された回転角の要求値と、文字の向きの比較に基づいて配列を決定するようにしてもよい。例えば、これらのデータから、要求された回転角だけ回転した時点での文字の向きを求め、この向きに基づいて縦書き、横書きの切り替えの要否を判断する方法を採ることができる。複数の文字列については、これらの文字列内の文字の向きを表す代表値（以下、「代表方向」と呼ぶ）を設定し、この代表方向を用いて、上述の判定を行えばよい。こうすることにより、個別の文字列の制御と同様の方法で、複数の文字列を統一的に制御することが可能となる。
【００２３】
上述の代表方向は、例えば、グループ化された文字列のいずれかの文字列の方向を用いてもよい。こうすることで、代表方向に設定された文字列に関しては、最も見やすい状態を実現することができ、結果として、グループ内の文字列全体の統一感を向上させることができる。代表方向は、関連づけられた複数の文字列の方向の平均値としてもよいが、この場合は、他の文字列と極端に方向が異なる文字列が存在すると平均値が影響を受け、グループ内の文字列全体の配置切り替えタイミングが不適切になるおそれもある。いずれかの文字列の方向を代表方向として採用すれば、かかる弊害を回避することができる利点がある。
【００２４】
代表方向は、例えば、グループ内の文字列の方向の中央値とすることができる。ｉ（ｉは自然数）番目の文字列（以下、「文字列ｉ」と表す）における方向をＡｉとし、文字列ｉ，ｊ（ｊは自然数）の方向Ａｉ，Ａｊの方向の差違をＡｉｊと表す時、中央値はΣｊＡｉｊが最小値となる文字列ｉの方向Ａｉとなる。単純な例では、例えば、５つの文字列の向きを角度の小さい順にＡ１〜Ａ５と並べると、中央値はＡ３の向きとなる。こうすることで、グループ全体の統一感を保ちつつ、適切なタイミングでの配置の切り替えが可能となる。
【００２５】
代表方向は、複数の文字列に予め設定された規則に従って重みを与えた場合の中央値に基づいて設定してもよい。各文字Ａｊに与えられる重みをＷｊとすると、重みを与えた場合の中央値は、ΣｊＷｊＡｉｊが最小値となる文字列ｉの方向Ａｉとなる。重みは、例えば、文字列が対応づけられている地物の面積、文字列のフォントサイズなどに基づいて設定することができる。こうすることにより、グループ内の主要な文字に基づいて代表方向が決定されやすくなるため、統一感および切り替えタイミングの適切さを向上させることができる。
【００２６】
これらの態様を採る場合、グループ内の代表方向を予め地図データに登録しておくようにしてもよい。この場合、地図データは、地図中に表示すべき複数の文字列を格納する文字列データ格納領域と、関連情報格納領域、代表方向情報格納領域を有するデータ構造となる。関連情報格納領域には、複数の文字列の一部を関連づける情報が記録される。例えば、各文字列に対して、グループ固有のＩＤを付す構造が挙げられる。代表方向情報格納領域には、関連づけられた文字列の代表方向を表す情報が記録される。例えば、代表方向としての角度をグループ単位で登録しておくようにしてもよい。また、グループ内のいずれかの文字列の方向を代表方向として用いる場合には、各文字列に対して代表か否かを表すフラグを付すようにしてもよい。
【００２７】
文字配列の制御は、上述のように代表方向を設定する方法に限られない。例えば、グループ内の少なくとも一部の文字列について文字の配列を変化させるべき条件が成立した時点で、グループ内の文字列の配列を統一的に変化させるようにしてもよい。逆に、全ての文字列に対して条件が成立した時に、グループ内の文字列の配置を統一的に変化させるようにしてもよい。これらの方法を用いることにより、例えば、ナビゲーション装置など地図の方向が連続的に変化する場合において、地図の方向が左右に振動するように変化する時に、比較的容易に文字列の配置が頻繁に変化することを回避可能となる。
【００２８】
本発明では、地図を連続的に移動させながら表示させてもよい。この場合、先に説明した出力条件としては、地図の出力範囲の指定、および地図の出力範囲を連続的に移動させる移動コマンド、または地図の出力範囲を所定の代表点周りに連続的に回転させる回転コマンドが含まれる。移動コマンドおよび回転コマンドは、いずれか一方のみを含むものとしてもよいし、双方を含んでも良い。後者には、例えば、カーブしている道なりに進行する際に、進行方向が上となる向き、いわゆるヘディングアップで地図を表示する態様が相当する。本発明の地図出力装置は、このような表示を行う際には、出力範囲内の文字列をグループとして関連づけ、グループ内の文字列内の文字の向きの代表値となる代表方向を設定し、この代表方向を用いることで移動コマンドまたは回転コマンドに応じて文字の配列を制御する。こうすることで、出力される文字の配列を統一的に制御することができ、移動中も見やすい地図を提供することができる。
【００２９】
上述の制御を行う際、代表方向は、移動コマンドまたは回転コマンドが継続的に入力されている期間は、グループ内の文字列に対して相対的に固定してもよい。こうすることで、地図を移動または回転している間、代表方向が不規則に変動することを回避でき、出力される文字の配列が不規則に変化することを回避できる。
【００３０】
地図を回転させる場合、出力範囲が矩形など非円形である時には、回転中心となる代表点から遠方の領域では、回転に伴って出力範囲に含まれる文字が変化していく。仮に、出力範囲全体に含まれる文字の向きに基づいて代表方向を設定すると、出力範囲に含まれる文字が変化するのに伴って、代表方向が不規則に変化することが生じ得る。こうした弊害を回避する観点から、回転コマンドが入力された場合には、代表方向は、例えば、代表点を中心とする出力範囲の内接円に重なる文字列の文字の向きに基づいて設定してもよい。内接円に完全に含まれる文字列を用いても良いし、一部でも含まれる全文字列を用いても良い。こうすることにより、出力範囲の回転中も内接円内の文字は変化しないため、代表方向が不規則に変化することを回避でき、出力される文字の配列が不規則に変化することを回避できる。
【００３１】
上述の制御においては、移動コマンドが入力された場合と回転コマンドが入力された場合とで、代表方向の設定方法を切り換えてもよい。例えば、回転コマンド入力時には上述した内接円内の文字列に基づいて代表方向を設定し、移動コマンド入力時には、これと異なる方法で代表方向を設定するようにしてもよい。例えば、移動コマンドの入力が開始された時点で設定された代表方向を固定的に用いるようにしてもよい。こうすることで、移動コマンドおよび回転コマンドのそれぞれに適した方法で代表方向を設定することができ、より見やすい地図を提供することができる。移動コマンド入力時には代表方向を固定する態様には、移動コマンド入力時に文字の配列を制御するための処理負荷を軽減することができ、地図の表示速度を向上させることができる利点もある。この態様において、移動コマンドと回転コマンドの双方が同時に入力された場合は、移動コマンドまたは回転コマンドの一方が入力されたものとして扱っても良いし、移動コマンド入力時および回転コマンド入力時のいずれとも異なる方法で代表方向を決定しても良い。
【００３２】
本発明は、上述の地図出力装置としての態様の他、表示装置と組み合わせて地図表示システムとしたり、印刷装置と組み合わせて地図印刷システムとして構成してもよい。また、コンピュータによって地図を出力させる地図出力方法として構成してもよい。更に、地図を出力させるためのコンピュータプログラムとして構成することもでき、このコンピュータプログラムを記録した記録媒体として構成することもできる。ここで、記録媒体としては、フレキシブルディスクやＣＤ−ＲＯＭ、光磁気ディスク、ＩＣカード、ＲＯＭカートリッジ、パンチカード、バーコードなどの符号が印刷された印刷物、コンピュータの内部記憶装置（ＲＡＭやＲＯＭなどのメモリ）および外部記憶装置等、コンピュータが読取り可能な種々の媒体を利用できる。
【発明を実施するための最良の形態】
【００３３】
本発明の実施例について以下の順序で説明する。
Ａ．装置構成：
Ｂ．文字表示制御：
Ｂ１．代表方向設定処理：
Ｂ２．代表方向設定処理（変形例）：
Ｂ３．文字表示制御処理：
Ｃ．第２実施例：
Ｄ．変形例：
Ｅ．第３実施例：
【００３４】
Ａ．装置構成：
図１は実施例としての地図表示システムの構成を示す説明図である。地図表示システムは、ナビゲーション装置１００からの指示に従ってサーバ２００で経路探索を行い、その結果とともに経路案内用の地図をナビゲーション装置１００に提供するシステムである。本実施例の地図表示システムは、サーバ２００とナビゲーション装置１００とをネットワークＮＥＴで接続して構成されている。ネットワークＮＥＴは無線通信を利用したネットワークであり、ＬＡＮやイントラネットのように限定的なものであってもよいし、インターネットのように広域的なものであってもよい。
【００３５】
ナビゲーション装置１００は、ユーザの操作に応じて、経路探索および地図表示に必要な指示をサーバ２００に送信するための機能を奏する。図中には、ナビゲーション装置１００の機能ブロックを併せて示した。ナビゲーション装置１００は、ＣＰＵ、ＲＡＭ、ＲＯＭを備えたマイクロコンピュータを制御装置として内蔵しており、このＣＰＵはＲＯＭに記憶されたソフトウェアを実行することで、図示する各機能ブロックを構成する。これらの機能ブロックは、このようにソフトウェア的に構成する他、ハードウェア的に構成することも可能である。
【００３６】
通信部１２０は、ネットワークＮＥＴを介してサーバ２００と通信する機能を奏する。ＧＰＳ１４０は、全地球測位システム（Global Positioning System）を利用して、ナビゲーション装置１００の現在位置の緯度、経度を検出する。コマンド入力部１３０は、スイッチ等に対するユーザ操作に基づいて、経路探索や地図表示に関するコマンドを入力する。コマンドとしては、図示した通り、経路探索の目的地の指定、表示モード、ズームなどが挙げられる。表示モードとは地図の表示態様の指定であり、本実施例では、常に北方向を上向きに表示する「ノースアップモード」、進行方向を上向きに表示する「ヘディングアップモード」が含まれる。これらの指定は、サーバ２００に送信される。表示制御部１５０は、ナビゲーション装置１００のディスプレイに、上述したコマンド入力用のメニューを表示したり、サーバ２００から受信した地図表示データに基づいて地図を表示させたりする。主制御部１１０は、上述した各機能ブロックを統括制御することで、ナビゲーション装置１００の全体機能を制御する。
【００３７】
サーバ２００は、ナビゲーション装置１００からのコマンドに基づいて、種々のデータベースを参照しながら、地図表示するための地図表示データを生成したり、経路探索を行ったりし、その結果をナビゲーション装置１００に提供する。図中では、かかる機能のうち、特に地図表示を実現するための機能ブロックおよびデータベースの例を図中に示した。この他、サーバ２００には、経路探索を実現するための機能ブロックが備えられるが、その構成は周知であるため図示および詳細な説明を省略する。図中の各機能ブロックは、サーバ２００のＣＰＵが実行するコンピュータプログラムによって、ソフトウェア的に構成されるが、ハードウェア的に構成することも可能である。
【００３８】
通信部２０２は、ナビゲーション装置１００からのコマンドの受信、およびナビゲーション装置１００への地図表示データの送信などを行う。表示データ生成部２０４は、ナビゲーション装置１００から経路案内のコマンドに基づいて、案内用の地図を表示するため、地図表示データを生成する。
【００３９】
この地図は、地図ＤＢ２２０を参照して生成される。地図ＤＢ２２０は、地図を表示するためのデータベースであり、背景レイヤ、地物レイヤ、文字レイヤなどの階層に分けて必要なデータを格納している。背景レイヤは、河川などの水系や陸地の形状を記録するレイヤである。地物レイヤは、道路、鉄道、建造物などの地物のポリゴンデータおよび属性データを記録するレイヤである。文字レイヤは、地図上に表示すべき文字情報を記憶するレイヤである。各レイヤは、更に、細かいレイヤに分けて記録されている。
【００４０】
地図ＤＢ参照部２０６は、表示対象となる地域のデータを地図ＤＢ２２０から読み込み、表示データ生成部２０４に受け渡す。また、文字レイヤの情報については、文字表示制御部２０５に受け渡す。
【００４１】
文字表示制御部２０５は、地図の方向に応じて文字の方向を回転させるとともに、縦書き、横書きの配置を切り替える制御を実行する。この制御は、ヘディングアップモードが指定されている時に有効である。ヘディングアップモードでは、ナビゲーション装置１００の進行方向に応じて地図が回転する。従って、このモードでは、ユーザに見やすい地図を提供するため、地図の回転に応じて文字の表示方向等を制御する必要がある。こうすることで、家枠などの地物の表示との干渉を避けて、文字を表示させることが可能となる。以下、このように文字の向きおよび縦書き、横書きの配置を制御することを「文字表示制御」と称する。文字表示制御部２０５は、この文字表示制御を実行する機能ブロックである。
【００４２】
文字表示制御の内容は後述する通り各文字列の表示を個別に制御するだけでなく、グループ化された複数の文字列の統一的な制御も実行する。この統一的な制御には、後述する通り、グループ化された複数の文字列に設定された代表方向が用いられる。代表方向テーブル２１０は、この代表方向テーブル２１０を記憶しているテーブルである。
【００４３】
Ｂ．文字表示制御：
図２は文字表示制御の概要を示す説明図である。破線で囲った部分は地図中の一つの街区を表している。状態Ｍ１〜Ｍ８は、地図の回転に合わせて、それぞれ同一の街区を回転させて表示した例を示している。例えば、北を上に向けて地図を表示する際には、この街区の表示は、状態Ｍ１となる。地図の上方向となる方位を西側に４５度回転させ北西が上となる時、街区の表示は状態Ｍ２となる。以下、順に４５度回転させた時の街区の表示が状態Ｍ３〜Ｍ８となる。
【００４４】
このように地図の上側に来るべき方位に応じて、地図は回転して表示される。以下では、単に地図を図中のθ方向に回転させて表示するという表現で説明を行うが、それぞれの場合における方位との対応関係は上述の通りである。
【００４５】
本実施例において、文字の「方向」とは、例えば、図中に示す「ＭＭ銀行」の文字のように各文字の上方向Ｄｃｈを表す。文字の方向は、この上方向Ｄｃｈと表示時の基準方向（図中のＮ方向）との角度差Ａｃｈで定量的に表現するものとする。
【００４６】
図２の例は、本実施例で実現すべき文字表示制御の概要を表している。まず、本実施例では、それぞれの文字の方向が、地図の上方向（図のＮ方向）から±４５度の範囲を向くように、文字の方向および縦書き、横書きの配置を制御する。例えば、状態Ｍ１では横書きで表示されている「ＭＭ銀行」の文字は、この状態では、上述の範囲を向いている。
【００４７】
地図を４５度回転させて状態Ｍ２となった時、「ＭＭ銀行」が横書きのままであったとすると、その方向は、Ｎ方向から（４５＋Ａｃｈ）度の方向を向くことになり、上述の範囲からはずれることになる。これに対し、文字の配置を縦書き切り替えれば、図示するようにＮ方向から４５度以内の方向を達成することができる。厳密には、地図を（４５−Ａｃｈ）度回転させたところで縦書きへの切り替えを行うことになる。
【００４８】
以下、同様の考え方により、状態Ｍ３では縦書きのまま、状態Ｍ４，Ｍ５では横書き、状態Ｍ６，Ｍ７では縦書き、状態Ｍ８では横書きにそれぞれ配置を切り替えることによって、Ｎ方向から±４５度内の方向を達成することができる。
【００４９】
しかし、上述の考え方を、街区内のそれぞれの文字列に個別に適用すると、例えば、状態Ｍ１においてやや右上がりに書かれている「Ｎ時計店」の文字は、４５度よりも大きい角度だけ回転させて初めて縦書きに切り替えられることになるから、状態Ｍ２では横書きのままで表示されることになる。従って、個別に制御した場合には、状態Ｍ２において「ＭＭ銀行」は縦書きになっているにも関わらず、「Ｎ時計店」は横書きのままとなってしまう。しかもこの時点では配列の相違に伴い、「ＭＭ銀行」と「Ｎ時計店」の文字列の方向は約９０度異なることになる。
【００５０】
本実施例では、このように非常に見づらい状態を避けるため、同一街区内の文字の表示を統一的に制御する。例えば、状態Ｍ２では、上述の考え方からすれば配置の切り替えは不要であるにも関わらず、図示する通り「Ｎ時計店」の配置を縦書きに切り替えるのである。以下、状態Ｍ３〜Ｍ８においても、それぞれ街区内の文字列は統一的に配置の切り替えを行う。
【００５１】
以下、かかる制御を実現するための処理について説明する。本実施例では、同一の街区に存在する文字列を自動的にグループとして扱い、統一的に制御する態様を例にとって説明する。即ち、サーバ２００は地図データの各文字列に対応づけられた住所情報から、それぞれの文字列の街区を判定し、同一街区に属する文字列をグループとして扱う。
【００５２】
Ｂ１．代表方向設定処理：
図３は代表方向設定処理のフローチャートである。サーバ２００の文字表示制御部２０５が他の機能ブロックと協同しながら実現する処理であり、ハードウェア的にはサーバ２００のＣＰＵが実行する処理である。
【００５３】
この処理は、図２に示したように、グループ化された文字列を統一的に扱うための代表方向を予め決定する処理である。決定された代表方向は、代表方向テーブル２１０に記録される。図２に示した文字表示制御においては、各街区の文字列に対しては、この代表方向が、図２中のＮ方向±４５度の範囲内になるよう、向きおよび配置の制御がなされることになる。
【００５４】
代表方向設定処理が開始されると、サーバ２００は対象グループの文字データを入力する（ステップＳ１０）。本実施例では、街区単位でグループを生成する場合を想定しているから、ここではいずれか未処理の街区を選択し、そこに属する複数の文字列を入力することになる。
【００５５】
サーバ２００は、これらの文字列の方向の中央値を算出する。図中に中央値の算出例を示した。図示する通り、文字列番号０〜６の７通りの文字列が処理対象となっている場合を考える。それぞれの文字列の方向Ａｉは、図中に示す通り、０度、１５度、６０度、７５度、９０度、１０５度、１２０度と求まっているものとする。
【００５６】
この時、中央値は、文字列番号ｉ，ｊ（ｊは自然数）の方向Ａｉ，Ａｊの方向の差違をＡｉｊと表す時、ΣｊＡｉｊが最小値となる方向Ａｉとなる。図の表に、それぞれＡｉｊ、およびΣｊＡｉｊを示した。この例では、Ａ３の方向７５度が中央値として求められる。それぞれの文字列の方向に重みを与えない場合には、中央値は、単純に方向Ａｉを昇順または降順にソートして中央に来る値と一致する。このように、本実施例では、代表方向は、グループ内のいずれかの文字列の方向と一致する。
【００５７】
サーバ２００は、こうして求められた値を、代表方向として代表方向テーブル２１０に登録する（ステップＳ３０）。図中に代表方向テーブル２１０のデータ構造例を示した。この例では、グループ名として「○○市△△町…」という街区名を用い、そこに含まれる文字列および代表方向をテーブル形式で記録するものとした。
【００５８】
グループおよび代表方向は、地図の縮尺に応じて設定してもよい。図示する通り、拡大図（表示レベル１）の場合には、街区単位でグループを作成し、表示レベル３などの広域図では市単位でグループを作成するようにしてもよい。代表方向テーブル２１０には、表示レベルと対応づけて、各グループおよび代表方向を記録しておけばよい。こうすることにより、同一の文字列であっても、表示レベルに応じてグループを変え、回転時の制御態様を切り替えることが可能となる。従って、各表示レベルに応じて見やすい文字表示を実現することが可能となる。
【００５９】
代表方向設定処理においては、地図の表示範囲内の文字のみを用いて求めるようにしてもよい。地図の出力時には、地図の中心点位置および表示範囲が指定されるため、サーバ２００はこれらの指定に基づいて地図の表示範囲を決定することができ、それぞれの文字がこの表示範囲に含まれるか否かを判定することができる。従って、この表示範囲に含まれる文字のみを用いて代表方向を設定することもできる。この方法は、表示範囲から外れる文字の影響を受けずに代表方向を設定することができる点で、文字表示の制御に適している。また、上述の処理では、表示範囲内の文字をグループとして扱っても良い。こうすることで、表示範囲内の文字全体の表示を統一的に制御でき、見やすい文字表示を実現することが可能となる。
【００６０】
図４は文字レイヤのデータ構造例を示す説明図である。代表方向は、代表方向テーブル２１０に代えて、各文字列の属性データの一つとして記録するようにしてもよい。例えば、図４（ａ）に示すように、文字レイヤにおいて、文字ＩＤ、文字列、文字列を表示すべき基準位置の座標、表示方向（図２参照）、縦書き／横書きの配置などを対応づけて記録し、更に、代表方向を記録する。この例では、ＩＤ０とＩＤ１の文字列がグループとなっていることは明示的には記録されていない。しかし、両者に共通の代表方向が記録されていることにより、文字表示は統一的に制御することが可能となる。
【００６１】
本実施例では、グループの代表方向はいずれかの文字列の方向と一致する。従って、図４（ｂ）に示すように、代表方向を与える文字列を識別するためのフラグを記録するようにしてもよい。図の例では、文字ＩＤ００〜ＩＤ０２の各文字列に対し、フラグ「０」が与えられ、ＩＤ０３の文字列に対し、フラグ「１」が与えられている。文字ＩＤの上位桁「０」はグループの識別子である。図４（ｂ）によれば、ＩＤの上位桁が「０」である文字列（ＩＤ００〜ＩＤ０３）については、代表方向はフラグが付されたＩＤ０３の文字列の方向、７５度であると認識することが可能となる。グループを識別するための情報には、上述の態様に限らず、種々の方法を採ることが可能であり、例えば、別途、グループＩＤを設けるようにしてもよい。グループの識別子の桁数を増やしたり、グループＩＤの数を増やしたりすることにより、表示レベルごとのグループ設定も可能となる。
【００６２】
Ｂ２．代表方向設定方法（変形例）：
図５は変形例としての代表方向設定方法を示す説明図である。図３のステップＳ２０に代わる処理である。図３の例では、グループ内の文字列に対して重みを付すことなく中央値を求めた。これに対し、図５の変形例では、重みを付して中央値を求める例を示す。
【００６３】
各文字Ａｊに与えられる重みをＷｊとすると、重みを与えた場合の中央値はΣｊＷｊＡｉｊが最小値となる文字列ｉの方向Ａｉとなる。重みは、例えば、文字列が対応づけられている地物の面積、文字列のフォントサイズなどに基づいて設定することができる。図の例では、文字列番号５，６に重み「２」を与え、その他の文字列に重み「１」を与えた例を示した。表中には、それぞれＷｊＡｉｊ、およびΣｊＷｊＡｉｊの値を示した。この例では、中央値はＡ３の７５度と求められる。重みＷｊの設定によって、中央値は変化する。
【００６４】
変形例の方法によれば、グループ内での主要な建築物や、大きなフォントで表示される文字などを重視して、中央値を設定することができる。この結果、地図表示時に注意を引きやすい文字列の状態に即して、グループ内の文字列の表示が制御される可能性が高くなり、より違和感の少ない表示を実現することが可能となる。
【００６５】
Ｂ３．文字表示制御処理：
図６は文字表示制御処理のフローチャートである。地図を表示する際に、文字表示制御部２０５が実行する処理であり、ハードウェア的にはサーバ２００のＣＰＵが実行する処理である。この処理では、図３〜５で設定された代表方向を用いて、地図の回転に応じた文字表示を実現する。
【００６６】
処理を開始すると、サーバ２００は、地図表示範囲および地図回転方向θを入力する。そして、先に設定した代表方向を用いて、グループごとに文字の向きおよび配置を判定し（ステップＳ６０）、文字表示データを出力する（ステップＳ７０）。サーバ２００が、このデータと、地形や地物などを表した背景データ、地物データとを併せて、ナビゲーション装置１００に送信すると、ナビゲーション装置１００に地図が表示される。
【００６７】
図中に文字の向きおよび配置の判定方法を示した。図３〜５に示すように、代表方向が７５度と設定されているとする。地図を回転させない時（θ＝０度）なら、代表方向の文字は、左側に示す文字列「Ａ３Ａ３Ａ３」のように示されることになる。この状態から、地図をθ方向に回転させると、地図が６０度回転し、文字列の方向が１３５度に来る時に横書きから縦書きへの配置の切り替えが行われることになる。
【００６８】
本実施例では、ナビゲーション装置１００への地図表示を行う。ヘディングアップモードで表示を行うものとすれば、地図の回転角度は、ユーザ、即ちナビゲーション装置１００の進行方向に応じて定まる。従って、回転角度は、単調に増加または減少するとは限らず、振動的に増減することもある。本実施例では、このような増減が生じた場合でも、文字の配置が頻繁に切り替わるのを回避するため、切り替え判定に数度のヒステリシスを設けた。
【００６９】
図の右側に、ヒステリシスによる効果を示した。図中のハッチングを付した範囲がヒステリシスの幅である。図の上方に横書き／縦書きの切り替えの様子を示した。例えば、図示するように、地図の回転角度が徐々に増大し、６０度をまたいで二度増減を繰り返して、単調に減少する場合を考える。ヒステリシスをもうけない場合には、破線で示すように、６０度をまたぐ度に縦書き、横書きの切り替えが行われ、この例では合計４回の切り替えが行われることになる。
【００７０】
これに対し、ヒステリシスを設けた場合、回転角が増加する際には、６０度を超えても配置の切り替えが行われず、ヒステリシス幅の上限値を超えた時点で、初めて縦書きへの切り替えが行われる。次に減少する際には、６０度になっても切り替えは行われず、ヒステリシス幅の下限値を下回った時点で、横書きへの切り替えが行われる。この結果、途中の増減による影響は現れず、縦書き、横書きの切り替えは２回におさまることになる。
【００７１】
ヒステリシスの幅は任意に設定可能である。ただし、ヒステリシス幅を大きくすると、縦書き、横書きの切り替えが行われるのが遅れるため、見にくい表示となる可能性がある。ヒステリシス幅は、地図の回転に伴う切り替えの追随性と、頻繁な切り替えの抑制という相反する効果を考慮しつつ、設定することが好ましい。
【００７２】
以上で説明した実施例の地図表示システムによれば、地図の回転に合わせて文字の向きおよび配置を制御することができる。この際、街区内の文字列の表示を統一的に制御することができるため、違和感のない見やすい地図を提供することが可能となる。
【００７３】
Ｃ．第２実施例：
次に、第２実施例について説明する。装置構成は、第１実施例（図１）と概ね同様である。第１実施例では代表方向に基づいて文字表示を制御する例を示したが、第２実施例では代表方向を用いることなく文字表示を制御する例を示す。従って、図１に示した装置構成のうち、代表方向テーブル２１０については省略可能である。
【００７４】
図７は第２実施例としての文字表示制御処理のフローチャートである。サーバ２００は処理を開始すると、第１実施例と同様、地図表示範囲および地図回転方向θを入力する（ステップＳ５０Ａ）。
【００７５】
サーバ２００は、回転方向θに基づいて、文字の向きおよび配置を判定する（ステップＳ６０Ａ）。この判定は、各文字列ごとに行う。従って、この段階では、グループ内の文字列であっても、向きおよび配置は不統一となる可能性がある。
【００７６】
次に、サーバ２００は文字表示の統一化を行う（ステップＳ６５Ａ）。この処理は、グループ内の文字列について、ステップＳ６０Ａの判定結果を評価し、グループ全体の文字列の向きおよび配置を決定する処理である。図中に判定方法を例示した。文字列「Ａ０Ａ０Ａ０」〜「Ａ３Ａ３Ａ３」は同じグループ内の文字列であるとし、ステップＳ６０Ａの判定により、文字列「Ａ２Ａ２Ａ２」についてのみ縦書き、横書きの配置の切り換えが必要と判断されたものとする。第２実施例では、このようにグループ内のいずれか一つ以上の文字列について配置の切り換えが必要と判断された時点で、全文字列について配置の切り換えを行うことで表示を統一化する。図中の例では、図示する通り、このグループ内の文字列は、全て配置を切り換えることになる。
【００７７】
サーバ２００は、こうして設定された文字表示データを出力して（ステップＳ７０Ａ）。文字表示制御処理を終了する。第２実施例の方法によっても、グループ内の文字表示を統一化することができ、違和感のない地図表示を実現することができる。
【００７８】
第２実施例の統一化（ステップＳ６５Ａ）を行うための条件は任意に設定可能である。例えば、グループ内の２以上の所定数の文字列について切り換えが必要と判断された時点や、グループ内の全文字列について切り換えが必要と判断された時点で統一化を行うようにしてもよい。
【００７９】
Ｄ．変形例：
第１および第２実施例では、街区内の文字列をグループとする例を示したが、グループは種々の設定が可能である。例えば、街区の他、文字列に対応する住所を基準として、行政界単位、街区単位などでグループを作成してもよい。また、学校敷地内の棟名称や、テーマパーク敷地内のアトラクション名称などでグループを作成してもよい。また、行政界を表す文字、道路や交差点や地名などを表すための文字、公共利用の施設を表す文字、個人の住居を表す文字など、文字列のカテゴリーごとにグループを作成してもよい。文字を表示する際の文字サイズまたは文字色ごとにグループを作成してもよい。例えば、「○○町」が赤字で表示され、「○○丁目」が黒字で表示されるような場合には、前者と後者を別々のグループとして定義することができる。ユーザの視認性には、文字色が与える影響も大きいため、このようにカテゴリーと文字色とを考慮してグループ化することにより、見やすさを、より向上させることができる。グループは、例えば、地図の縮尺などに応じて変化するようにしてもよい。
【００８０】
図８はグループ化を例示する説明図である。この図は、住宅地図の一部を示したものであるが、図の煩雑化を避けるため、それぞれの家枠に記入される文字の表示は省略した。以下、上述の態様の他、図８を参照しながら、種々のグループ化の例について説明する。
【００８１】
（１）  隣接する複数の街区をまとめてグループ化するようにしてもよい。隣接した街区は文字列の方向が概ねそろっていることが多いため、これらの街区をまとめてグループ化することにより、地図の見やすさを向上させることができる。例えば、図８中でハッチングを付した街区Ａ、Ｂ、Ｄをグループ化させる態様を採ることができる。グループ化する街区の範囲は種々の設定が可能であり、街区内の図心などを代表点と定義し、この代表点同士の距離が所定範囲内にあるもの同士をグループ化するようにしてもよい。街区間を隔てる道路が所定幅以内であるもの同士としてもよい。道路幅を基準とする態様を採る場合、基準値となる道路幅によっては、図８では、街区Ａ，Ｂは両者を隔てる道路が狭いため、グループ化されるが、街区Ｄと街区Ａ，Ｂとを隔てる道路は幅が広いため、街区Ｄはグループ化から外れることがある。
【００８２】
（２）  特定の道路と隣接する街区同士または複数の家枠同士をグループ化するようにしてもよい。例えば、図８中で、中央通りに沿った街区ＢとＣをグループ化させる態様が該当する。この態様によれば、例えば、特定の国道の両側に配置された家屋の文字列の方向を統一的に表示することが可能となる。道路に沿って配置された家屋の形状は、視覚的な統一感を有していることが多いため、これらの文字を統一することにより、見やすさを向上することができる。グループ化する際の基準となる道路は、例えば、道路幅、道路種別、道路の形状（直線か曲線か）などに応じて種々設定することができる。
【００８３】
（３）  上述の例と同様、一本の道路に沿って隣接して配置された家屋同士をグループ化するようにしてもよい。この態様は、街区と無関係にグループを作成する態様である。例えば、図８中で、街区Ｂ、Ｄ中のうち中央通りに沿った家屋をグループ化する態様が該当する。この態様によれば、ある道路の片側に並ぶ家屋の文字列を統一させることが可能である。
【００８４】
グループ化する範囲は、所定幅以上の道路で挟まれた範囲や、同一行政界に属する範囲などの形で規定することができる。例えば、図８中において街区Ｄの下方に走る道路「晴海通り」でグループを区切るものとすれば、街区Ｂ，Ｄ内の家屋は同一のグループにまとめられることになる。例えば、道路を挟んで一方が住宅街、他方が商業施設などのように区画整理がなされているような地域にこの態様を適用することにより、道路の両側では文字列の方向が異なることを許容しつつ、区画ごとに文字列を統一し、見やすさを向上させることもできる。例えば、図８中で街区Ｂ，Ｄに属する家屋と、街区Ｃに属する家屋とを別グループとして定義する態様が相当する。
【００８５】
（４）  文字列のカテゴリーに応じてグループ化する一例として、例えば、学校、警察署、郵便局など、施設の種類ごとにグループを作成するようにしてもよい。これらの施設は、比較的広いスペースが確保されていることが多く、文字列も太字で記載されていることが多い。また、これらの施設は地図を見る上で目標物となることも多い。従って、上記態様により、これら施設の文字列を統一することにより、地図の見やすさを向上させることができる。
【００８６】
（５）  図８中の領域Ｅに示すように、交差点名と信号機記号とをグループ化するようにしてもよい。このように文字列を、関連の深い記号とグループ化するようにしてもよい。こうすることで、地図を見た時に、文字列の意味が理解しやすくなり、見やすさを向上させることができる。
【００８７】
（６）  図８中の領域Ｆ内に示すように、複数種類の地図記号をグループ化するようにしてもよい。図中の領域Ｆ内には、郵便局と銀行の地図記号が含まれている。このような各種の地図記号をそれぞれの種類ごとにグループとしてもよいし、種別を問わず全地図記号を一つのグループとしてまとめるようにしてもよい。地図記号は一般人にとって文字列ほどなじみが深くないのが通常であるため、向きが変わると認識しづらくなる傾向にある。上記態様により、地図記号については表示方向を統一することにより、地図記号が認識しやすくなり、地図の見やすさを向上させることができる。地図記号の他、地図中の各街区に付される街区番号（図８中の丸付き数字）や、各ビルに付されるビルの高さ表示（階数表示）などもそれぞれグループ化してもよい。
【００８８】
（７）  通行規制を表す記号、一方通行（図８中の記号Ｇ）や右左折禁止などの進行方向に対する規制を表す記号については、グループ化の対象から除外することが好ましい。これらの記号は道路に沿って表示された方がその意味を理解しやすい性質のものである。通行規制を表す記号をグループ化から除外することにより、各記号の向きを道路に沿うように個別に制御することが可能となり、地図を見やすくすることができる。
【００８９】
また、グループはサーバ２００が自動的に設定する他、予めオペレータが手動でグループ化を行い、図３のステップＳ３０に示した形式や図４（ｂ）に示した形式で、グループを登録しておくようにしてもよい。更に、半自動でグループ化する態様を採ることもできる。例えば、道路を基準としてグループ化を行う場合に、基準となる道路をオペレータが選択する方法がこれに該当する。具体例として、図８において、「中央通り」をオペレータが指定することで、これに沿った街区や家屋をグループ化する態様を採ることができる。
【００９０】
Ｅ．第３実施例：
第３実施例として、地図の表示を連続的に移動または回転させる場合の文字表示の制御について説明する。もっとも、第１実施例および第２実施例で説明した方法も、連続的に回転させる際に適用可能ではある。第３実施例では、これらの表示により適した方法を説明する。第３実施例のハードウェア構成は、第１実施例（図１）と同様である。第３実施例では、表示範囲内の文字列をグループとして統一的に表示制御するものとして説明する。
【００９１】
図９は回転時における文字表示の制御方法を示す説明図である。地図の表示方向を回転させるための回転コマンドが連続的に入力されている場合の文字表示の制御方法を示した。図９（ａ）は回転時の地図の表示範囲およびそこに含まれる文字列を例示している。ある時点で、地図の表示範囲が実線で示す領域ＭＰ１であったとする。領域ＭＰ１内には、「Ｑ大学」、「ＨＮホテル」、「ＮＧＯドーム」、「ＭＭ銀行」などの文字列が含まれる。地図が図中の矢印方向にθだけ回転し、表示範囲が破線で示す領域ＭＰ２になったとする。この時点では、「ＮＧＯドーム」が領域ＭＰ２から外れ、代わって「Ｋビル」、「（株）Ｚ社」などが領域ＭＰ２内に含まれることになる。従って、先に図３で示した方法で代表方向となるべき角度を求めると、領域ＭＰ１、ＭＰ２に含まれる文字列の変化することによって、代表方向も不規則に変化する場合がある。
【００９２】
第３実施例では、こうした弊害を回避するため図中にハッチングを付して示した領域ＣＡ内の文字列に基づいて代表方向を決定する。領域ＣＡは、表示範囲を回転表示する際の回転中心を中心として表示範囲に内接する円領域である。第３実施例では、表示範囲の重心を中心とする円となっている。地図を回転させた場合でも、この領域ＣＡ内の文字列は変化しない。図の例では、領域ＣＡ内の文字列「ＨＮホテル」は、地図を回転させる間、常に領域ＣＡ内に存在する。従って、領域ＣＡ内の文字列に基づいて代表方向を決定することにより、回転中に代表方向が不規則に変化することを回避できるのである。
【００９３】
図９（ｂ）は、地図の回転角度に対する代表方向の変化を示すグラフである。細線で示したグラフＬ１は、図９（ａ）内の領域ＭＰ１、ＭＰ２内の文字列に基づいて代表方向を決定した場合の様子を示している。太線で示したグラフＬ２は、図９（ａ）内の領域ＣＡ内の文字列に基づいて代表方向を決定した場合の様子を示している。領域ＭＰ１、ＭＰ２内の文字列を用いる場合には、グラフＬ１に示すように代表方向が不規則に変化するのに対し、領域ＣＡ内の文字列を用いる場合には、グラフＬ２に示す通り代表方向はほぼ一定値となる。
【００９４】
図１０は移動時における文字表示の制御方法を示す説明図である。移動コマンドに従って、矢印Ｖ方向に移動し、表示範囲が領域ＭＰ１１から領域ＭＰ１２に移動した場合を考える。表示範囲の中心点はＣＧ１１からＣＧ１２まで移動する。この時、領域γ内の文字列は、移動前の領域ＭＰ１１内には含まれているものの、移動後の領域ＭＰ１２には含まれなくなる。領域α内の文字列は、移動前の領域ＭＰ１１には含まれないが、移動後の領域ＭＰ１２には含まれるようになる。領域β内の文字列は、移動前後の領域ＭＰ１１、ＭＰ１２の双方に含まれる。このように、移動に伴って、表示範囲に含まれる文字列には変化が生じるため、表示範囲内の文字全体を用いて代表方向を求めると、代表方向が不規則に変化するおそれがある。ただし、移動時には回転時のように恒常的に表示範囲に含まれる領域は存在しない。図中の領域βは、図示した範囲では、移動前後の領域ＭＰ１１、ＭＰ１２の双方に含まれているが、更に移動を続ければ、いずれ表示範囲から外れることになる。
【００９５】
従って、第３実施例では、移動時には各文字列に乗じる重み値を変化させることで、代表方向の不規則な変化を抑える方法を採った。図中に示すように、領域ＭＰ１１に対して、図の横軸方向（「ｘ方向」と称する）の位置に応じて重み値Ｗｘを０〜１の範囲で変化させる。両端で重み値Ｗｘを０とし、中央で重み値Ｗｘを１とする。図の例では、重み値Ｗｘを直線状に変化させているが、曲線状に変化させてもよい。また、両端近傍に重み値Ｗｘが０となる区間を設けても良い。また、図の縦軸方向（「ｙ方向」と称する）についても、位置に応じて重み値Ｗｙを０〜１の範囲で変化させる。領域ＭＰ１１内の文字列については、領域ＭＰ１１内での位置座標ｘ、ｙに応じた重み値Ｗｘ、Ｗｙの積を用いる。図の例では、ｘ方向、ｙ方向の成分に分けて、重み値Ｗｘ、Ｗｙを設定する例を示したが、二次元マップを用いて領域ＭＰ１１の各位置に対して直接に重み値を与える構成としてもよい。
【００９６】
領域ＭＰ１２についても、同様の重み値Ｗｘ、Ｗｙを適用する。図の例では、領域ＭＰ１１の中心ＣＧ１１に表示される文字列に関しては、領域ＭＰ１１を表示する際には、重み値Ｗｘ，Ｗｙは共に１となる。領域ＭＰ１２を表示する際には、点ＣＧ１１は領域ＭＰ１２の中心からはずれるため、重み値は１よりもやや小さな値となる。このように、図示した重み値を用いることにより、移動に伴って、各文字列に対応づけられる重み値を徐々に変化させることができる。従って、表示範囲の周辺付近の文字列、即ち移動に伴って表示範囲から外れる直前の文字列や、表示範囲に新たに含まれたばかりの文字列の重み値を小さくすることができる。この結果、表示範囲の中央付近の文字列を重視して代表方向を設定することができるため、代表方向の不規則な変化を抑制することが可能となる。
【００９７】
図１１は代表方向設定処理のフローチャートである。図９、図１０で説明した方法によって移動コマンドまたは回転コマンドに応じて、サーバ２００が代表方向を設定するための処理である。
【００９８】
この処理では、サーバ２００は、地図表示範囲の指定を入力する（ステップＳ１００）。この指定には、地図表示範囲の中心点および表示すべき領域の指定が含まれる。この指定によって、図９に示した領域ＭＰ１、図１０に示した領域ＭＰ１１の寸法が決定されることになる。サーバ２００は、地図表示を変更するための表示変更コマンドを入力し、その内容に応じて次に示すそれぞれの処理を実行する（ステップＳ１０２）。表示変更コマンドは、ユーザがナビゲーション装置１００を操作して入力するものとしてもよいし、ユーザの移動に伴ってナビゲーション装置１００が自動的に発信するものとしてもよい。
【００９９】
表示変更コマンドとして、地図表示を回転させる回転コマンドのみが入力された場合の処理について説明する。この時は、サーバ２００は、地図表示範囲の内接円領域を求める（ステップＳ１０４）。図９に示した領域ＣＡに相当する。そして、この内接円領域内の文字データを入力する（ステップＳ１０６）。サーバ２００は、ここで入力した文字データに基づいて図３のステップＳ２０で示した方法で中央値を算出し（ステップＳ１３０）、その結果を代表方向として用いる（ステップＳ１３２）。
【０１００】
表示変更コマンドとして、地図の移動コマンドおよび表示スケールを拡大・縮小させる拡縮コマンドが入力された場合の処理について説明する。移動コマンドおよび拡縮コマンドとともに、回転コマンドが入力された場合も、この処理を実行する。この場合には、サーバ２００は、地図表示範囲内の文字データを入力し（ステップＳ１２０）、各文字データの表示範囲内の相対的な位置に基づいて重み値Ｗを設定する（ステップＳ１２２）。重み値Ｗは、図１０で示した通り、ｘ方向の位置によって定まる重み値Ｗｘと、ｙ方向の位置によって定まる重み値Ｗｙとの積を用いる。サーバ２００は、地図表示範囲内の文字データに基づいて図５で示した方法で中央値を算出し（ステップＳ１３０）、その結果を代表方向として用いる（ステップＳ１３２）。
【０１０１】
表示変更コマンドが入力されていない場合、即ち表示の静止が指示されている場合には（ステップＳ１０２）、サーバ２００は地図表示範囲内の文字データを入力し（ステップＳ１１０）、図３のステップＳ２０で示した方法で中央値を算出し（ステップＳ１３０）、その結果を代表方向として用いる（ステップＳ１３２）。
【０１０２】
以上の方法で代表方向を設定した後は、第１実施例と同様の方法で文字の配置を制御することができる。このように、第３実施例では、表示変更コマンドに応じた方法で代表方向を設定することができる。従って、地図の移動中または回転中に文字の方向が不規則に変化することを抑制でき、それぞれ見やすい状態で文字を提示することができる。
【０１０３】
第３実施例では、地図の移動中に重み値を用いて代表方向を設定する例を示した（図１０参照）。移動中の代表方向の設定方法は、かかる方法に限らず、例えば、移動コマンドが入力された時点の表示画面内の文字例を用いて代表方向を設定し、移動コマンドが継続的に入力されている限り、この代表方向を固定的に用いるようにしてもよい。こうすることで比較的軽い負荷で代表方向の決定、文字表示の制御を行うことができ、比較的軽い負荷でも、移動速度に十分追随しながら地図を表示させることが可能となる。
【０１０４】
以上、本発明の種々の実施例について説明したが、本発明はこれらの実施例に限定されず、その趣旨を逸脱しない範囲で種々の構成を採ることができることはいうまでもない。例えば、本実施例では、サーバ２００とナビゲーション装置１００からなるシステム構成例を示したが、本実施例はオペレータの指示に従って、種々の方向に回転させ、目的に応じた加工を施した地図、いわゆる企画地図を作成する装置として構成することもできる。この場合には、ナビゲーション装置１００に代えて、上述の指示を与えるための端末としてネットワーク通信機能を有するパーソナルコンピュータを用いることでシステム構成することができる。サーバ２００の機能をパーソナルコンピュータに備え、スタンドアロンで稼働するシステムとして構成してもよい。
【０１０５】
かかる構成では、地図の出力態様が印刷という形式に代わるのみであり、指定された地図の回転に応じて、文字表示を制御する処理については、実施例で説明した処理をそのまま適用可能である。
【図面の簡単な説明】
【０１０６】
【図１】実施例としての地図表示システムの構成を示す説明図である。
【図２】文字表示制御の概要を示す説明図である。
【図３】代表方向設定処理のフローチャートである。
【図４】文字レイヤのデータ構造例を示す説明図である。
【図５】変形例としての代表方向設定方法を示す説明図である。
【図６】文字表示制御処理のフローチャートである。
【図７】第２実施例としての文字表示制御処理のフローチャートである。
【図８】グループ化を例示する説明図である。
【図９】回転時における文字表示の制御方法を示す説明図である。
【図１０】移動時における文字表示の制御方法を示す説明図である。
【図１１】代表方向設定処理のフローチャートである。
【符号の説明】
【０１０７】
１００…ナビゲーション装置
１１０…主制御部
１２０…通信部
１３０…コマンド入力部
１４０…ＧＰＳ
１５０…表示制御部
２００…サーバ
２０２…通信部
２０４…表示データ生成部
２０５…文字表示制御部
２０６…地図ＤＢ参照部
２１０…代表方向テーブル
２２０…地図ＤＢ
【図１】
0004814659.tif 000002
【図２】
0004814659.tif 000003
【図３】
0004814659.tif 000004
【図４】
0004814659.tif 000005
【図５】
0004814659.tif 000006
【図６】
0004814659.tif 000007
【図７】
0004814659.tif 000008
【図８】
0004814659.tif 000009
【図９】
0004814659.tif 000010
【図１０】
0004814659.tif 000011
【図１１】
0004814659.tif 000012