以下、図を参照しながら、この発明の装置、方法、プログラムの一実施の形態について説明する。
[地図情報提供装置(システム)の概要]
図1は、この実施の形態の地図情報提供装置を構成するシステムの全体の構成例を示す図である。この実施形態は、地図情報提供装置が、インターネットなどの通信ネットワークを通じて接続されるサーバとクライアント装置とからなるシステムとして構成される場合である。そして、図1の例のシステムにおいては、この発明の地図作成装置の実施形態は、サーバに搭載された構成である。
図1に示すように、この実施形態の地図情報提供装置としてのシステムにおいては、地図サイト(Webサイト)を提供する地図情報提供サーバ1と、クライアント装置の例としてのパソコン2やスマートフォンと呼ばれる高機能携帯電話端末3などが通信ネットワーク(インターネットを含む)4を通じて接続されて構成されている。図1では、クライアント装置の例としてパソコン2及び高機能携帯電話端末3を示したが、クライアント装置は、パッド型携帯端末(タブレットPC(Personal Computer))など、その他種々の端末装置の構成とすることもできる。
地図情報提供サーバ1は、この例では、地図図形データ格納部11と、地図注記データ格納部12とを備える。
地図図形データ格納部11は、この例では日本全国の地図図形データを格納する。この場合、地図図形データは、地図注記を除いた地形図、すなわち、土地の起伏・形態・水系、道路、鉄道、施設など、地表に分布する地物の配置などからなる地図図形画像を描画するためのものである。そして、地図図形データは、それぞれの図形の形状を、描画する位置の情報である緯度・経度の情報に対応付けられて、地図図形データ格納部11に格納されている。また、地図図形データとしては、地図のそれぞれの縮尺に応じた地図図形データが、それぞれの縮尺の値に対応して地図図形データ格納部11に格納されている。
地図注記データ格納部12は、施設や場所等の地図上の対象物に関する地図注記(注釈)を地図上に表示するための地図注記データを格納する。地図注記は、施設や場所等の地図上の対象物に関する情報を文字や記号、数字などによって表わすものである。例えば、地図注記は、行政区画、道路、鉄道、建物、公園、山、河川などの対象物の名称を文字によって表わし、また、標高等を数字によって表わすものも含む。また、地図注記は、対象物の名称を特定のアイコンに表示したり、特定のマークで表わしたりする場合も含む。
地図注記データは、上述のような地図上の対象物のそれぞれに関する地図注記を構成する文字(数字を含む)や記号を表示するための表示用データと、それぞれの地図注記の地図上の表示位置を特定するための緯度・経度のデータとを含む。そして、地図データの地図図形情報と同様に、地図注記データは、地図のそれぞれに応じた地図注記データが、それぞれの縮尺の値に対応して地図注記データ格納部12に格納されている。
クライアント装置の一例を構成するパソコン2は、パソコン本体21と、表示装置22と、操作入力手段としてのマウス23と、キーボード24と、を備える。また、クライアント装置の他の一例を構成する高機能携帯電話端末3は、例えばLCD(Liquid Crystal Display)からなる表示部31を備えると共に、この表示部31には、操作入力手段としてのタッチセンサ32が重畳配置されている。これら表示部(表示装置)31とタッチセンサ32とにより、タッチパネル33が構成される。
パソコン2や高機能携帯電話端末3などのクライアント装置は、地図情報提供サーバ1に通信ネットワーク4を通じてアクセスして地図情報サービスの要求をすることにより、当該地図情報サービスの提供を支援する支援プログラム(アプリケーションプログラム)を受信して、この支援プログラムの支援の下、地図情報サービスの提供を受けるができるように構成されている。すなわち、先ず、パソコン2や高機能携帯電話端末3などのクライアント装置は、前記支援プログラムの支援の下、地図情報提供サーバ1に、提供を受けたい地域や縮尺の指定を含む地図取得要求(地図情報提供要求)を送る。
地図情報提供サーバ1は、この地図取得要求を受け取ると、指定された地域および縮尺から、提供する対象地図(地図範囲)を認識する。そして、地図情報提供サーバ1は、認識した対象地図の地図画像を構成する地図図形データを地図図形データ格納部11から読み出して、その地図図形画像を描画する。
また、地図情報提供サーバ1は、提供する対象地図(地図範囲)の地図画像に表示すべき地図注記データを読み出し、地図図形データにより描画された地図図形に対して、地図注記を描画する。この地図注記の描画に際しては、異なる地図注記が重なりあって描画されることを防止するため、いわゆる重なり判定を行って、重なる場合には、後から記載する地図注記の描画位置をずらすなどのことが行われる。このようにして、地図図形と地図注記とが描画された地図画像が描画(形成)される。
そして、地図情報提供サーバ1は、描画(生成)した地図画像を形成する地図画像データを、地図取得要求を送信してきたクライアント装置に提供する。パソコン2や高機能携帯電話端末3などのクライアント装置は、前記支援プログラムにより、地図情報提供サーバ1から、対象地図の情報(地図画像データ)を取得し、この地図画像データに応じた地図画像を表示装置22や表示部31に表示する。このように、クライアント装置2、3は、地図情報提供サーバ1から地図画像の提供を受けて、これを自機の表示装置に表示することができるようになっている。
また、地図情報提供サーバ1は、道路、河川、鉄道路線、海路、空路といった対象物を表現する線形状の地図図形であるポリラインに対する地図注記(沿わせ注記)を、間隔を空けて飛び飛びに繰り返し描画することが簡単にできるようにしている。なお、線形状の地図図形であるポリラインは、1本の線で表現されるものと、ある程度の幅と長さをもって表現されるものとの両方を含む。
また、この実施形態の地図情報提供サーバ1は、1つのポリラインに対して、複数種類の地図注記(沿わせ注記)を、間隔を空けて飛び飛びに描画することもできるようにしている。これにより、道路、河川、鉄道路線などを表現するポリラインに対して、正式名称と通称名とを描画位置を変えて描画したり、異なる言語の地図注記について描画位置を変えて描画したりするなどのことが簡単に、かつ、見映えよくできるようにしている。
[地図情報提供サーバ1のハードウエア構成例]
図2は、地図情報提供サーバ1のハードウエア構成例を示すブロック図である。この例の地図情報提供サーバ1は、コンピュータ装置からなる構成を備える。すなわち、図2に示すように、この例の地図情報提供サーバ1においては、システムバス100に対して、前述した地図図形データ格納部11と、前述した地図注記データ格納部12とが接続されている。
図3は、地図図形データ格納部11に格納されている地図図形データの例を説明するための図である。図3に示すように、地図図形データは、ポイント、ポリライン、及び、ポリゴンの各地図図形タイプについて、ベクターデータで記述されたものである。具体的に、ポイントは、長さや幅のない対象物の位置を点で表すものである。ポリラインは、長さと方向とを備え複数の点が接続されて表示される対象物の形状と位置を表す。
すなわち、ポリラインは、道路、河川、鉄道路線、海路、空路といった対象物を表現する線形状の地図図形である。また、ポリゴンは、地図上で地域として示される対象物を多辺図形の各頂点の位置で表すものである。各地図図形データは、図形IDによって、次に説明する地図注記データと対応付けられている。
図4は、地図注記データ格納部12に格納されている地図注記データの例を説明するための図である。地図注記データは、図4に示すように、図形IDと、地図注記と、文字サイズと、オフセット値とを有する。図形IDは、上述もしたように、地図図形データと地図注記データとを対応付けるものである。地図注記は、図形IDによって対応付けられる地図図形データにより描画される地図図形に対する注記(名称等の文字データ)である。
文字サイズは、地図注記を構成する文字の順番に、その文字を描画する際の文字のサイズ(大きさ)を示している。また、オフセット値は、沿わせ注記に対して設定される情報であり、沿わせ注記を繰り返し記載する場合の直前に描画された沿わせ注記からどれだけ離して当該沿わせ注記を描画するのかを特定するための情報である。換言すれば、オフセット値は、沿わせ注記を繰り返し描画する際の直前の沿わせ注記からのずれ量を示す情報である。
なお、この例において、ポリラインに対する地図注記(沿わせ注記)としては、図4に示すように、図形IDが「L1」のポリラインに対しては、「国道○○○号線」と「□□街道」という2つの地図注記があることが管理されている。同様に、図形IDが「L2」のポリラインに対しては、「国道××号線」と「△△通り」という2つの地図注記があることが管理されている。
また、システムバス100には、制御部101、通信I/F(Inter Face)102、受信情報処理部103、送信情報処理部104、地図図形データ処理部105、地図作成メモリ106、沿わせ注記データ処理部107、地図注記データ処理部108が接続されている。
制御部101は、この地図情報提供サーバ1の全体の動作を制御するものであり、地図情報提供サーバ1における各種制御処理を実行するためのプログラムを記憶するメモリを内蔵している。制御部101は、この内蔵メモリに記憶されているプログラムにしたがった制御処理を実行する。
通信I/F102は、通信ネットワーク4を通じてクライアント装置と通信するためのインターフェースである。受信情報処理部103は、制御部101の制御の下、通信I/F102を通じて受信した受信情報を解析し、その解析結果を、システムバス100を通じて制御部101に供給したりする機能処理部である。送信情報処理部104は、制御部101の制御の下、通信I/F102を通じてクライアント装置に送信する送信情報を生成する機能処理部である。
地図図形データ処理部105は、クライアント装置から地図取得要求があった時に、その要求された対象地図(地図範囲)を構成する地図図形画像のそれぞれを、地図図形データ格納部11から読み出した地図図形データを用いて、地図作成メモリ106に描画する。
沿わせ注記データ処理部107は、地図作成メモリ106に描画された地図図形の内、ポリラインに対する沿わせ注記を描画する処理部である。具体的に、沿わせ注記データ処理部107は、クライアント装置から地図取得要求があった時に、地図作成メモリ106に描画された地図図形の内、ポリラインに対する沿わせ注記データ(地図注記データ)を、地図注記データ格納部12から読み出す。
そして、沿わせ注記データ処理部107は、地図作成メモリ106に描画された地図図形の内、ポリラインに対して、沿わせ注記を、間隔を空けながら飛び飛びに描画する処理を行う。また、この例の沿わせ注記データ処理部107は、1つのポリラインに対して、複数の沿わせ注記が存在する場合には、それらの沿わせ注記を、間隔を空けながら飛び飛びに、かつ、順番に描画する処理を行うこともできる。なお、この例の場合、L1、L2、…のように、先頭文字が「L」である図形IDを有する地図注記データが、沿わせ注記データであると特定できる。なお、沿わせ注記データ処理部107により行われる沿わせ注記の描画処理の詳細は後述する。
地図注記データ処理部108は、地図作成メモリ106に描画された地図図形の内、ポリライン以外の地図図形に対する地図注記を描画する処理部である。すなわち、地図注記データ処理部108は、沿わせ注記以外の地図注記を描画する。具体的に、地図注記データ処理部108は、クライアント装置から地図取得要求があった時に、地図作成メモリ106に描画された地図図形の内、ポイントとポリゴンに対する地図注記データを、地図注記データ格納部12から読み出す。
そして、地図注記データ処理部108は、地図作成メモリ106に描画された地図図形の内、ポイントやポリゴンに対して、地図注記を描画する処理を行う。なお、この例の場合、T1、T2、…のように、先頭文字が「T」である図形IDを有する地図注記データが、ポイントに対する地図注記データであると特定できる、また、G1、G2、…のように、先頭文字が「G」である図形IDを有する注記データが、ポリゴンに対する地図注記データであると特定できる。
このようにして、地図作成メモリ106に、クライアント装置2,3からの地図取得要求に応じたエリアの地図画像が作成される。この地図作成メモリ106に作成された地図画像に基づいて、制御部101の制御の下、送信情報処理部104が送信用の画像情報(地図画像データ)を形成し、これを通信I/F102を通じて通信ネットワーク4に送出し、要求元のクライアント装置2,3に提供する。これにより、クライアント装置2、3においては、提供された画像情報(地図画像データ)に応じた地図画像を表示装置22、31に表示して利用することができるようにされる。
なお、図2の地図情報提供サーバ1の構成において、受信情報処理部103、送信情報処理部104、地図図形データ処理部105、沿わせ注記データ処理部107、地図注記データ処理部108のそれぞれの処理機能は、制御部101が、内蔵するメモリに格納されているソフトウエアプログラムにしたがって実行するソフトウエア機能として構成することができるものであるが、便宜上、機能ブロックとして記載している。
[沿わせ注記データ処理部107で行われる処理]
沿わせ注記データ処理部107は、図2に示したように、初期位置特定部1071と、オフセット適用部1072と、沿わせ注記描画部1073とを備えている。
初期位置特定部1071は、ポリラインに対して最初に描画する沿わせ注記の描画開始位置を特定する処理を行う。沿わせ注記は、1つのポリラインに対して1つだけの場合もあれば、図4を用いて説明したように、1つのポリラインに対して2つ以上が設定される場合もある。このため、初期位置特定部1071は、まず、地図注記データ格納部12の処理対象の地図注記データに基づいて、最初に描画する沿わせ注記を特定する。通常、図形IDによって特定される沿わせ注記ごとに、最初に登録されて沿わせ注記を最初に描画する沿わせ注記として特定し、その沿わせ注記に対して設定されているオフセット値に基づいて、最初に描画する沿わせ注記の描画開始位置を特定する。
オフセット適用部1072は、沿わせ注記に設定されたオフセット値に基づいて、2回目以降に描画する沿わせ注記の描画開始位置を特定する。沿わせ注記が1つの時には、その1つの沿わせ注記を常に描画する沿わせ注記として特定し、沿わせ注記が2つ以上の時には、その2つ以上の沿わせ注記のそれぞれを順番に描画するように特定する。そして、オフセット適用部1072は、その特定した沿わせ注記に対して設定されたオフセット値に基づいて、当該特定した沿わせ注記の描画開始位置を特定する。したがって、1つのポリラインに対して2つ以上の沿わせ注記が設定されている場合、オフセット適用部1072は、初期位置特定部1071により特定された最初に描画する沿わせ注記の次に描画する沿わせ注記から、その沿わせ注記の特定と、描画開始位置の特定とを行う。
沿わせ注記描画部1073は、初期位置特定部1071により特定された沿わせ注記を、初期位置特定部1071により特定された描画開始位置から描画する処理を行う。また、沿わせ注記描画部1073は、オフセット適用部1072により特定された沿わせ注記を、オフセット適用部1072により特定された描画開始位置から描画する処理を行う。
ここで、沿わせ注記描画部1073により行われる沿わせ注記の描画処理について説明する。沿わせ注記描画部1073は、例えば、特開2016−118702号公報に開示された手法を用いて沿わせ注記の描画を行う。図5は、沿わせ注記の描画方法を説明するための図である。ここでは、地図図形データ処理部105によるポリラインの描画処理も含めて説明する。
(1)地図図形データ処理部105は、地図図形データ格納部11から、ポリラインを描画するための地図図形データを読み出し、当該地図図形データに応じたポリラインlnを地図作成メモリ106に描画する(図5(A))。
(2)初期位置特定部1071またはオフセット適用部1072が機能して、先に読み出された地図図形データの図形IDに基づいて、描画されたポリラインlnに対する地図注記データ(沿わせ注記データ)を参照し、描画する沿わせ注記と、その描画開始位置P1を特定する。この場合の描画開始位置を特定する処理の詳細は、後述する。そして、以降の処理が、沿わせ注記描画部1073の処理となる。
(3)沿わせ注記描画部1073は、先に読み出された地図図形データの図形IDに基づいて、描画されたポリラインに対する地図注記データ(沿わせ注記データ)を参照し、描画されたポリラインlnと参照した地図注記データの文字サイズとから文字間隔を決定する。
(4)沿わせ注記描画部1073は、描画する沿わせ注記の1文字ごとに文字サイズに対応した仮想的な円cirを描画する(図5(B))。この場合、描画開始位置P1は、初期位置特定部1071またはオフセット適用部1072により特定されたポリラインln上の位置である。そして、円cirの中心Oは、ポリラインln上の位置であって、描画開始位置P1からの距離が、文字サイズに対応した仮想的な円cirの半径分離れた位置となる。すなわち、仮想的な円cirは、その円周上に描画開始位置P1が位置するように定められるポリラインln上の位置を中心Oとして描画されるものである。
(5)沿わせ注記描画部1073は、円cirとポリラインlnとのもう1つの交点P2を求める。これにより、円cirとポリラインlnとの2つの交点P1、P2が特定される(図5(C))。
(6)沿わせ注記描画部1073は、2つの交点のうち文字が続く方向の交点P2と円の中心Oを結ぶ仮想的な直線S1を引く(図5(D))。
(7)沿わせ注記描画部1073は、円cirの中心Oを通過する仮想的な水平線S2を引く(図5(E))。
(8)沿わせ注記描画部1073は、直線S1と水平線S2がなす角度θを算出する(図5(F))。
(9)沿わせ注記描画部1073は、角度θを文字の回転角度に決定する(図5(G))。
(10)沿わせ注記描画部1073は、円cirの中に角度θ分回転させて文字を描画する。
次の文字は、上述した(3)からの手順から実行されることになる。なお、2番目以の文字について、描画開始位置P1は、前の文字の描画終了位置である交点P2と一致する。従って、次の文字についての円cirの中心Oは、ポリラインln上の位置であって、前の文字の描画終了位置である交点P2からの距離が、文字サイズに対応した仮想的な円の半径分離れた位置となる。
すなわち、次の文字についての仮想的な円cirは、その円周上に前の文字の描画終了位置である交点P2が位置するように、ポリラインln上の位置を中心Oとして描画されるものである。換言すれば、2番目以降の文字のための仮想的な円cirは、文字間隔で決まった位置だけ前の文字についての仮想的な円の中心から離れ、2番目以降の文字のための円cirの中心がポリラインln上になるように描画されることになる。円に対する文字の描画手順は同様になる。
図6(A)は、沿わせ注記が描画された際の沿わせ注記とポリラインlnの関係を示す図の一例である。図6(A)では「首都高速3号線」という沿わせ注記が描画されている。各文字の描画位置がポリラインlnに沿って文字サイズと文字間隔により決定され、さらにポリラインlnに垂直になるように文字の向き(文字の回転角度)を決定しているため、曲線に沿って注記が描画されている。ユーザにとっては、沿わせ注記を把握しやすい表示態様の1つとなる。
なお、沿わせ注記において、円内の文字の向きは図5、図6(A)に示すものに限られない。図5、図6(A)ではポリラインlnに垂直な方向を文字の向きとしているが、例えば、文字の向きを北向き一定にすることができる。
図6(B)は、文字の向きが北の場合の注記とポリラインlnの関係を示す図の一例である。「首都高速3号線」という沿わせ注記を構成する文字が全て北向きに描画されている。このような描画では、文字の向きを算出する必要がないので、沿わせ注記描画部1073の処理負荷を低減することができる。
このように、沿わせ注記であっても、円の中の文字の向きに関してはどのように設計してもよい。また、ユーザの設定により文字の向きが変更可能であってもよい。
そして、地図図形として描画するポリラインが長い場合には、当該ポリラインに対する沿わせ注記を、間隔を空けて飛び飛びに複数回描画する必要が生じる。ポリラインが長いのに、これに対応する沿わせ注記を1回しか描画しない場合には、ポリラインの名称等が把握しにくい地図になってしまうためである。
図7は、比較的に長いポリラインLNに対して、沿わせ注記を、間隔を空けて飛び飛びに複数回描画する場合の例について説明するための図である。図5、図6を用いて説明したように、沿わせ注記描画部1073は、1文字ごとに仮想的な小さな円を描いて描画位置を順次に決定していく。この方法をそのまま用いれば、図7において、点線の多数の小さな円で示したように、沿わせ注記の1文字ごとに円を描いて描画位置を順次に決定していくようにし、沿わせ注記をN回描画する区間において1回だけ描画するというような制御を行うことになる。
図7に示した例は、「国道3号線」という沿わせ注記を、5回連続して描画できる区間において、最初の1回だけ描画するようにした場合の例である。したがって、「国道3号線」という沿わせ注記を描画した後に、当該沿わせ注記を4回描画する区間(沿わせ注記20文字分)の間隔を空けて、「国道3号線」という沿わせ注記を繰り返し描画する態様となっている。
しかし、この方法は、1文字ごとに仮想的な小さな円を描いて描画位置を順次に決定していかなければ、沿わせ注記の描画開始位置が特定できないので、沿わせ注記描画部1073に掛かる負荷が大きい。また、図4を用いて説明したように、1つのポリラインに対して、「国道○○○号線」と「□□街道」といった文字数の異なる複数の沿わせ注記を描画する場合には、どれだけの文字数の間隔を空けるかが問題となり、制御が難しくなる。
また、常に同じ文字数分の間隔を空けて沿わせ注記をと飛び飛びに描画することも考えられるが、沿わせ注記描画部1073に掛かる負荷は軽減できない。また、ポリラインは、通常、直線ではなく、曲がりくねっているものも多いため、ポリライン上において均等間隔で沿わせ注記を描画しても、地図上においては見た目に均等間隔で描画されておらず、かえって見難くなってしまう可能性がある。図7に示した例でも、ポリラインLN上では均等間隔で沿わせ注記が描画されているが、地図全体から見ると、「国道3号線」という沿わせ注記が、不規則な位置に描画されている印象を受けてしまう場合がある。
そこで、この実施形態の地図情報提供サーバ1においては、沿わせ注記データ処理部107の初期位置特定部1071とオフセット適用部1072とが機能し、1文字単位ではなく、沿わせ注記単位で沿わせ注記の描画開始位置を特定できるようにしている。初期位置特定部1071とオフセット適用部1072とは、沿わせ注記ごとに設定される、図4を用いて説明したオフセット値を用いて、沿わせ注記の描画開始位置を特定する。
図8は、初期位置特定部1071とオフセット適用部1072とが行う、沿わせ注記の描画開始位置を特定するための処理を説明するための図である。ここでは、図3を用いて説明した、図形IDが「L1」で特定される地図図形データにより描画される地図図形(ポリライン)に対して、図4を用いて説明した、設定されている「国道○○○号線」と「□□街道」との2種類の沿わせ注記を描画する場合を例にして説明する。また、図8及び図8に関する説明では、図形IDが「L1」で特定される地図図形データにより描画される地図図形をポリラインL1と記載する。
ポリラインL1に対する沿わせ注記を描画する場合、まず、沿わせ注記データ処理部107の初期位置特定部1071が機能し、最初に描画する沿わせ注記と、その特定した沿わせ注記に対して設定されたオフセット値とを特定する。この例において、初期位置特定部1071は、図4に示した地図注記データ格納部12の図形IDが「L1」の地図注記データを参照し、最初に描画する沿わせ注記は「国道○○○号線」であり、当該沿わせ注記のオフセット値は「10」であると特定する。
そして、初期位置特定部1071は、ポリラインL1の開始点STを中心とし、オフセット値に応じて決まる半径R1の仮想的な円C1を描画するようにし、この円C1とポリラインL1との交点St1を、最初に描画する沿わせ注記の描画開始位置とする。ここで、オフセット値に応じて決まる半径R1は、オフセット値と描画する地図の縮尺とに応じて決まる値となる。
例えば、「縮尺Aの時に、オフセット値が「10」であれば、半径は5cmとする。」というように、予め決めておく。したがって、縮尺Aの時に、オフセット値が「8」であれば、半径は「4cm」となり、オフセット値が「6」であれば半径は「3cm」となる。このように、描画する地図の縮尺に対応させて、オフセット値が「10」の場合の半径の長さを予め決めておき、これを基準にして、各沿わせ注記のオフセット値に応じて仮想的に描画する円の半径が自動的に決まるようになっている。
図4に示したように、図形IDがL1のポリラインに対する沿わせ注記の内、最初に描画する沿わせ注記「国道○○○号線」のオフセット値は「10」である。このため、例えば、上述した例の「縮尺Aの時に、オフセット値が「10」であれば、半径は5cmとする。」という取り決めに従えば、仮想的に描画する円の半径は「5cm」になる。このため、初期位置特定部1071は、図8に示すように、沿わせ注記を付すポリラインL1の開始点STを中心にして、オフセット値に応じた半径R1の円C1を描画するようにする。そして、仮想的に描画するようにした円C1と沿わせ注記の付加対象であるポリラインL1との交点St1を、最初に描画する沿わせ注記「国道○○○号線」の描画開始位置として特定する。
そして、初期位置特定部1071は、描画対象として特定した沿わせ注記と、特定した描画開始位置とを沿わせ注記描画部1073に通知する。この例の場合には、「国道○○○号線」という沿わせ注記を、描画開始位置St1から描画することを指示する情報が、初期位置特定部1071から沿わせ注記描画部1073に通知される。沿わせ注記描画部1073は、図5、図6を用いて説明したポリラインに対する沿わせ注記の描画方法に従って、地図作成メモリ106に描画されているポリラインL1に対して、最初の沿わせ注記「国道○○○号線」を描画する。
そして、沿わせ注記描画部1073は、描画した沿わせ注記の最後の文字の描画のために用いた仮想的な小さな円cir1とポリラインL1との交点であって、文字の後端側の交点を描画終了位置Ed1として、オフセット適用部1072に通知する。この描画終了位置Ed1が、次の沿わせ注記の描画開始位置を特定するために描画する仮想的な円C2の中心として用いられる。
オフセット適用部1072は、地図注記データ格納部12に格納されている図形IDがL1の地図注記データを参照し、沿わせ注記「国道○○○号線」の次に描画すべき沿わせ注記と、そのオフセット値を特定する。図4に示した例の場合には、図形IDが「L1」で特定されるポリラインに対しては、沿わせ注記として、「国道○○○号線」と「□□街道」との2つが登録されている。このため、「国道○○○号線」の次には、「□□街道」が次に描画すべき沿わせ注記として特定でき、沿わせ注記「□□街道」のオフセット値は「7」であると特定できる。
より具体的には、例えば、制御部101が機能し、一次の配列CK(N)を定義する。この場合、添え字Nは、1以上の整数である。そして、制御部101は、CK(1)に「国道○○○号線」を格納し、一次の配列CK(2)に「□□街道」を格納する。これにより、初期位置特定部1071は、最初に描画する沿わせ注記は、CK(1)に格納されている「国道○○○号線」であると特定できる。
また、オフセット適用部1072は、沿わせ注記描画部1073により、CK(1)に格納されている沿わせ注記を描画したから、次にCK(2)に格納されている沿わせ注記が描画の対象になり、これが描画されたら、次には、戻ってCK(1)に格納されている沿わせ注記が描画の対象となるというように、配列CK(N)の添え字Nの制御により、描画すべき沿わせ注記を特定できる。
ここでは、沿わせ注記が2つの場合について説明したが、沿わせ注記が3つ以上になっても同様である。沿わせ注記が3つ以上の場合にも、制御部101は、各沿わせ注記を一次の配列CK(N)に、添え字Nを1ずつカウントアップしながら格納しておく。そして、添え字Nの最大値を管理し、添え字Nを1から1ずつ最大値まで変化させることにより、描画する沿わせ注記を確定する。そして、添え字Nが最大値になった後には、添え字Nを1に戻し、また添え字Nを1ずつ最大値までカウントアップすることを繰り返せばよい。また、各沿わせ注記に対応するオフセット値も同様に一次の配列に格納しておけば、描画する沿わせ注記と、当該沿わせ注記のオフセットとを簡単に特定することができる。
そして、上述したように、描画する地図の縮尺に対応させて、オフセット値が「10」の場合の半径の長さが予め決められている。これを基準とし、オフセット適用部1072は、今回描画する沿わせ注記の描画開始位置を特定するために仮想的に描画する円C2の半径R2を特定する。具体例として、上述もしたように、「縮尺Aの時に、オフセット値が「10」であれば、半径は5cmとする。」と決められているものとする。そして、縮尺Aの地図を描画する場合に、沿わせ注記のオフセット値が「7」であれば、半径R2=5cm×0.7=3.5cmとなる。
このため、オフセット適用部1072は、図8に示すように、沿わせ注記描画部1073から通知された描画終了位置Ed1を中心として、半径R2が3.5cmの仮想的な円C2を描画するようにする。そして、この仮想的な円C2とポリラインL1との交点であって、沿わせ注記の文字列が続く方向の交点St2を、次に描画する沿わせ注記「□□街道」の描画開始位置とする。そして、オフセット適用部1072は、描画開始位置St2を、沿わせ注記描画部1073に供給する。
沿わせ注記描画部1073は、オフセット適用部1072からの描画開始位置St2を、次に描画する沿わせ注記「□□街道」の描画開始位置として用いて、沿わせ注記「□□街道」を描画する。そして、沿わせ注記描画部1073は、描画した沿わせ注記の最後の文字の描画のために用いた仮想的な小さな円cir2とポリラインL1との交点であって、文字の後端側の交点を描画終了位置Ed2として、オフセット適用部1072に通知する。この描画終了位置Ed2が、次の沿わせ注記の描画開始位置を特定するために描画する仮想的な円C3の中心として用いられる。
以降の処理は、(A)次に描画する沿わせ注記と当該沿わせ注記のオフセット値を特定する。(B)特定された描画終了位置を中心にしてオフセット値に応じた半径の仮想的な円を描き、この円とポリラインとの交点(沿わせ注記の描画方向の交点)を描画開始位置として特定する。(C)次の沿わせ注記を特定された描画開始位置から描画する。(D)沿わせ注記の描画開始位置を特定するために描画する仮想的な円の中心となる描画終了位置を特定する。というように(A)から(D)の処理を繰り返す。
従って、図8に示すように、直前に描画された沿わせ注記の描画終了位置Ed2が、次の沿わせ注記の描画開始位置を特定するために描画する仮想的な円C3の中心位置として定められると、オフセット適用部1072は、(A)次に描画する沿わせ注記「国道○○○号線」と当該沿わせ注記のオフセット値「10」を特定する。(B)オフセット適用部1072は、次の沿わせ注記「国道○○○号線」の描画開始位置St3を特定する。(C)沿わせ注記描画部1073は、次の沿わせ注記「国道○○○号線」を描画開始位置St3から描画する。(D)沿わせ注記描画部1073は、沿わせ注記の描画開始位置を特定するために描画する仮想的な円の中心位置となる描画終了位置Ed3を特定し、これをオフセット適用部1072に通知する。
この後、図8に示すように、描画終了位置Ed3が、次の沿わせ注記の描画開始位置を特定するために描画する仮想的な円C4の中心として定められると、オフセット適用部1072は、(A)次に描画する沿わせ注記「□□街道」と当該沿わせ注記のオフセット値「7」を特定する。(B)オフセット適用部1072は、次の沿わせ注記「□□街道」の描画開始位置St4を特定する。(C)沿わせ注記描画部1073は、次の沿わせ注記「□□街道」を描画開始位置St4から描画する。(D)沿わせ注記描画部1073は、沿わせ注記の描画開始位置を特定するために描画する仮想的な円の中心位置となる描画終了位置Ed4を特定し、これをオフセット適用部1072に通知する。
このようにして、図8に示したように、「国道○○○号線」と「□□街道」という2つの異なる沿わせ注記を、ポリラインL1に対して順次に描画することができる。この実施形態の地図情報提供サーバ1の場合には、図7を用いて説明した従来の場合のように、ポリラインの全体にわたって、沿わせ注記の描画位置を1文字ずつ順次に特定していくことにより、飛び飛びに記載する沿わせ注記の描画開始位置を特定する必要はない。この実施形態の地図情報提供サーバ1の場合には、図8を用いて説明したように、沿わせ注記データ処理部107の機能により、描画する沿わせ注記ごとに設定されたオフセット値を用いて、各沿わせ注記の描画開始位置を直接的に特定することができる。
これにより、沿わせ注記の描画のために地図情報提供サーバ1にかかる負荷を大幅に軽減することができるとともに、ポリラインに対する沿わせ注記を迅速に描画することができる。したがって、地図画像を従来よりも迅速に描画することができるようにされる。また、描画する沿わせ注記ごとに設定されたオフセット値を用いて、直接的に沿わせ注記の描画開始位置を特定し、沿わせ注記を描画するので、図8に示したように、沿わせ注記を地図画像の全体に渡って、均一な割合で描画することができる。
つまり、図8に示した例の場合には、第1の沿わせ注記である「国道○○○号線」の前には、半径R1、R3=5cmの間隔をとり、第2の沿わせ注記である「□□街道」の前には、半径R2、R4=3.5cmの間隔を取るというように、各沿わせ注記のオフセット値に応じた間隔を取ることができる。これにより、地図画像の全体に渡って、ポリラインに対する沿わせ注記を均一な割合で描画できるのである。なお、複数の沿わせ注記のオフセット値を同じ値にしてもよい。この場合には、地図画像の全体に渡って、ポリラインに対する沿わせ注記間に均等な間隔を設けて描画することができる。また、1つのポリラインに対して、複数の沿わせ注記を飛び飛びに描画することも簡単に行うことができる。
[1つのポリラインに異なる言語の沿わせ注記を描画する場合の例]
この実施形態の地図情報提供サーバ1では、上述したように、最初に描画する沿わせ注記の描画開始位置については、ポリラインの開始点を基準にして、当該沿わせ注記に設定されたオフセット値を用いて一意に特定することができる。また、その後に描画する沿わせ注記の描画開始位置は、直前に描画した沿わせ注記の終了位置を基準にして、描画する沿わせ注記に対して設定されたオフセット値を用いて一意に特定することができる。これにより、1つのポリラインに対して同じ沿わせ注記を飛び飛びに描画したり、また、1つのポリラインに対して、異なる複数の沿わせ注記を飛び飛びに描画したりすることが、付加を増大させることなく、簡単に行うことができる。
そこで、1つのポリラインに対して、複数の言語の沿わせ注記を設定しておき、描画されたポリラインに対して飛び飛びに描画する場合について説明する。図9は、この例で用いる沿わせ注記データの他の例と沿わせ注記デザインデータの例について説明するための図である。なお、この例においても、地図図形は地図図形データ格納部11に格納されている図3に示した地図図形データに基づいて描画される。
そして、この例の地図注記データは、図9(A)に示すように、図形ID、地図注記、言語種別、文字サイズからなっている。そして、図9(A)に示したように、1つのポリラインに対して、日本語、英語、中国語、韓国語の4か国語で表現された沿わせ注記が設定され、各沿わせ注記には何語かを示す言語種別が設定されている点が、図4にした地図注記データとは異なっている。また、図9(A)において、言語種別は、日本語が「J」、英語が「E」、中国語が「C」、韓国語が「K」として表されている。
また、この例の場合、沿わせ注記のオフセット値は、沿わせ注記ごとに設定されているのではなく、図9(B)に示すように、沿わせ注記デザインデータとして、言語ごとに設定されているものとする。図9(B)に示した例の場合、日本語(J)、中国語(C)の沿わせ注記に対するオフセット値はいずれも「7」に設定され、英語(E)の沿わせ注記に対するオフセット値は「8」に設定され、韓国語(K)の沿わせ注記に対するオフセット値は「3」に設定されているとする。
これにより、制御部101は、一次の配列CK(N)を設定し、これに沿わせ注記と対応するオフセット値を格納する。したがって、CK(1)=(「日本語の沿わせ注記」、「7」)、CK(2)=(「英語の沿わせ注記」、「8」)、CK(3)=(「中国語の沿わせ注記」、「7」)、CK(4)=(「韓国語の沿わせ注記」、「3」)というように、配列CK(N)にデータが格納される。
そして、この例の場合、初期位置特定部1071は、最初に描画する沿わせ注記と、その沿わせ注記に対して設定されているオフセット値を特定する。この場合、配列CK(1)に格納されているデータが、最初に描画する沿わせ注記と、その沿わせ注記に対して設定されているオフセット値となる。したがって、この場合、配列CK(1)に格納されている沿わせ注記「日本語の沿わせ注記」が最初に描画する沿わせ注記として特定され、そのオフセット値は「7」であると特定される。
図10は、多言語の沿わせ注記を描画するための処理について説明するための図である。初期位置特定部1071は、図10に示すように、沿わせ注記を付すポリラインL11の開始点ST0を中心にして、オフセット値「7」に応じた半径RAの円CAを描画するようにする。そして、仮想的に描画するようにした円CAと沿わせ注記の付加対象であるポリラインL11との交点StAを、最初に描画する沿わせ注記の描画開始位置として特定する。
そして、初期位置特定部1071は、描画対象として特定した沿わせ注記「日本語の沿わせ注記」と、特定した描画開始位置StAとを沿わせ注記描画部1073に通知する。沿わせ注記描画部1073は、図5、図6を用いて説明したポリラインに対する沿わせ注記の描画方法に従って、地図作成メモリ106に描画されているポリラインL11に対して、描画開始位置StAから最初の沿わせ注記である「日本語の沿わせ注記」を描画する。
そして、沿わせ注記描画部1073は、描画した沿わせ注記の最後の文字の描画のために用いた小さな仮想的な円cirAとポリラインL11との交点であって、文字の後端側の交点を描画終了位置EdAとして特定し、これをオフセット適用部1072に通知する。この描画終了位置EdAが、次の沿わせ注記の描画開始位置を特定するために描画する仮想的な円CBの中心として用いられる。
オフセット適用部1072は、次に描画する沿わせ注記と、これに対応するオフセット値を特定する。この場合、直前に用いた配列は配列CK(1)であるので、次には配列CK(2)に格納されているデータが、次に描画する沿わせ注記と、その沿わせ注記に対して設定されているオフセット値となる。したがって、この場合、配列CK(2)に格納されている沿わせ注記「英語の沿わせ注記」が次に描画する沿わせ注記として特定され、そのオフセット値は「8」であると特定される。
オフセット適用部1072は、図10に示すように、沿わせ注記描画部1073から通知された交点EdAを中心にして、オフセット値「8」に応じた半径RBの円CBを描画するようにする。そして、仮想的に描画するようにした円CBと沿わせ注記の付加対象であるポリラインL11との交点StBを、次に描画する沿わせ注記の描画開始位置として特定する。
そして、オフセット適用部1072は、描画対象として特定した沿わせ注記である「英語の沿わせ注記」と、特定した描画開始位置StBとを沿わせ注記描画部1073に通知する。沿わせ注記描画部1073は、図5、図6を用いて説明したポリラインに対する沿わせ注記の描画方法に従って、地図作成メモリ106に描画されているポリラインL11に対して、描画開始位置StBから「英語の沿わせ注記」を描画する。
そして、沿わせ注記描画部1073は、描画した沿わせ注記の最後の文字の描画のために用いた仮想的な小さな円cirBとポリラインL11との交点であって、文字の後端側の交点を描画終了位置EdBとして特定し、これをオフセット適用部1072に通知する。この描画終了位置EdBが、次の沿わせ注記の描画開始位置を特定するために描画する仮想的な円CCの中心として用いられる。
オフセット適用部1072は、次に描画する沿わせ注記と、これに対応するオフセット値を特定する。この場合、直前に用いた配列は配列CK(2)であるので、次には配列CK(3)に格納されているデータが、次に描画する沿わせ注記と、その沿わせ注記に対して設定されているオフセット値となる。したがって、この場合、配列CK(3)に格納されている「中国語の沿わせ注記」が次に描画する沿わせ注記として特定され、そのオフセット値は「7」であると特定される。
オフセット適用部1072は、図10に示すように、沿わせ注記描画部1073から通知された描画終了位置EdBを中心にして、オフセット値「7」に応じた半径RCの円CCを描画するようにする。そして、仮想的に描画するようにした円CCと沿わせ注記の付加対象であるポリラインL11との交点StCを、次に描画する沿わせ注記の描画開始位置として特定する。
そして、オフセット適用部1072は、描画対象として特定した「中国語の沿わせ注記」と、特定した描画開始位置StCとを沿わせ注記描画部1073に通知する。沿わせ注記描画部1073は、図5、図6を用いて説明したポリラインに対する沿わせ注記の描画方法に従って、地図作成メモリ106に描画されているポリラインL11に対して、描画開始位置StCから「中国語の沿わせ注記」を描画する。
そして、沿わせ注記描画部1073は、描画した沿わせ注記の最後の文字の描画のために用いた仮想的な小さな円cirCとポリラインL11との交点であって、文字の後端側の交点を描画終了位置EdCとして、これをオフセット適用部1072に通知する。この描画終了位置EdCが、次の沿わせ注記の描画開始位置を特定するために描画する仮想的な円CDの中心として用いられる。
オフセット適用部1072は、次に描画する沿わせ注記と、これに対応するオフセット値を特定する。この場合、直前に用いた配列は配列CK(3)であるので、次には配列CK(4)に格納されているデータが、次に描画する沿わせ注記と、その沿わせ注記に対して設定されているオフセット値となる。したがって、この場合、配列CK(4)に格納されている「韓国語の沿わせ注記」が次に描画する沿わせ注記として特定され、そのオフセット値は「3」であると特定される。
オフセット適用部1072は、図10に示すように、沿わせ注記描画部1073から通知された描画終了位置EdBを中心にして、オフセット値「3」に応じた半径RDの円CDを描画するようにする。そして、仮想的に描画するようにした円CCと沿わせ注記の付加対象であるポリラインL11との交点StDを、次に描画する沿わせ注記の描画開始位置として特定する。
そして、オフセット適用部1072は、描画対象として特定した「韓国語の沿わせ注記」と、特定した描画開始位置StDとを沿わせ注記描画部1073に通知する。沿わせ注記描画部1073は、図5、図6を用いて説明したポリラインに対する沿わせ注記の描画方法に従って、地図作成メモリ106に描画されているポリラインL11に対して、描画開始位置StCから「韓国語の沿わせ注記」を描画する。
そして、沿わせ注記描画部1073は、描画した沿わせ注記の最後の文字の描画のために用いた仮想的な小さな円cirDとポリラインL11との交点であって、文字の後端側の交点を描画終了位置EdDとして、これをオフセット適用部1072に通知する。この描画終了位置EdDが、次の沿わせ注記の描画開始位置を特定するために描画する仮想的な円の中心として用いられる。この後、オフセット適用部1072と沿わせ注記描画部1073が協働して、日本語の沿わせ注記→英語の沿わせ注記→中国語の沿わせ注記→韓国語の沿わせ注記の順で、ポリラインL11に対する4か国語の沿わせ注記の描画が繰り返し行われる。
なお、沿わせ注記描画部1073は、上述したように、描画した沿わせ注記の最後の文字の描画のために用いた仮想的な小さな円cirとポリラインとの交点であって、文字の後端側の交点EdXを特定し、オフセット適用部1072に通知する。そして、沿わせ注記描画部1073は、オフセット適用部1072から指示された次に描画する沿わせ注記の全長が、交点Edxから対象のポリラインの終点までの長さを超える場合に、当該ポリラインに対する沿わせ注記の描画処理が終了することになる。描画する沿わせ注記の全長は、例えば沿わせ注記の各文字を描画するために用いる仮想的な小さな円cirの数に、円cirの直径を掛け算することによって、おおよその値として求めることができる。
[地図画像の描画処理]
図11は、この実施の形態の地図情報提供サーバ1において行われる地図画像の描画処理の一例について説明するためのフローチャートである。図11のフローチャートに示す処理は、制御部101において実行され、制御部101が、地図図形データ処理部105、沿わせ注記データ処理部107、地図注記データ処理部108を制御することにより、これらの各部が機能して行われる。
通信ネットワーク4を通じて送信されて来るクライアント装置2、3からの地図取得要求は、通信I/F102を通じて受信され、受信情報処理部103に供給されて解析され、その解析結果が制御部101に供給される。制御部101は、地図提供要求を受信したことを示す解析結果が供給されると、図11に示す処理を実行し、地図画像の描画処理を行う。
まず、制御部101は、受信した地図取得要求に応じて、要求されたエリアの地図であって、要求された縮尺の地図画像を描画するための地図図形データを、地図図形データ格納部11から読み出す(ステップS101)。そして、制御部101は、要求されたエリアの要求された縮尺の地図画像を描画するために必要な全ての地図図形データについての処理が終了したか否かを判別する(ステップS102)。ステップS102の判別処理は、簡単には、要求されたエリアの要求された縮尺の地図画像を描画するための地図図形データがまだ存在するか否かに応じて判別できる。
ステップS102の判別処理において、要求されたエリアの要求された縮尺の地図画像を描画するために必要な全ての地図図形データについての処理が終了したと判別したとする。この場合には、制御部101は、送信情報処理部104を制御して、地図作成メモリ106に描画した地図画像を要求元のクライアント装置に提供するなどの処理を行って(ステップS103)、この図11に示す処理を終了する。
ステップS102の判別処理において、要求されたエリアの要求された縮尺の地図画像を描画するために必要な全ての地図図形データについての処理は終了していないと判別したとする。この場合には、制御部101は、読み出した地図図形データを地図図形データ処理部105に供給し、読み出した地図図形データに応じた地図図形を地図作成メモリ106に描画する処理を行うようにする(ステップS104)。
そして、制御部101は、ステップS101で読み出した地図図形データの図形IDに基づいて、地図注記データ格納部12の地図注記データを読み出すようにする(ステップS105)。そして、制御部101は、今回描画した地図図形に対応する地図注記データが存在するか否かを判別する(ステップS106)。
ステップS106の判別処理で、地図注記データが存在すると判別した時には、その地図注記データがポリラインに対するものか否かを判別する(ステップS107)。この実施形態において、ステップS107の判別処理は、処理対象となっている読み出した地図図形データの図3に示した種類(地図図形の種類を示す情報)に基づいて判別できる。
ステップS107の判別処理で、その地図注記データがポリラインに対するものであると判別したときは、制御部101は、沿わせ注記データ処理部107を制御して、ステップS104で描画した地図図形のうち、ポリラインに対する沿わせ注記の描画処理を実行する(ステップS108)。また、ステップS107の判別処理で、その地図注記データがポリラインに対するものではないと判別したときは、制御部101は、地図注記データ処理部108を制御して、ステップS104で描画した地図図形のうち、ポイントやポリゴンに対する地図注記の描画処理を実行する(ステップS109)。
これらステップS108、ステップS109の処理の後と、ステップS106の判別処理で今回描画した地図図形に対応する地図注記データが存在しないと判別した時には、ステップS101からの処理を繰り返すようにする。これにより、クライアント装置からの要求に応じたエリアの要求に応じた縮尺の地図画像(地図図形と地図注記とからなる画像)を描画することができる。
[沿わせ注記の描画処理の詳細]
図12は、図11に示した地図画像の描画処理のステップS108で実行される沿わせ注記の描画処理を説明するためのフローチャートである。図12に示す処理は、制御部101の制御の下、沿わせ注記データ処理部107が機能して実行される処理である。
最初に、沿わせ注記データ処理部107の初期位置特定部1071は、最初に描画する沿わせ注記と、そのオフセット値とを取得する(ステップS201)。上述もしたように、描画対象のポリラインに対して複数種類の沿わせ注記が設定されている場合には、それらの沿わせ注記と対応するオフセット値とが、1次の配列CK(N)に添え字Nを値「1」から1ずつカウントアップさせるようにしてセットされている。このため、ステップS201では、まず、CK(1)にセットされている沿わせ注記と、これに対応するオフセット値とを取得する。
そして、初期位置特定部1071は、図8、図10を用いて説明したように、ポリラインの先端を中心にして最初の沿わせ注記のオフセット値に応じた半径を持つ円と当該ポリラインとの交点を描画開始位置として特定する(ステップS202)。この後、初期位置特定部1071は、ステップS201で取得した描画対象の沿わせ注記と、ステップS2020で特定した沿わせ注記の描画開始位置とを沿わせ注記描画部1073に供給し、当該沿わせ注記の描画を実行する(ステップS203)。これにより、沿わせ注記を付加する対象になっているポリラインに対して、最初の沿わせ注記が描画される。
この後、制御部101の制御の下、オフセット適用部1072が機能し、次に描画する沿わせ注記と、そのオフセット値とを取得する(ステップS204)。このステップS204の処理は、簡単には、配列CK(N)のNの値を1カウントアップし、当該配列CK(N)にセットされている沿わせ注記とオフセット値が取得される。なお、オフセット適用部1072では、配列CK(N)の添え字Nの最大値を管理しており、添え字Nが最大値の場合には、添え字Nは値1に戻されるようになっている。
そして、オフセット適用部1072は、図8、図10を用いて説明したように、直前に描画した沿わせ注記の末尾の文字エリアの後端を中心にして、次に描画する沿わせ注記のオフセット値に応じた半径を持つ円と当該ポリラインとの交点を描画開始位置とする(ステップS205)。そして、オフセット適用部1072は、今回描画する沿わせ注記と、特定した描画開始位置とを沿わせ注記描画部1073に供給する。
沿わせ注記描画部1073では、沿わせ注記の描画処理は終了したか否かを判別する(ステップS206)。このステップS206では、オフセット適用部1072から指示された次に描画する沿わせ注記の全長が、今回の描画開始位置から対象のポリラインの終点までの長さを超える場合に、当該ポリラインに対する沿わせ注記の描画処理は終了したと判別する。
ステップS206の判別処理において、当該ポリラインに対する沿わせ注記の描画処理は終了していないと判別した時には、ステップS203からの処理を行うことにより、沿わせ注記の描画処理を継続して行う。ステップS206の判別処理において、当該ポリラインに対する沿わせ注記の描画処理は終了したと判別した時には、この図12の処理を終了し、次の地図図形についての描画処理に移ることになる。
[多言語の沿わせ注記の描画処理]
図13は、図11に示した地図画像の描画処理のステップS108で実行される沿わせ注記の描画処理を説明するためのフローチャートであって、多言語の沿わせ注記についての描画処理について説明するためのものである。図13に示す処理は、制御部101の制御の下、沿わせ注記データ処理部107が機能して実行される処理である。そして、多言語の沿わせ注記を描画する場合には、クライアント装置の使用者が使用する言語の沿わせ注記を最初に描画するものとしたい場合がある。例えばポリラインの起点(先端)に近い位置に描画されている沿わせ注記の方が目立つ場合があり、描画される数も多くなる場合があるからである。
そこで、この例の沿わせ注記の描画処理では、地図取得要求の送信元のクライアント装置の使用者の使用言語の沿わせ注記を最初に描画する沿わせ注記とすることができるようにしている。その前提として、クライアント装置から地図情報提供サーバ1に提供される地図取得要求に、当該クライアント装置の使用者の使用する言語の言語種別を示す情報を付加する。
地図取得要求に付加される言語種別を示す情報は、例えば、クライアント装置に対して設定されている言語種別を示す情報、クライアント装置で実行されるブラウザに設定されている言語種別を示す情報などを用いることができる。また、地図取得要求を形成する際に、使用者から入力を受け付けるようにした言語種別を示す情報を用いるようにすることもできる。そして、クライアント装置から地図情報提供サーバ1に送信する地図取得要求に、使用者が使用する言語の言語種別を示す情報を付加する処理は、クライアント装置で実行される地図情報を取得するためのアプリケーションソフトウェアによって行われる。
一方、地図情報提供サーバ1では、制御部101が、図13に示した沿わせ注記の描画処理を実行するが、制御部101は、送信情報処理部104の地図取得要求の解析結果から、使用者の言語種別を示す情報を取得する(ステップS301)。そして、制御部101は、使用者の言語種別に応じた沿わせ注記の描画順を特定する(ステップS302)。ここで、図10に示したポリラインL11の沿わせ注記の場合を例にして説明する。また、上述したように、制御部101が、一次の配列CK(N)に、日本語→英語→中国語→韓国語の順で、その言語に応じた沿わせ注記と、対応するオフセット値とを格納するようにしているとする。
この場合に、使用者の言語種別が英語であれば、英語の沿わせ注記を最初に描画する沿わせ注記として特定する。そして、この場合の沿わせ注記の描画順は、配列CK(N)の添え字Nの順番に対応して、「CK(2)の英語」→「CK(3)の中国語」→「CK(4)の韓国語」→「CK(1)の日本語」という順番となる。
ステップS301及びステップS302の後においては、図12を用いて説明したステップS201からステップS206の処理と同様の処理が行われる。すなわち、この例の場合には、最初に英語の沿わせ注記を描画し、2番目に中国語の沿わせ注記を描画し、3番目に韓国語の沿わせ注記を描画し、4番目に日本語の沿わせ注記を描画する。この後、また、英語→中国語→韓国語→日本語の順に沿わせ注記を描画し、対象のポリラインに対して、図10を用いて説明した態様で、沿わせ注記の描画が行われる。
なお、図13を用いて説明した処理は、多言語の沿わせ注記を描画する場合に、その描画順序をクライアント装置2、3の使用者の使用言語に応じた順番で、多言語の沿わせ注記を描画するようにしたものである。しかし、順番だけでなく、表示態様も変えるようにすることができる。
例えば、上述したように、使用者の言語種別が英語であるとする。この場合、制御部101は、最初に描画する沿わせ注記は、配列CK(2)に格納されている英語の沿わせ注記であると特定できる。この場合の添え字N=2を、制御部101が所定のメモリに記憶しておく。そして、配列CK(2)に格納されている英語の沿わせ注記を沿わせ注記描画部1073に提供するごとに、制御部101は、沿わせ注記を強調して描画する指示を沿わせ注記描画部1073に出す。
沿わせ注記描画部1073は、制御部101からの強調指示があるときに、描画する沿わせ注記を強調するようにして描画する。具体的には、当該沿わせ注記を、太文字で描画したり、文字サイズを大きくして描画したり、文字フォントを変えたり、あるいは、他の沿わせ注記と異なる描画色で描画したりする。これにより、使用者の使用言語に応じた言語の沿わせ注記を、最初に描画する沿わせ注記とし、その描画順にしたがって描画を繰り返すことができると共に、使用者の使用言語に応じた言語の沿わせ注記を目立つように描画することもできる。
なお、描画順は変えずに、使用者の使用言語に応じた言語の沿わせ注記を目立つように描画することもできる。この場合には、ステップS301で、制御部101が、使用者の言語種別を示す情報を特定し、ステップS302の処理は行わないようにする。そして、制御部101が、使用者の言語種別に応じた言語の沿わせ注記が格納されている配列CK(X)を特定し、この添え字Xを、所定のメモリに記憶しておく。そして、配列CK(X)に格納されている沿わせ注記が沿わせ注記描画部1073に提供されるごとに、制御部101が、沿わせ注記描画部1073に沿わせ注記を強調して描画する指示を出す。これにより、沿わせ注記の描画順は変更せずに、使用者の使用言語に応じた言語の沿わせ注記を目立つように描画することができる。
[クライアント装置3の構成例]
上述した地図情報提供サーバ1から描画された地図画像の提供を受けて利用するクライアント装置2、3の内、スマートフォンなどと呼ばれる高機能携帯電話端末3の構成例について説明する。図14は、高機能携帯電話端末3の構成例を説明するためのブロック図である。図14に示すように、高機能携帯電話端末3は、送受信アンテナ301A、無線通信部301、制御部302、記憶装置303、操作部304、GPS部305、GPSアンテナ305A、音声出力部306、スピーカ307、要求形成部308、タッチパネル33を備える。タッチパネル33は、上述もしたように、表示部31とタッチセンサ32とからなる部分である。
送受信アンテナ301Aと無線通信部301とは、無線通信機能を実現する。制御部302は、この高機能携帯電話端末3の各部を制御する。記憶装置303は、比較的に容量の大きな不揮発性メモリを備え、データを記録して保持し、また、読み出して利用できるようにする機能を実現する。操作部304は、電源スイッチや幾つかのファンクションキーを備えた部分である。GPS部305とGPSアンテナ305Aとは、自機の現在位置の測位機能を実現する。音声出力部306とスピーカ307とは、音声メッセージやアラーム音などの放音機能を実現する。
要求形成部308は、制御部302の制御の下、例えば、地図取得要求を形成し、これを無線通信部301及び送受信アンテナ301Aを通じて通信ネットワーク4に送出し、地図情報提供サーバ1に送信する機能を実現する。すなわち、要求形成部308は、通信ネットワーク4上に設けられている種々のWebページ等にアクセスし、情報の提供を要求するなどの機能を実現する。タッチパネル33は、情報の表示機能と、使用者からの指示入力を受け付ける機能を実現する。
そして、自機からの地図取得要求に応じて、上述したように地図情報提供サーバ1で描画された地図画像を形成する画像データは、地図情報提供サーバ1から通信ネットワーク4を通じて高機能携帯電話端末3に送信されて来る。高機能携帯電話端末3は、送受信アンテナ301A及び無線通信部301を通じて、地図情報提供サーバ1からの地図画像データを受信して記憶装置303に格納する。そして、制御部302は、記憶装置303に格納した地図画像データを表示部31に供給し、表示部31の表示画面に地図画像を表示して、使用者に提供する。
このようにして提供された地図画像は、表示部31に表示して使用者が利用するほか、制御部302において、ナビゲーション用のアプリケーションソフトが実行された場合には、ルート案内のための地図画像として利用することもできるようにされる。
[地図情報形成表示装置の構成例]
上述した実施の形態では、地図情報提供サーバ1とクライアント装置2、3とによって、地図情報提供装置(システム)を構成する場合について説明した。すなわち、地図画像を描画(形成)する装置(地図情報提供サーバ1)と、その地図画像を表示するための地図画像データの提供を受けて、地図画像を表示する装置(クライアント装置2、3)とが別体となっていた。しかし、これに限るものではない。地図画像を描画(形成)する装置と、描画(形成)された地図画像を表示する装置とが1つの装置として構成することもできる。
図15は、地図画像を描画(形成)する機能と、描画(形成)された地図画像を表示する機能とを備えた、地図情報形成表示装置5の構成例を説明するためのブロック図である。図15と図2とを比較すると分かるように、地図情報形成表示装置5のタッチパネル109以外の部分は、図2に示した地図情報提供サーバ1と同様に構成されている。このため、図15に示した地図情報形成表示装置5の構成例において、図2に示した地図情報提供サーバ1と同様に構成される部分には同じ参照符号を付し、それらの部分の詳細な説明については重複するので省略する。
そして、地図情報形成表示装置5が備えるタッチパネル109は、表示部109Dとタッチセンサ109Sとからなるユーザーインターフェース部である。すなわち、タッチパネル109は、表示部109Dに地図画像等を表示すると共に、タッチセンサ109Sを通じて使用者からの指示入力を受け付けることができるものである。
この地図情報形成表示装置5においては、図2等を用いて上述した地図情報提供サーバ1の場合と同様にして、地図作成メモリ106に地図画像が描画される。地図作成メモリ106に描画された地図画像は、タッチパネル109を通じて使用者によって指示されたエリアについての指示された縮尺で描画されたものである。そして、制御部101は、地図作成メモリ106に描画するようにされた地図画像の地図画像データを表示部109Dに供給し、表示部109Dの表示画面に地図画像を表示して、使用者に提供する。
このように、地図画像を描画する機能と、描画した地図画像を表示する機能を備えた、地図情報形成表示装置を構成することもできる。
また、この例の地図情報形成表示装置5の場合、図2に示した地図情報提供サーバ1と同様に、地図画像の描画のために必要になる地図図形データ(図3)、地図注記データ(図4)は、地図図形データ格納部11、地図注記データ格納部12に用意されている。しかし、これに限るものではない。例えば、描画対象となるエリアの地図図形データ(図3)、地図注記データ(図4)の提供を地図情報提供サーバから受けて、これを地図図形データ格納部11、地図注記データ格納部12に格納し、これを用いて地図画像を描画するようにしてもよい。
[沿わせ注記の他の描画態様]
上述した実施の形態では、図8、図10に示したように、沿わせ注記はポリライン上(ポリラインを覆う位置)に描画するものとして説明した。しかしこれに限るものではない。沿わせ注記がポリラインを覆うことなく沿うように、沿わせ注記を描画することも可能である。図16は、沿わせ注記がポリラインを覆うことなく沿うように描画する場合の例について説明するための図である。
上述した実施の形態では、ポリラインに対する沿わせ注記を描画するために、図5、図6、図8、図10を用いて説明したように、ポリライン上に仮想的な小さな円cirを描画するようにして、沿わせ注記を構成する各文字の描画位置を特定するようにした。これに対して、この例の場合には、図16に示すように、底辺の両端がポリライン上に位置するようにされる沿わせ注記の文字数分の仮想的な四角形squを描画するようにし、その四角形squの内側に沿わせ注記の各文字を描画する。
そして、図8を用いて上述した実施の形態の場合と同様にして、各沿わせ注記の描画開始位置St1x、St2x、St3x、St4xが特定される。この描画開始位置St1x、St2x、St3x、St4xが、図16に示すように、各沿わせ注記の先頭文字を描画するための四角形squの底辺の前側(先頭側)の端部となる。
また、各沿わせ注記の描画開始位置St1x、St2x、St3x、St4xを特定するために描画する仮想的な円C1x、C2x、C3x、C4xの中心Ed1x、Ed2x、Ed3x、Ed4xは、描画した各沿わせ注記の最後の文字を描画するために用いた仮想的な四角形squの底辺の後側(後端側)の端部となる。当該仮想的な円C1x、C2x、C3x、C4xの半径R1x、R2x、R3x、R4xは、各沿わせ注記に対して設定されるオフセット値に応じた長さのものである。これにより、図16に示すように、沿わせ注記がポリラインを覆うことが無いようにしつつ、沿わせ注記をポリラインに沿って描画することができる。
また、図16は、沿わせ注記をポリラインにかかることなく、ポリラインの上側にポリラインに沿って描画するようにしたが、これに限るものではない。沿わせ注記をポリラインにかかることなく、ポリラインの下側にポリラインに沿って描画することもできる。この場合には、沿わせ注記を描画するために仮想的に描画する仮想的な四角形squの上辺の両端が、ポリライン上の位置となるようにすればよい。
[実施の形態の効果]
上述した実施の形態の地図情報提供サーバ1、地図情報形成表示装置5の場合には、図8に示したように、距離の長いポリラインに対して間隔を空けて沿わせ注記を繰り返し描画する場合であっても、沿わせ注記ごとに設定されるオフセット値を用いることにより、ポリラインに対する沿わせ注記の描画処理にかかる負荷を軽減できる。また、図8、図10を用いて説明したように、1つのポリラインに対して、異なる複数の沿わせ注記を簡単に、かつ、見映えよく描画することもできる。
[変形例]
なお、上述した実施の形態では、沿わせ注記の描画開始位置を、沿わせ注記を構成する各文字を描画するために用いる仮想的な小さな円cirの円周上の位置となるようにしたが、これに限るものではない。沿わせ注記の描画開始位置を、沿わせ注記を構成する各文字を描画するために用いる仮想的な小さな円cirの中心として用いるようにしてもよい。
また、上述の実施の形態では、ポリラインとして例えば道路である場合を例にして説明したが、ポリラインは道路に限るものではない。例えば、河川、鉄道路線、航路、空路などの地図上において、連続線により表現される種々の地図図形に対して、沿わせ注記を描画する場合に、この発明を適用することができる。
また、1つのポリラインに対して複数の沿わせ注記が設定されている場合でも、例えば、使用者の使用する言語に対応したものだけを繰り返し表示することも可能であり、その場合であっても、この発明を適用できる。
また、沿わせ注記ごとに設定されるオフセット値は、種々の決め方が可能である。例えば、1つのポリラインに対して複数の沿わせ注記がある場合に、全ての注記に対して同じオフセット値を設定してもよい。また、全ての注記に対して異なるオフセット値を設定してもよい。異なるオフセット値を設定する場合には、例えば、沿わせ注記の文字数に応じてオフセット値を変えたり、ランダムにオフセット値を変えたり、デザイン上の観点や見映えの観点からオフセット値を選択したりできる。また、何番目に描画する沿わせ注記化に応じてオフセット値を変えてもよい。
また、異なる言語の沿わせ注記ごとに、オフセット値を変えるようにしてもよい。また、描画する沿わせ注記の属性ごとにオフセット値を変えるようにしてもよい。例えば、道路、河川、鉄道路線といった属性に応じて、沿わせ注記のオフセット値を設定しておき、これを用いるようにしてもよい。要は、沿わせ注記ごとに、用いるオフセット値が設定されているか、あるいは、設定されていなくても、沿わせ注記ごとに特定することができるようになっていればよい。
なお、図4を用いて説明した態様が、沿わせ注記ごとにオフセット値を設定しておく態様であり、図9を用いて説明した態様が、沿わせ注記の言語ごとにオフセット値を設定しておく態様、すなわち、沿わせ注記の種類や属性に応じて、オフセット値を設定しておく態様である。
[その他]
上述した実施の形態の説明からも分かるように、地図作成装置の地図図形描画手段の機能は、地図情報提供サーバ1の地図図形データ処理部105が実現し、地図作成装置の地図作成メモリの機能は、地図情報提供サーバ1の地図作成メモリ106が実現し、地図作成装置の沿わせ注記描画手段の機能は、地図情報提供サーバ1の沿わせ注記データ処理部107が実現している。
また、地図作成装置の言語種別取得手段の機能は、通信I/F102、受信情報処理部103、制御部101が協働して実現している。また、地図作成装置の表示手段の機能は、地図情報形成表示装置5の表示部109Dが実現し、地図作成装置の表示制御手段の機能は、地図情報形成表示装置5の制御部101が実現している。
また、図11、図12、図13のフローチャートを用いて説明した処理を行う方法が、この発明の地図作成方法の一実施の形態が適用されたものである。また、図11、図12、図13のフローチャートを用いて説明した処理を行うプログラムが、この発明の地図作成プログラムの一実施の形態が適用されたものである。
また、上述した実施形態の地図情報提供サーバ1、地図情報形成表示装置5において、受信情報処理部103、送信情報処理部104、地図図形データ処理部105、沿わせ注記データ処理部107、地図注記データ処理部108の各機能は、制御部101で実行されるプログラムによって、制御部101の機能として実現することももちろん可能である。また、制御部101が実行する処理も、制御部101で実行されるプログラムにより、種々の対応が可能であり、当該プログラムにより、制御部101を表示制御部として機能させることもできる。