JP2014085420A - 地図情報処理装置 - Google Patents
地図情報処理装置 Download PDFInfo
- Publication number
- JP2014085420A JP2014085420A JP2012232517A JP2012232517A JP2014085420A JP 2014085420 A JP2014085420 A JP 2014085420A JP 2012232517 A JP2012232517 A JP 2012232517A JP 2012232517 A JP2012232517 A JP 2012232517A JP 2014085420 A JP2014085420 A JP 2014085420A
- Authority
- JP
- Japan
- Prior art keywords
- mesh
- interpolation
- map information
- divisions
- adjacent
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Instructional Devices (AREA)
- Processing Or Creating Images (AREA)
Abstract
【課題】地図情報処理装置に必要な描画パフォーマンスを抑制することが可能な技術を提供することを目的とする。
【解決手段】地図情報処理装置は、記憶部3と、出力部4と、制御部5とを備える。記憶部3は、地図情報と、メッシュ領域M2を格子状に分割する格子点LAの起伏を示す起伏情報とを記憶する。メッシュ領域M2の起伏の複雑度に応じたメッシュ領域の分割数に関して、隣接するメッシュ領域M2同士の分割数の差が許容値以下に調整されている。制御部5は、地図情報及び起伏情報に基づいて地形の表示を出力部4において出力する際に、隣接するメッシュ領域M2同士の分割数が異なる場合には、当該隣接するメッシュ領域M2同士の境界部分のうち少なくとも一方の境界部分に面を補間する。
【選択図】図1
【解決手段】地図情報処理装置は、記憶部3と、出力部4と、制御部5とを備える。記憶部3は、地図情報と、メッシュ領域M2を格子状に分割する格子点LAの起伏を示す起伏情報とを記憶する。メッシュ領域M2の起伏の複雑度に応じたメッシュ領域の分割数に関して、隣接するメッシュ領域M2同士の分割数の差が許容値以下に調整されている。制御部5は、地図情報及び起伏情報に基づいて地形の表示を出力部4において出力する際に、隣接するメッシュ領域M2同士の分割数が異なる場合には、当該隣接するメッシュ領域M2同士の境界部分のうち少なくとも一方の境界部分に面を補間する。
【選択図】図1
Description
本発明は、地図情報を処理する地図情報処理装置に関するものである。
近年、地形(起伏を有する地図)を表示(描画)可能に、地図情報を処理する地図情報処理装置に関して様々な技術が提案されている。例えば、特許文献1には、隣接するメッシュ領域同士の境界部分において不整合が生じる場合に、その境界部分を三角形状に分割する処理を実施した上で、立体的な地形を表示する技術が記載されている。
しかしながら、特許文献1に記載の技術では、不整合が生じた境界部分を分割する数については制約が規定されていない。そのため、境界部分に付与する三角形として、互いに形状が異なる多数の三角形を記憶あるいは作成しなければならず、その結果として、地図情報処理装置に高い描画パフォーマンス(処理能力、記憶容量)が必要になるという問題があった。
そこで、本発明は、上記のような問題点を鑑みてなされたものであり、地図情報処理装置に必要な描画パフォーマンスを抑制することが可能な技術を提供することを目的とする。
本発明に係る地図情報処理装置は、出力部と、地図を示す地図情報と、当該地図をメッシュ状に区画して得られる各メッシュ領域に関して当該メッシュ領域を格子状に分割する格子点の起伏を示す起伏情報とを記憶する記憶部とを備える。メッシュ領域の起伏の複雑度に応じたメッシュ領域の分割の数に関して、隣接するメッシュ領域同士の分割の数の差が予め設定された許容値以下に調整されている。地図情報処理装置は、記憶部に記憶された地図情報及び起伏情報に基づいて地形の表示を出力部において出力する際に、隣接するメッシュ領域同士の分割の数が異なる場合には、当該隣接するメッシュ領域同士の境界部分のうち少なくとも一方の境界部分に面を補間する制御部をさらに備える。
本発明によれば、隣接するメッシュ領域同士の分割の数の差が予め設定された許容値以下に調整されている。したがって、隣り合うメッシュ領域同士の分割の数の組合せを低減することができることから、境界部分を補間するのに必要なポリゴンの形状の種類を減少することができる。よって、地図情報処理装置に必要な描画パフォーマンスを抑制することができる。
<実施の形態1>
図1は、本発明の実施の形態1に係る地図情報処理装置の構成を示すブロック図である。ここでは、地図情報処理装置は、車両に搭載されており、使用者を現在位置から目的地に案内するナビゲーション機能を有しているものとして説明する。
図1は、本発明の実施の形態1に係る地図情報処理装置の構成を示すブロック図である。ここでは、地図情報処理装置は、車両に搭載されており、使用者を現在位置から目的地に案内するナビゲーション機能を有しているものとして説明する。
この地図情報処理装置は、入力部1と、位置検出部2と、記憶部3と、出力部4と、これらを統括的に制御する制御部5とを備えて構成されている。
入力部1は、使用者の入力に応じた指示信号を制御部5に与える。この入力部1には、例えば、使用者からの音声を認識した場合にその音声に応じた指示信号を出力する音声認識装置、及び、使用者の手動操作に応じた指示信号を出力するボタン装置などの入力装置が適用される。
位置検出部2は、地図情報処理装置が搭載された車両の現在位置を検出し、当該検出した現在位置を制御部5に与える。この位置検出部2には、例えば、GPS(Global Positioning System)受信機、車速センサ、角速度センサなどが適用される。
記憶部3は、地図情報記憶部3aと、起伏情報記憶部3bとを備えて構成されている。地図情報記憶部3aには、地図を示す地図情報と、当該地図情報を管理する管理情報とが予め記憶されている。起伏情報記憶部3bには、地図に付与すべき起伏を示す起伏情報と、当該起伏情報を管理する管理情報とが予め記憶されている。地図情報及び起伏情報は、制御部5に用いられる処理ソフトウェアを変更することなく、外部の記憶媒体(DVD、CD,SDカード)の記憶情報や、通信経由の配信情報により適宜更新される。
なお、地図情報記憶部3a及び起伏情報記憶部3bには、例えば、記憶媒体としてハードディスクを用いるハードディスクドライブが適用される。この場合、地図情報記憶部3a及び起伏情報記憶部3bには、一つのハードディスクドライブが適用されてもよいし、それぞれに個別のハードディスクドライブが適用されてもよい。
出力部4は、制御部5で処理された各種情報を出力(表示)する。出力部4には、例えば、表示装置が適用される。あるいは、出力部4には、入力部1と一体的に構成されたハードウェア(例えば、タッチパネル)が適用される。
制御部5は、入力部1からの指示信号と、位置検出部2で検出された車両の現在位置と、地図情報記憶部3aに記憶された地図情報と、起伏情報記憶部3bに記憶された起伏情報とに基づいて、各種の情報処理を行う。なお、制御部5には、例えば、CPU(Central Processing Unit)などが適用される。
制御部5における情報処理としては、例えば、現在位置と地図情報とに基づいて車両の現在位置を推定するマップマッチング処理、出発地から目的地までの経路を算出する経路計算処理(経路探索処理)、その経路計算により算出された複数の経路を道路地図とともに出力部4に表示する経路表示処理、複数の経路の中から使用者により選択された経路に従って出発地から目的地までの案内を行う案内誘導処理、現在位置周辺の地図を出力部4に表示する地図表示処理、及び、施設、住所、電話番号等の各種検索処理などが含まれる。
<地図情報>
次に、地図情報記憶部3aに記憶されている地図情報について説明する。地図情報の表示範囲(作成範囲)は、2本の緯線と、2本の経線とに囲まれた矩形領域であるものとする。この地図情報は、表示に必要な詳細度に応じて階層化されている。そして、地図情報の表示範囲(作成範囲)は、階層に応じた間隔で離間する緯線に沿った2本線及び経線に沿った2本線によって囲まれた矩形状のメッシュ領域に区画して管理されている。
次に、地図情報記憶部3aに記憶されている地図情報について説明する。地図情報の表示範囲(作成範囲)は、2本の緯線と、2本の経線とに囲まれた矩形領域であるものとする。この地図情報は、表示に必要な詳細度に応じて階層化されている。そして、地図情報の表示範囲(作成範囲)は、階層に応じた間隔で離間する緯線に沿った2本線及び経線に沿った2本線によって囲まれた矩形状のメッシュ領域に区画して管理されている。
図2は、地図情報のメッシュ領域の一例を示す図である。
図2に示す例では、地図情報は、レベル0,1,2の3つの階層に階層化されており、レベル2,1,0の順に詳細度が増している。具体的には、レベル0では表示範囲が8×8個のメッシュ領域M1に区画され、レベル1では表示範囲が4×4個のメッシュ領域M1に区画され、レベル2では表示範囲が2×2個のメッシュ領域M1に区画されている。
したがって、全体の表示範囲(作成範囲)の左端経度をWxmin、右端経度をWxmax、下端緯度をWymin、上端緯度をWymax、その範囲の経度方向の幅をWx、緯度方向の幅をWyとする場合には、Wx=Wxmax−Wxmin、Wy=Wymax−Wyminとなる。そして、レベル0のメッシュ領域M1の経度方向の幅はWx/8、緯度方向の幅はWy/8となり、レベル1のメッシュ領域M1の経度方向の幅はWx/4、緯度方向の幅はWy/4となり、レベル2のメッシュ領域M1の経度方向の幅はWx/2、緯度方向の幅はWy/2となる。
なお、メッシュ領域M1を特定するために、各メッシュ領域M1にはメッシュ座標(X,Y)Mが付与される。例えば、メッシュ座標Xとして、左端のメッシュ領域M1から右端に向かって順に0,1,2…が付与され、メッシュ座標Yとして、下端のメッシュ領域M1から上端に向かって順に0,1,2,…が付与される。
地図情報記憶部3aには、上記階層及び上記メッシュ座標ごとの地図情報を示すファイルが記憶されているとともに、当該地図情報(ファイル)を管理する管理情報(メッシュ管理情報)が記憶されている。制御部5は、この管理情報に基づいてファイルを読み出すことにより、出力部4にて地図を拡大または縮小して表示することが可能となっている。
また、地図情報には、マップマッチングや道路の表示に使用する道路データと、河川、海等の地図背景を表示するための背景データと、地名等の名称を表示するための名称データと、経路誘導のための経路誘導データと、経路計算のための経路計算データと、施設等を検索するための検索データ等を含むとともに、これら各種データの所在を示すオフセットと、データサイズとを有する地図データヘッダを含んでいる。
<起伏情報>
次に、起伏情報記憶部3bに記憶されている起伏情報について説明する。起伏情報の表示範囲(作成範囲)は、2本の緯線と、2本の経線とに囲まれた矩形領域であるものとする。この起伏情報は、地図情報と同様に、表示に必要な詳細度に応じて階層化されている。そして、起伏情報の表示範囲(作成範囲)は、階層に応じた間隔で離間する緯線に沿った2本線及び経線に沿った2本線によって囲まれた矩形状のメッシュ領域に区画して管理されている。なお、地図情報及び起伏情報のメッシュ領域の区分が同一である必要はないが、それらを同一にして1対1で対応させることが簡単な実現方法であると考えられる。
次に、起伏情報記憶部3bに記憶されている起伏情報について説明する。起伏情報の表示範囲(作成範囲)は、2本の緯線と、2本の経線とに囲まれた矩形領域であるものとする。この起伏情報は、地図情報と同様に、表示に必要な詳細度に応じて階層化されている。そして、起伏情報の表示範囲(作成範囲)は、階層に応じた間隔で離間する緯線に沿った2本線及び経線に沿った2本線によって囲まれた矩形状のメッシュ領域に区画して管理されている。なお、地図情報及び起伏情報のメッシュ領域の区分が同一である必要はないが、それらを同一にして1対1で対応させることが簡単な実現方法であると考えられる。
起伏情報のメッシュ領域の一例を、図2を再度用いて説明する。
図2に示す例では、起伏情報は、レベル0,1,2の3つの階層に階層化されており、レベル2,1,0の順に詳細度が増している。具体的には、レベル0では表示範囲が8×8個のメッシュ領域M2に区画され、レベル1では表示範囲が4×4個のメッシュ領域M2に区画され、レベル2では表示範囲が2×2個のメッシュ領域M2に区画されている。
したがって、全体の表示範囲(作成範囲)の左端経度をWxmin、右端経度をWxmax、下端緯度をWymin、上端緯度をWymax、その範囲の経度方向の幅をWx、緯度方向の幅をWyとする場合には、Wx=Wxmax−Wxmin、Wy=Wymax−Wyminとなる。そして、レベル0のメッシュ領域M2の経度方向の幅はWx/8、緯度方向の幅はWy/8となり、レベル1のメッシュ領域M2の経度方向の幅はWx/4、緯度方向の幅はWy/4となり、レベル2のメッシュ領域M2の経度方向の幅はWx/2、緯度方向の幅はWy/2となる。
なお、メッシュ領域M2を特定するために、各メッシュ領域M2にはメッシュ座標(X,Y)Mが付与される。例えば、メッシュ座標Xとして、左端のメッシュ領域M2から右端に向かって順に0,1,2…が付与され、メッシュ座標Yとして、下端のメッシュ領域M2から上端に向かって順に0,1,2,…が付与される。
起伏情報記憶部3bには、上記階層及び上記メッシュ座標ごとの起伏情報を示すファイルが記憶されているとともに、当該起伏情報(ファイル)を管理する管理情報(メッシュ管理情報)が記憶されている。制御部5は、この管理情報に基づいてファイルを読み出すことにより、出力部4にて起伏を拡大または縮小して表示することが可能となっている。
<メッシュ領域M2の分割>
図3(a)及び図3(b)に示すように、起伏情報に示される各メッシュ領域M2は、格子点LAによって格子状に、緯度方向(横方向)においてn等分、経度方向(縦方向)においてm等分されている。この場合に格子状の分割に必要な格子点LAの数は、(n+1)・(m+1)である。なお、以下では説明を簡単にするために、緯度方向(横方向)の分割の数nと、経度方向(縦方向)の分割の数mとは同一(n=m)であるものとし、分割の数n,mを「分割数」と呼ぶものとする。
図3(a)及び図3(b)に示すように、起伏情報に示される各メッシュ領域M2は、格子点LAによって格子状に、緯度方向(横方向)においてn等分、経度方向(縦方向)においてm等分されている。この場合に格子状の分割に必要な格子点LAの数は、(n+1)・(m+1)である。なお、以下では説明を簡単にするために、緯度方向(横方向)の分割の数nと、経度方向(縦方向)の分割の数mとは同一(n=m)であるものとし、分割の数n,mを「分割数」と呼ぶものとする。
起伏情報は、この格子点LAの起伏を示す情報であり、各格子点LAの標高値(予め定められた一平面に対する高さを示す値)を含んでいる。すなわち、起伏情報記憶部3bには、各メッシュ領域M2を格子状に分割する格子点LAの起伏を示す起伏情報が記憶されている。
なお、メッシュ領域M2内において格子点LAを特定するために、各格子点LAには格子座標(A,B)Lが付与される。例えば、図3(b)に示すように、格子座標Aとして、左端の格子点LAから右端に向かって順に0,1,2,…が付与され、格子座標Bとして、下端の格子点LAから上端に向かって順に0,1,2,…が付与される。また、各格子点LAの標高値は、例えば、(0,0)L,(0,1)L,…,(0,4)L,(1,0)L,…,(1,4)L,…,(4,4)Lに向かう順に配列された状態で、起伏情報記憶部3bに記憶される。
以下に詳細に説明するように、制御部5は、メッシュ領域M2の起伏の複雑度に応じた分割数を、隣接するメッシュ領域M2同士の分割数の差(差分の絶対値)が予め設定された許容値以下となるように調整する。その一例として、本実施の形態1では、制御部5は、メッシュ領域M2の起伏の複雑度に基づいて、メッシュ領域M2の分割数を決定する。そして、制御部5は、隣接するメッシュ領域M2同士について決定した分割数の差(差分の絶対値)が、許容値以下となるように分割数を調整するものとなっている。以下、このことについて順に説明する。
<起伏の複雑度の算出>
実運用上では、地図情報のベンダーなどからは、メッシュ領域M2において格子点LAよりも高い密度で配置された各点(以下「高密度点」と呼ぶ)に対して標高値が設定された情報が提供されている。制御部5は、当該提供された情報(以下「提供情報」と呼ぶ)に基づいて、メッシュ領域M2の起伏の複雑度を算出する。
実運用上では、地図情報のベンダーなどからは、メッシュ領域M2において格子点LAよりも高い密度で配置された各点(以下「高密度点」と呼ぶ)に対して標高値が設定された情報が提供されている。制御部5は、当該提供された情報(以下「提供情報」と呼ぶ)に基づいて、メッシュ領域M2の起伏の複雑度を算出する。
ここでは、その一例として、制御部5は、一のメッシュ領域M2に関して、高密度点の標高値の最大値と最小値との差に基づいて起伏の複雑度を算出する。次に、このことについて図4を用いて詳細に説明する。
図4は、高密度点に対する標高値を示す図である。図4の横軸は、一のメッシュ領域M2内で二次元配置された高密度点を、仮想的に横一列に配置したものに対応している。図4には、3つのメッシュ領域M2についての標高値のグラフが、実線、破線、二点鎖線によってそれぞれ示されている。図4において実線で示される標高値のグラフの最大値と最小値との差は60m程度であることから、制御部5は、そのような標高値が設定されたメッシュ領域M2の起伏の複雑度として、「6」を算出する。同様に、破線、二点鎖線で示される標高値のグラフの最大値と最小値との差はそれぞれ50m,30m程度であることから、制御部5は、そのような標高値が設定されたメッシュ領域M2の起伏の複雑度として、「5」,「3」をそれぞれ算出する。
<起伏の複雑度に基づく分割数の決定>
山間部と平野部とでは、その地形(起伏)を表現するのに必要な分割数、すなわち格子点LAの数が異なる。例えば、平野部のように、どの位置においても標高値が同一であるメッシュ領域M2、すなわち、上述の起伏の複雑度が小さいメッシュ領域M2では、分割数が少なくても(分割数0であっても)、メッシュ領域M2の左下端、右下端、左上端、右上端の4点に格子点LAを配置するだけで、標高及び起伏を表現することが可能となる。なお、極端な例ではあるが、4点に格子点LAを配置する代わりに標高値だけで、標高を表現することも可能である。
山間部と平野部とでは、その地形(起伏)を表現するのに必要な分割数、すなわち格子点LAの数が異なる。例えば、平野部のように、どの位置においても標高値が同一であるメッシュ領域M2、すなわち、上述の起伏の複雑度が小さいメッシュ領域M2では、分割数が少なくても(分割数0であっても)、メッシュ領域M2の左下端、右下端、左上端、右上端の4点に格子点LAを配置するだけで、標高及び起伏を表現することが可能となる。なお、極端な例ではあるが、4点に格子点LAを配置する代わりに標高値だけで、標高を表現することも可能である。
このため、平野部のように、起伏の複雑度が小さいメッシュ領域M2では、格子点LAを少なく、ひいては分割数を少なくしても、そのメッシュ領域M2の起伏を適切に表現することが可能である。
一方、山間部のように、位置によって標高値が異なるメッシュ領域M2、すなわち、上述の起伏の複雑度は大きいメッシュ領域M2では、平野部と同様に分割数が少なくすると、山もしくは谷の形状が失われてしまうことになる。なお、起伏を、正弦関数及び余弦関数の合成関数であると考えると、これらを適切にサンプリングするためには、起伏の持つ周波数成分の帯域幅の2倍より高い周波数が必要であることが知られている。そのため、サンプリング(格子点LA)の数などが不適切であると、山頂と山頂とのみ、あるいは、谷底と谷底とのみに格子点LAが設定されてしまい、起伏が大幅に失われてしまうことになる。
したがって、山間部のように、起伏の複雑度が大きいメッシュ領域M2では、そのメッシュ領域M2の起伏を適切に表現するためには、格子点LAを多く、ひいては分割数を多くすることが必要である。
以上のことを鑑みて、本実施の形態1に係る制御部5は、起伏の複雑度が大きいメッシュ領域M2には、大きな数を分割数として決定し、起伏の複雑度が小さいメッシュ領域M2には、小さな数を分割数として決定するものとなっている。
しかしながら、このように起伏の複雑度に基づいて分割数を決定すると、概して、隣接するメッシュ領域M2同士の分割数が異なり、隣接するメッシュ領域M2同士の間の境界部分で不整合が生じることになる。
詳細は後述するが、この不整合の問題に対しては、起伏情報に基づいて三角形ポリゴン(起伏描画ポリゴン)を生成するだけでなく、隣接するメッシュ領域M2同士の境界部分において三角形ポリゴン(面)を追加する補間を行うことにより解決することが可能である。しかしながら、隣接するメッシュ領域M2同士の分割数の差に制約がなく、その差が大きい場合には、補間に用いる三角形ポリゴンとして、互いに形状が異なる多数の三角形ポリゴンを記憶あるいは作成しなければならず、地図情報処理装置に高い描画パフォーマンスが必要になるという問題がある。
以下、この問題について具体的に説明する。分割数が決定された場合には、分割数の最大値及び最小値も決まる。ここで、例えば、分割数の最大値が「6」、最小値が「1」である場合には、隣り合うメッシュ領域M2の分割数の組合せ(S,T)は、重複するものを除いて以下の21通り存在する。
最大値及び最小値を含めて分割数の取り得る値の数をX1とすると、組合せの数は、X1・(X1+1)/2で求められる。分割数の最大値が「6」、最小値が「1」である場合には、分割数の取り得る値の数X1は1〜6の6個であることから、組合せの数は、21(=6・(6+1)/2)通りとなる。この式はX1の二次のオーダーであることから、分割数の最大値、最小値の差、すなわちX1が大きくなると、組合せの数が急激に増加する。そのため、互いに形状が異なる三角形ポリゴンを多数用意あるいは作成しなければならず、地図情報処理装置に高い描画パフォーマンスが必要になる。ここで、分割数の最大値及び最小値(取り得る値X1)を適宜コントロールすることも考えられるが、メッシュ領域M2の起伏の複雑度によりX1は変化するため、そのコントロールは難しい。
また、境界部分に補間すべき三角形ポリゴンの形状が多岐にわたると、境界部分のポリゴン形状と境界部分以外のポリゴン形状とが著しく異なる結果、境界部分が際立つなど、出力部4にて表示される地図の見栄えが良くない。
そこで、本実施の形態1では、次に説明する制御部5の制御により、隣接するメッシュ領域M2同士の分割数の差が、予め設定された許容値以下に調整されている。
<分割数の調整>
ここでは、制御部5が、隣接するメッシュ領域M2同士の分割数の差が許容値を超える場合に、その差が許容値以下となるように、当該隣接するメッシュ領域M2の一方の分割数を調整する。
ここでは、制御部5が、隣接するメッシュ領域M2同士の分割数の差が許容値を超える場合に、その差が許容値以下となるように、当該隣接するメッシュ領域M2の一方の分割数を調整する。
その一例として、本実施の形態1では、制御部5は、隣接するメッシュ領域M2同士の分割数の差が許容値を超える場合に、当該隣接するメッシュ領域M2のうち分割数が小さい一方の分割数を大きくすることにより上記調整を行う(以下「調整(A)と呼ぶ」)。あるいは、制御部5は、隣接するメッシュ領域M2同士の分割数の差が許容値を超える場合に、当該隣接するメッシュ領域M2のうち分割数が大きい一方の分割数を小さくすることにより上記調整を行う(以下「調整(B)と呼ぶ」)。
調整(A)によれば、分割数を大きくするのに伴い、記憶すべきデータサイズが大きくなるという点はあるが、メッシュ領域M2の境界部分の起伏が損なわれるのを抑制できるというメリットがある。したがって、正確な描画が求められる場合、データ容量について制約がない場合、または、三角形ポリゴンの描画枚数が多少増加しても描画パフォーマンスが十分な程度にCPU(制御部5)が高性能である場合などに有効である。
一方、調整(B)によれば、分割数を小さくするのに伴い、メッシュ領域M2の境界部分の起伏を正確に表現する情報を失ってしまうという点はあるが、記憶すべきデータサイズを低減できるというメリットがある。したがって、正確な描画が求められていない場合、装置の記憶容量に制約がある場合、または、三角形ポリゴンの描画枚数の増加が装置のパフォーマンスに影響を与える程度にCPU(制御部5)が高性能でない場合などに有効である。
なお、調整(A)または調整(B)を行った場合には、着目している隣接するメッシュ領域M2同士については、それらの分割数の差が許容値以下となるが、着目しているメッシュ領域M2と隣接する別のメッシュ領域M2とについては、それらの分割数の差が許容値を超えることもあると考えられる。そこで、ここでは、制御部5は、複数のメッシュ領域M2のうち、四隅の一隅に位置するメッシュ領域M2と、それに隣接するメッシュ領域M2とに対して、調整(A)または調整(B)を繰り返し行い、それらの分割数の差を許容値以下にする。それから、制御部5は、分割数の調整を行う対象、すなわち調整(A)または調整(B)を行う対象を、上記一隅から他の隅に向かって一メッシュ領域分シフトさせて、対象となった隣接するメッシュ領域M2同士に対して、調整(A)または調整(B)を繰り返し行う。制御部5は、以上の動作を、全てのメッシュ領域M2に対して行う。
次に、図5(a)〜(d)に示す具体例を用いて、制御部5による上記分割数の調整を詳細に説明する。この図5(a)〜(d)には、4×4個のメッシュ領域M2のそれぞれについて分割数が示されている。図5(a)は、分割数の調整前の状態を示す。図5(b)は、図5(a)に示した状態に分割数の調整を行った状態を示し、図5(c)は、図5(b)に示した状態にさらに分割数の調整を行った状態を示している。図5(d)は、分割数の調整後の状態を示す。なお、ここでは、許容値は「2」であるものとして説明する。
まず、図5(b)に示すように、全メッシュ領域M2のうち、ハッチングが施された四隅の一隅に位置するメッシュ領域M2((0,0)Mのメッシュ領域M2)と、それに隣接するメッシュ領域M2((1,0)M,(0,1)Mのメッシュ領域M2)とを、分割数の調整の対象とする。
ここで、(0,0)Mのメッシュ領域M2の分割数は「6」であるのに対し、(1,0)Mのメッシュ領域M2の分割数は「2」であり、それらの差「4」は、許容値「2」を超えている。この場合、制御部5は、(1,0)Mのメッシュ領域M2に対して分割数を大きくする調整(A)を繰り返すことにより、(1,0)Mのメッシュ領域M2の分割数を、(0,0)Mのメッシュ領域M2の分割数「6」との差が許容値「2」以下となる「4」に変更する。同様に、制御部5は、(0,1)Mのメッシュ領域M2に対して分割数を大きくする調整(A)を繰り返すことにより、(0,1)Mのメッシュ領域M2の分割数を、(0,0)Mのメッシュ領域M2の分割数「6」との差が許容値「2」以下となる「4」に変更する。
次に、図5(c)に示すように、分割数の調整を行う対象を上記一隅((0,0)M)以外の隅((4,0)M)に向かって一メッシュ領域分シフトさせる。すなわち、ハッチングが施されたメッシュ領域M2((1,0)Mのメッシュ領域M2)と、それに隣接するメッシュ領域M2((2,0)M,(1,1)Mのメッシュ領域M2)とを、分割数の調整の対象とする。
(1,0)Mのメッシュ領域M2の分割数は「4」であるのに対し、(2,0)Mのメッシュ領域M2の分割数は「1」であり、それらの差「3」は、許容値「2」を超えている。この場合、制御部5は、上述と同様に調整(A)を繰り返すことにより、(2,0)Mのメッシュ領域M2の分割数を、(1,0)Mのメッシュ領域M2の分割数「4」との差が許容値「2」以下となる「2」に変更する。一方、(1,0)Mのメッシュ領域M2の分割数は「4」、(1,1)Mのメッシュ領域M2の分割数は「4」であり、それらの差「0」は、許容値「2」以下である。この場合、制御部5は、(1,1)Mのメッシュ領域M2の分割数を変更しない。
以上の動作と並行して、同図5(c)に示すように、分割数の調整を行う対象を上記一隅((0,0)M)以外の隅((0,4)M)に向かって一メッシュ領域分シフトさせる。すなわち、ハッチングが施されたメッシュ領域M2((0,1)Mのメッシュ領域M2)と、それに隣接するメッシュ領域M2((0,2)M,(1,1)Mのメッシュ領域M2)とを、分割数の調整の対象とする。そして、上述と同様に、分割数の調整の対象となった隣接するメッシュ領域M2同士に対して、調整(A)または調整(B)を繰り返し行う。
以上のような分割数の調整を行うことにより、図5(d)に示すように、いずれの隣接するメッシュ領域M2同士の分割数の差についても許容値以下となる。なお、上述の例では、隣接するメッシュ領域M2同士のうち、一方のメッシュ領域M2のみに対して分割数の調整を行った。しかしこれに限ったものではなく、一方のメッシュ領域M2に対して分割数の調整を行った後に、他方のメッシュ領域M2に対して分割数の調整を行うなど、両方のメッシュ領域M2対して分割数の調整を行ってもよい。また、上述の例では、分割数の調整を行う対象を、複数のメッシュ領域M2の四隅のうちの一隅に位置するメッシュ領域M2から、他の隅に位置するメッシュ領域M2に向かうようにシフトさせた。しかしこれに限ったものではなく、分割数の調整を行う対象を、全てのメッシュ領域M2のうち中央に位置するメッシュ領域M2から、四隅に位置するメッシュ領域M2に向かうようにシフトさせてもよい。
ここで、分割数の最大値が「6」、最小値が「1」である場合に、分割数の調整が行われていなければ、上述したように、隣り合うメッシュ領域M2の分割数の組合せ(S,T)は、重複するものを除いて21通り存在した。これに対して、分割数の調整が行われると、隣り合うメッシュ領域M2同士の分割数の組合せ(S,T)は、以下の15通りに減少する。
具体的には、最大値及び最小値を含めて分割数が取り得る値の数をX1、許容値をY1とすると、組合せの数は、(Y1+1)・(2・X1−Y1)/2で求められる。分割数の最大値が「6」、最小値が「1」、許容値が「2」である場合(X1=6、Y1=2である場合)、組合せの数は、15(=(2+1)・(2・6−2)/2)通りとなる。この式はY1の二次のオーダーであるが、分割数の最大値及び最小値(すなわちX1)がどのような範囲であっても許容値Y1は定数であり、コントロール可能な数値であると考えられる。一方、この式は、分割数の取り得る値の数X1については一次のオーダーでしかないことから、X1が大きくなっても組合せの数の増加が抑制される。
したがって、以上のような本実施の形態1に係る地図情報処理装置によれば、境界部分への補間に必要な三角形ポリゴンの形状の種類を減少することができる。したがって、地図情報処理装置に必要な描画パフォーマンスを抑制することができるとともに、表示される地図の見栄えを向上させることができる。
<メッシュ領域M2の区分>
上述した起伏情報は格子点LAごとの標高値を含んでいるが、標高値に応じた高さで格子点LAをそれぞれ配置して表示しても、点による表示は使用者にとって分かりにくい。そこで、制御部5は、起伏情報に基づいて、標高値に応じた高さで配置された格子点LAのうち4つの格子点LAごとに、それらを頂点とする格子状の面を生成する。以下、メッシュ領域M2を格子点LAにより格子状に分割して得られる当該面を、「格子面LS」と呼ぶ。制御部5は、このような格子面LSを複数生成することにより、起伏を有する一の面を生成する。
上述した起伏情報は格子点LAごとの標高値を含んでいるが、標高値に応じた高さで格子点LAをそれぞれ配置して表示しても、点による表示は使用者にとって分かりにくい。そこで、制御部5は、起伏情報に基づいて、標高値に応じた高さで配置された格子点LAのうち4つの格子点LAごとに、それらを頂点とする格子状の面を生成する。以下、メッシュ領域M2を格子点LAにより格子状に分割して得られる当該面を、「格子面LS」と呼ぶ。制御部5は、このような格子面LSを複数生成することにより、起伏を有する一の面を生成する。
しかしながら、4つの格子点LAが一の面の上に存在するとは稀である。そこで、任意の3つの格子点LAに対して一意に一つの面を定義できることを鑑みて、制御部5は、図6(a)及び図6(b)に示すように4つの格子点LA(ここでは(a,b)L,(a+1,b)L,(a,b+1)L,(a+1,b+1)Lの格子点LA)を頂点とする格子面LSを、二つの三角形の面に区分する。なお、図6(a)は一の格子面LSの平面図であり、図6(b)は一の格子面LSの斜視図である。
図7は、二つのメッシュ領域M2(メッシュ領域M2A,M2B)における各格子面LSを二つの三角形に区分する例を示す図である。メッシュ領域M2Aの分割数は4つ(一辺当たりの格子点LAが5つ)であり、メッシュ領域M2Bの分割数は5つ(一辺当たりの格子点LAが6つ)である。なお、実際には、この二つのメッシュ領域M2A,M2Bは互いに隣接しているが、ここでは便宜上互いに離間させて示している。
メッシュ領域M2Aに関して、メッシュ領域M2A,M2Bの間の境界線上の格子点LAを上から順にa1,a2,a3,a4,a5とし、境界線から内側に向かって一列目の格子点LAを同順にα1,α2,α3,α4,α5とする。同様に、メッシュ領域M2Bに関して、メッシュ領域M2A,M2Bの間の境界線上の格子点LAを上から順にb1,b2,b3,b4,b5,b6とし、境界線から内側に向かって一列目の格子点LAを同順にβ1,β2,β3,β4,β5,β6とする。また、例えば、a1,a2,α1,α2の4つの格子点LAからなる格子面LSを、便宜上、(a1,a2,α1,α2)LSというように記す。
制御部5は、図7に示したメッシュ領域M2A,M2Bの(a1,a2,α1,α2)LS、…、(a4,a5,α4,α5)LS、(b1,b2,β1,β2)LS、…、(b5,b6,β5,β6)LSという格子面LSのそれぞれを、上記二つの三角形に区分する。ここでは、原則として、制御部5は、各格子面LSを、左上の格子点LAと右下の格子点LAとを結ぶ対角線で二つの三角形に区分するものとする。そのため、図7に示す多くの格子面LSは、左上の格子点LAと右下の格子点LAとを結ぶ対角線で二つの三角形に区分されている。なお、図7では、メッシュ領域M2A,M2Bの境界部分に位置する格子面LSだけが二つの三角形に区分されているように示されているが、境界部分以外の格子面LSについても同様に二つの三角形に区分される。
例外として、制御部5は、隣接する二つのメッシュ領域M2(例えばメッシュ領域M2A,M2B)のそれぞれと隣接する別のメッシュ領域M2(メッシュ領域M2Aの上下に隣接するメッシュ領域M2)に影響を及ぼさないようにするために、当該二つのメッシュ領域M2同士の境界線の両端に位置する格子点LAを含む格子面LSについては、当該格子点LAを通る対角線で二つの三角形に区分するものとする。そのため、図7に示す例では、メッシュ領域M2A,M2Bの間の境界線の一端に位置する格子点LA(a1)を含むメッシュ領域M2Aの一番上の格子面LSと、他端に位置する格子点LA(b6)を含むメッシュ領域M2Bの一番下の格子面LSとについては、左下の格子点LAと右上の格子点LAとを結ぶ対角線で二つの三角形に区分されている。
ここで、図7から分かるように、隣接するメッシュ領域M2同士の分割数が異なる場合、メッシュ領域M2A,M2B同士の境界線の両端に位置する格子点LA(a1とb1、a5とb6)を除いて、メッシュ領域M2A,M2Bの格子点LAの位置が一致しない。すなわち、一方のメッシュ領域M2の格子面LSの辺上に、他方のメッシュ領域M2の格子点LAが位置することになる。そのため、一方のメッシュ領域M2における格子面LSを三角形で区分けする際には、一方のメッシュ領域M2の分割数だけでなく、それに隣接するメッシュ領域M2の分割数を考慮しなければ、それらメッシュ領域M2の境界部分において面が不連続となる。その結果、地形表示する上で問題が生じてしまうことになる。
これを解消するため、制御部5は、記憶部3に記憶された地図情報及び起伏情報に基づいて地形の表示を出力部4において出力する際に、隣接するメッシュ領域M2同士の分割数が異なる場合には、当該隣接するメッシュ領域M2同士の境界部分のうち少なくとも一方の境界部分に三角形ポリゴン(面)を追加する補間を実施する。
<メッシュ領域M2の境界部分における面の補間>
次に、制御部5が実施する補間について詳細に説明する。図8は、図7に示した状態に補間を実施した状態を示す図である。なお、以下の説明では、例えば、a1,a2,α2という3つの格子点LAを頂点とする三角形ポリゴンを、便宜上、(a1,a2,α2)Tというように記す。
次に、制御部5が実施する補間について詳細に説明する。図8は、図7に示した状態に補間を実施した状態を示す図である。なお、以下の説明では、例えば、a1,a2,α2という3つの格子点LAを頂点とする三角形ポリゴンを、便宜上、(a1,a2,α2)Tというように記す。
制御部5は、隣接する二つのメッシュ領域M2のうち、一方のメッシュ領域M2の一の格子面LSから、境界線上に位置する二つの格子点LAを取得する。そして、制御部5は、当該取得した二つの格子点LAを結ぶ線分上に位置する、他方のメッシュ領域M2の格子点LAを、「区分点」として求める。例えば、制御部5は、図8に示すように、メッシュ領域M2Aのa1とa2とを結ぶ線分上に位置する、メッシュ領域M2Bのb2を区分点(図8では区分点を白抜きの丸で表示)として求める。
制御部5は、上記区分により生成していた三角形のうち区分点が求められた三角形を、当該区分点を基準に区分する。例えば、図8に示すように、制御部5は、上記区分により生成していた三角形のうち、区分点(b2)が求められた三角形(a1,a2,α2)Tを、当該区分点(b2)を基準に二つの三角形(a1,b2,α2)T,(b2,a2,α2)Tに区分する。
なお、一の三角形に複数の区分点が求められた場合、例えば、三角形(a1,a2,α2)Tにおいてa1からa2に向かう順にb1,b2,…,bi,…,bx−1,bxが区分点として求められた場合には、制御部5は、(a1,a2,α2)Tを、(x+1)個の三角形(a1,b1,α2)T,(b1,b3,α2)T,…,(bi,bi+1,α2)T,…,(bx−1,bx,α2)T,(bx,a2,α2)Tに区分する。逆に、一の三角形に対して区分点が求まらなかった場合、例えば、三角形(a1,a2,α2)Tにおいて区分点が求まらなかった場合には、制御部5は、区分せずに元の三角形(a1,a2,α2)Tを維持する。
制御部5は、以上のような区分点を基準にした区分、すなわち、メッシュ領域M2Aの格子面LSに三角形ポリゴン(面)を追加する補間を、メッシュ領域M2Aの境界部分に位置する各格子面LSについて実施する。こうして、制御部5は、隣接するメッシュ領域M2同士の境界部分のうち一方(図8ではメッシュ領域M2A)の境界部分を補間する。それから、必要に応じて、制御部5は、他方(図8ではメッシュ領域M2B)の境界部分も同様に補間する。
なお、メッシュ領域M2の分割数が0であり、格子点LAがメッシュ領域M2の4つの端点にしか存在しない場合には、制御部5は、例えば、そのメッシュ領域M2を分割数2で分割した上で補間してもよいし、あるいは、そのメッシュ領域M2と隣接する4つのメッシュ領域M2の格子点LAを考慮して補間してもよい。
以上により、制御部5は、起伏情報に基づいて上述の三角形ポリゴンからなる起伏を有する面を生成する。その後、制御部5は、当該生成した面に地図情報の地図を転写することにより、地形(起伏を有する地図)を生成する。そして、制御部5は、生成した地形を出力部4に表示させる。すなわち、制御部5は、記憶部3に記憶された地図情報及び起伏情報に基づいて、地形の表示を出力部4に出力させる。
<区分・補間手順>
図9は、本実施の形態1に係る地図情報処理装置の動作、具体的には、制御部5によるメッシュ領域M2の区分・補間手順を示すフローチャートである。
図9は、本実施の形態1に係る地図情報処理装置の動作、具体的には、制御部5によるメッシュ領域M2の区分・補間手順を示すフローチャートである。
まず、ステップS1にて、地形を出力部4に表示させる操作が入力部1で行われると、制御部5は、記憶部3に記憶された起伏情報を読み込み、表示に必要な複数のメッシュ領域M2のうち、処理対象とする一のメッシュ領域M2を特定する。
ステップS2にて、制御部5は、特定したメッシュ領域M2の全ての格子面LSにおいて、三角形の区分処理(図7を用いて説明した区分処理)及び補間処理(図8を用いて説明した補間処理)が完了しているか否かを判定する。完了している場合にはステップS3に進み、完了していない場合にはステップS4に進む。
ステップS3にて、制御部5は、表示に必要な全てのメッシュ領域M2において、三角形の区分処理及び補間処理が完了しているか否かを判定する。完了している場合には図9に示す動作を終了し、完了していない場合には、ステップS1に戻って完了していないメッシュ領域M2を特定する。すなわち、表示に必要な全てのメッシュ領域M2において、三角形の区分処理及び補間処理が完了するまでステップS3が繰り返される。
ステップS4にて、制御部5は、ステップS1で特定したメッシュ領域M2の全ての格子面LSにおいて、三角形の区分処理が完了しているか否かを判定する。完了していない場合にはステップS5に進み、完了している場合にはステップS6に進む。
ステップS5にて、制御部5は、ステップS1で特定したメッシュ領域M2の格子面LSのうち、三角形の区分処理が完了していない一の格子面LSに対して、三角形の区分処理を実施し、その後ステップS4に戻る。
ステップS6にて、制御部5は、ステップS1で特定したメッシュ領域M2の全ての格子面LSにおいて、三角形の補間処理が完了しているか否かを判定する。ここでは、特定したメッシュ領域M2の一の格子面LSについて、これと隣接するメッシュ領域M2の格子点LAから区分点を求め、当該区分点を用いた三角形の補間処理が完了しているか否かを判定する。完了していない場合にはステップS7に進み、完了している場合にはステップS2に戻る。
ステップS7にて、制御部5は、ステップS1で特定したメッシュ領域M2の格子面LSのうち、三角形の補間処理が完了していない一の格子面LSに対して、補間処理が未実施である区分点を用いて補間処理を実施し、その後ステップS6に戻る。
以上、説明したように本実施の形態1に係る地図情報処理装置では、メッシュ領域M2の起伏の複雑度に応じたメッシュ領域M2の分割数に関して、隣接するメッシュ領域M2同士の分割数の差が予め設定された許容値以下に調整されている。したがって、隣り合うメッシュ領域M2同士の分割数の組合せを低減することができることから、それらの境界部分を補間するのに必要な三角形ポリゴンの形状の種類を減少することができる。よって、地図情報処理装置に必要な描画パフォーマンスを抑制することができるとともに、表示される地図の見栄えを向上させることができる。
なお、以上の説明では、制御部5が、「メッシュ領域M2の起伏の複雑度の算出」、「起伏の複雑度に基づく分割数の決定」、及び、「分割数の調整」を行うものとして説明した。しかしこれに限ったものではなく、地図情報処理装置は、隣接するメッシュ領域M2同士の分割数の差が予め設定された許容値以下に調整された起伏情報が記憶されていればよい。したがって、例えば、地図情報処理装置の外部において算出されたメッシュ領域M2の起伏の複雑度が、地図情報処理装置に入力された場合には、制御部5が、当該入力された複雑度に基づいて「起伏の複雑度に基づく分割数の決定」及び「分割数の調整」を行うものであってもよい。あるいは、地図情報処理装置の外部において分割数が調整された起伏情報が、地図情報処理装置に入力された場合には、制御部5は、当該入力された起伏情報をそのまま記憶部3に記憶するものであってもよい。
また、上述した許容値としては、例えば、全メッシュ領域M2の分割数についての最大値と最小値との差よりも小さい自然数、または、当該分割数の平均値などを適用すればよい。
また、以上では、図3(a)及び図3(b)に示した、緯度方向(横方向)の分割数nと、経度方向(縦方向)の分割数mとが同一(n=m)である場合について説明した。しかしながら、メッシュ領域M2の緯度方向の長さと経度方向の長さとが異なる場合には、n≠mであってもよい。場合によっては、メッシュ領域M2は横方向のみまたは縦方向のみにおいて、上記分割数によって分割されてもよい。この場合、上述と同様の分割数の調整(図5)を、緯度方向の分割数n及び経度方向の分割数mのそれぞれについて個別に行うように制御部5を構成すれば、上述と同様の効果を得ることができる。
<実施の形態1の変形例>
実施の形態1の<起伏の複雑度の算出>についての説明では、制御部5は、一のメッシュ領域M2に関して、高密度点の標高値の最大値と最小値との差に基づいて起伏の複雑度を算出した(図4)。しかしながら、起伏の複雑度の算出はこれに限ったものではない。
実施の形態1の<起伏の複雑度の算出>についての説明では、制御部5は、一のメッシュ領域M2に関して、高密度点の標高値の最大値と最小値との差に基づいて起伏の複雑度を算出した(図4)。しかしながら、起伏の複雑度の算出はこれに限ったものではない。
例えば、図10に示すように、制御部5は、一のメッシュ領域M2に関して、高密度点HPの標高値の平均値と、各高密度点HPの標高値との差分の絶対値を求め、その絶対値の合計に基づいて起伏の複雑度を算出するようにしてもよい。具体的には、制御部5は、その絶対値の合計が0〜50mである場合には複雑度「1」を算出し、その絶対値の合計が50〜100mである場合には複雑度「2」を算出し…、というようにして、メッシュ領域M2の起伏の複雑度を算出してもよい。
なお、上記差分の絶対値のばらつきが小さいことと、凹凸が少ないこととは対応し、上記差分の絶対値のばらつきが大きいことと、凹凸が多いこととは対応する。そのため、制御部5は、上記差分の絶対値の標準偏差を求め、その標準偏差に基づいて起伏の複雑度を算出するようにしてもよい。具体的には、制御部5は、標準偏差が大きい場合には大きい複雑度を算出し、標準偏差が小さい場合には小さい複雑度を算出するようにしてもよい。
あるいは、別の例として、図11に示すように、制御部5は、一のメッシュ領域M2に関して、高密度点の標高値のグラフG1と、それをΔだけずらしたグラフG2との差分の絶対値を求め、図10に示した例と同様に、その絶対値の合計に基づいて起伏の複雑度を算出するようにしてもよい。なお、上記差分の絶対値のばらつきが小さいことと、凹凸が少ないこととは対応し、上記差分の絶対値のばらつきが大きいことと、凹凸が多いこととは対応する。そのため、制御部5は、図10に示した例と同様に、上記差分の絶対値の標準偏差を求め、その標準偏差に基づいて起伏の複雑度を算出するようにしてもよい。
さらに別の例として、図12に示すように、制御部5は、2n個程度の高密度点HPが存在する場合に、その起伏の複雑度をnと仮決定する(図12(a)ではn=3である)。そして、制御部5は、1つおきに高密度点HP同士を線HLで結び、線HLで結ばれていない高密度点HPと、当該高密度点HPの位置に対応する線HL上の点HLPとについて、それらの差分の絶対値を求める。
制御部5は、当該差分の絶対値の合計が閾値を超える場合には、その時点の複雑度nを最終的な複雑度として算出する。一方、制御部5は、当該差分の絶対値の合計が閾値以下である場合には、その時点の複雑度nの値を1つ減らすとともに、線HLで結ばれていなかった高密度点HPを間引く。以上の動作を繰り返すことによって、制御部5は、起伏の複雑度を算出するものであってもよい。なお、図12(b)には、図12(a)から高密度点HPを間引いた状態が示され、図12(c)には、図12(b)から高密度点HPを間引いた状態が示されている。
<実施の形態2>
本発明の実施の形態2に係る地図情報処理装置では、実施の形態1で説明した各メッシュ領域M2が、その横方向及び縦方向において、2以上の整数をべき乗して得られる分割数によって分割されている。以下、分割数が、2Dである場合について説明する。なお、以下の説明では、べき乗D(指数D)の値を「分割乗数」と呼ぶ。すなわち、分割乗数0は分割数1(設定によっては分割数0としてもよい)、分割乗数1は分割数2、分割乗数2は分割数4に相当する。また、本実施の形態2に係る地図情報処理装置において、実施の形態1で説明した構成要素と同一または類似するものについては同じ符号を付し、異なる点を中心に以下説明する。
本発明の実施の形態2に係る地図情報処理装置では、実施の形態1で説明した各メッシュ領域M2が、その横方向及び縦方向において、2以上の整数をべき乗して得られる分割数によって分割されている。以下、分割数が、2Dである場合について説明する。なお、以下の説明では、べき乗D(指数D)の値を「分割乗数」と呼ぶ。すなわち、分割乗数0は分割数1(設定によっては分割数0としてもよい)、分割乗数1は分割数2、分割乗数2は分割数4に相当する。また、本実施の形態2に係る地図情報処理装置において、実施の形態1で説明した構成要素と同一または類似するものについては同じ符号を付し、異なる点を中心に以下説明する。
以上のように、分割乗数Dで分割数をコントロールした場合に生じるメリットを、図13を用いて詳細に説明する。この図13は、図7と同様に、隣接する二つのメッシュ領域M2A,M2Bを便宜上互いに離間させて示している。ここでは、メッシュ領域M2Aの分割乗数D(Da)が、メッシュ領域M2Bの分割乗数D(Db)よりも小さい(Da<Db)例が示されている。具体的には、メッシュ領域M2Aの分割乗数Daは2、すなわち分割数は4であり、メッシュ領域M2Bの分割乗数Dbは3、すなわち分割数は8である。
図13に示されるように、分割乗数の小さいメッシュ領域M2Aの格子点LAは全て、分割乗数の大きいメッシュ領域M2Bの格子点LAと一致している。このため、分割乗数が大きいメッシュ領域M2Bについては、その境界部分に補間を行わなくて済むことが分かる。すなわち、隣接する二つのメッシュ領域M2同士の分割乗数の比較に基づいて、当該二つのメッシュ領域M2のうち、補間すべき一方を特定することができる。
ここで、分割乗数が小さいメッシュ領域M2Aの境界部分には補間を行う必要があるが、当該補間に用いられるべき区分点の数及び位置は、当該境界部分に位置する各格子面LSにおいてほぼ共通する。しかも、隣接するメッシュ領域M2A,M2B同士の分割乗数の差に基づいて、当該区分点の数及び位置を特定することが可能となる。
具体的には、図13に示すように、メッシュ領域M2Aの分割乗数Daと、メッシュ領域M2Bの分割乗数Dbとの差が「1」である場合には、メッシュ領域M2Aの境界部分に位置する4つの格子面LSのそれぞれにおいて、境界線上に位置する隣り合う二つの格子点LAの中間地点に一の区分点を設ければよいことが分かる。なお、補間に必要な区分点の数は、一般化すれば、(2・(Db−Da)−1)個となる。このように、本実施の形態2によれば、隣接するメッシュ領域M2同士の分割乗数の差に基づいて、補間すべき境界部分に位置する各格子面LSについて、当該補間に必要な区分点の数及び位置を一括して求めることができる。
そこで、本実施の形態2に係る制御部5は、隣接するメッシュ領域M2同士の分割乗数を比較し、それらの間の境界部分のうち、分割乗数が大きいメッシュ領域M2の境界部分には補間を行わずに、分割乗数が小さいメッシュ領域M2の境界部分に補間を行う。そして、この補間の際に、制御部5は、隣接するメッシュ領域M2同士の分割乗数の差に基づいて、補間すべき境界部分に位置する各格子面LSについて、当該補間に必要な区分点を一括して求める。
<区分・補間手順>
図14は、本実施の形態2に係る地図情報処理装置の動作、具体的には、制御部5によるメッシュ領域M2の区分・補間手順を示すフローチャートである。図14は、図9に示したフローチャートのステップS6及びS7を、ステップS11〜S13に代えたものである。そこで、以下においては、ステップS11〜S13についてのみ説明する。
図14は、本実施の形態2に係る地図情報処理装置の動作、具体的には、制御部5によるメッシュ領域M2の区分・補間手順を示すフローチャートである。図14は、図9に示したフローチャートのステップS6及びS7を、ステップS11〜S13に代えたものである。そこで、以下においては、ステップS11〜S13についてのみ説明する。
ステップS11にて、制御部5は、ステップS1で特定したメッシュ領域M2の境界部分の全ての格子面LSに、三角形の補間処理が必要か否かを判定する。ここでは、特定したメッシュ領域M2の分割乗数が、それに隣接するメッシュ領域M2の分割乗数以上である場合には三角形の補間処理は必要ないと判断してステップS2に戻る。一方、特定したメッシュ領域M2の分割乗数が、それに隣接するメッシュ領域M2の分割乗数より小さく、かつ、その境界部分への補間処理が未実施である場合には、三角形の補間処理が必要であると判断してステップS12に進む。
ステップS12にて、制御部5は、ステップS1で特定したメッシュ領域M2の分割乗数と、ステップS11で比較されたメッシュ領域M2の分割乗数とに基づいて、ステップS1で特定したメッシュ領域M2の境界部分を補間するのに必要な区分点を一括して求める。
それからステップS13にて、制御部5は、ステップS1で特定したメッシュ領域M2の境界部分に対して、ステップS12で求めた区分点を用いて三角形の補間処理を実施し、その後ステップS2に戻る。
以上のように、本実施の形態2に係る地図情報処理装置では、分割数に2以上の整数をべき乗して得られる数が適用される。これにより、分割乗数が大きいメッシュ領域M2については、その境界部分に補間を行わなくて済むとともに、補間そのものを簡素化することができる。そのため、地図情報処理装置に必要な描画パフォーマンスをより抑制することができる。
<実施の形態3>
図15は、本発明の実施の形態3に係る地図情報処理装置の構成を示すブロック図である。なお、本実施の形態3に係る地図情報処理装置において、実施の形態2で説明した構成要素と同一または類似するものについては同じ符号を付し、異なる点を中心に以下説明する。
図15は、本発明の実施の形態3に係る地図情報処理装置の構成を示すブロック図である。なお、本実施の形態3に係る地図情報処理装置において、実施の形態2で説明した構成要素と同一または類似するものについては同じ符号を付し、異なる点を中心に以下説明する。
図15に示すように、本実施の形態3に係る地図情報処理装置は、以上で説明した実施の形態1,2に係る地図情報処理装置の記憶部3に、補間パターン情報記憶部3cが追加されたものとなっている。この補間パターン情報記憶部3cには、格子面LSごとに、上述の境界部分への補間を実施するための複数の補間パターン(三角形ポリゴンのパターン)の情報が予め設定されている。
なお、補間パターン情報は、地図情報及び起伏情報と同様に、制御部5に用いられる処理ソフトウェアを変更することなく、外部の記憶媒体(DVD、CD,SDカード)の記憶情報や、通信経由の配信情報に基づいて適宜更新されてもよい。あるいは、補間パターン情報だけが通信経由の配信情報に基づいて適宜更新されるものであってもよい。
図16は、3つのメッシュ領域M2A,M2B,M2Cの一例を示す図である。図16に示す例において、メッシュ領域M2Aの分割数は4(分割乗数2)、メッシュ領域M2Bの分割数は8(分割乗数3)、メッシュ領域M2Cの分割数は8(分割乗数3)であり、メッシュ領域M2Bは、メッシュ領域M2Aとその上方向にて隣接し、メッシュ領域M2Cは、メッシュ領域M2Aとその右方向にて隣接している。
図17は、補間パターン情報記憶部3cに記憶された補間パターンの一例を説明するための図である。図17に示されるフォーマットにおいては、格子面LSの四隅の格子点LAに見立てた座標点P0〜P3が規定されているとともに、それらのうちの2つの間に、区分点に見立てた座標点P4〜P15が規定されている。このフォーマット上において座標点P0〜P15を組み合せることにより三角形ポリゴンパターンを生成することが可能となっている。そこで、補間パターン情報記憶部3cには、図17に示すようなフォーマットと、このフォーマット上において三角形ポリゴンパターンを生成するための座標点P0〜P15の組とが、補間パターンとして記憶されている。
ここで、本実施の形態3に係る制御部5は、補間パターン情報記憶部3cに記憶された複数の補間パターンのうち、一のメッシュ領域M2の一の格子面LSと隣接するメッシュ領域M2の数及び隣接方向と、一のメッシュ領域M2の分割数と、上記隣接するメッシュ領域M2の分割数とに基づいて補間パターンを特定する。そして、制御部5は、当該特定した補間パターンに基づいて、一のメッシュ領域M2の上述の位置の格子面LSに補間を実施する。以下、図16及び図17を用いて、制御部5が、メッシュ領域M2Aの格子面LSに対して補間する手順の一例について詳細に説明する。
まず、メッシュ領域M2Aの格子面LSのうち図16に示される格子面LS1、すなわち、一つのメッシュ領域M2Bとのみ隣接する格子面LS1を補間する手順について説明する。
制御部5は、補間対象の格子面LSと隣接するメッシュ領域M2の数及び隣接方向に基づいて、補間パターンを特定する。ここでは、格子面LS1が補間対象であり、当該格子面LS1がその上方向にて一のメッシュ領域M2Bとのみ隣接していることから、制御部5は、図17に示される上側に位置する座標点P6,P12,P13の少なくとも一の座標点と、座標点P0〜P3とを頂点とする補間パターン(三角形ポリゴンパターン)を特定する。
それから、制御部5は、特定した補間パターンの中から、補間対象の格子面LSを含むメッシュ領域M2の分割数と、隣接するメッシュ領域M2の分割数とに基づいて、補間パターンを特定する。ここでは、補間対象の格子面LS1を含むメッシュ領域M2Aの分割乗数は2(分割数は4)であり、隣接するメッシュ領域M2Bの分割乗数は3(分割数は8)であることから、制御部5は、上記特定した補間パターンの中から、図17に示される座標点P6と、座標点P0〜P3とを頂点とする補間パターン(三角形ポリゴンパターン)を特定する。
図18には、ここで特定される補間パターンとして、座標点P0,P1,P6を頂点とする三角形ポリゴンパターンと、座標点P1,P2,P6を頂点とする三角形ポリゴンパターンと、座標点P0,P3,P6を頂点とする三角形ポリゴンパターンとが示されている。制御部5は、特定した補間パターンに基づいて、各格子面LS1に補間を実施する。
制御部5は、メッシュ領域M2Aの格子面LSのうち図16に示される格子面LS2、すなわち、一つのメッシュ領域M2Cとのみ隣接する格子面LS2についても、上記格子面LS1の補間と同様の補間を実施する。結果だけ述べると、制御部5は、図17において座標点P0,P1,P5を頂点とする三角形ポリゴンパターン、座標点P2,P3,P5を頂点とする三角形ポリゴンパターン、及び、座標点P0,P3,P5を頂点とする三角形ポリゴンパターンを特定し、当該特定した補間パターンに基づいて、各格子面LS2に補間を実施する。
次に、メッシュ領域M2Aの格子面LSのうち図16に示される格子面LS3、すなわち、二つのメッシュ領域M2B,M2Cと隣接する格子面LS3を補間する手順について説明する。なお、この格子面LS3は、メッシュ領域M2Aの四隅の一つに位置する格子面LSである。
制御部5は、補間対象の格子面LSと隣接するメッシュ領域M2の数及び隣接方向に基づいて、補間パターンを特定する。ここでは、格子面LS3が補間対象であり、その上方向にてメッシュ領域M2Bと隣接し、その右方向にてメッシュ領域M2Cと隣接していることから、制御部5は、図17に示される上側に位置する座標点P6,P12,P13の少なくとも一の座標点と、右側に位置する座標点P5,P10,P11の少なくとも一の座標点と、座標点P0〜P3とを頂点とする補間パターン(三角形ポリゴンパターン)を特定する。
それから、制御部5は、特定した補間パターンの中から、補間対象の格子面LSを含むメッシュ領域M2の分割数と、隣接するメッシュ領域M2の分割数とに基づいて、補間パターンを特定する。ここでは、補間対象の格子面LS3を含むメッシュ領域M2Aの分割乗数は2(分割数は4)、隣接するメッシュ領域M2Bの分割乗数は3(分割数は8)、隣接するメッシュ領域M2Cの分割乗数は3(分割数は8)であることから、制御部5は、上記特定した補間パターンの中から、図17に示される座標点P6と、座標点P5と、座標点P0〜P3とを頂点とする補間パターン(三角形ポリゴンパターン)を特定する。
図19は、ここで特定される補間パターンの一例として、座標点P0,P1,P5を頂点とする三角形ポリゴンパターンと、座標点P0,P3,P6を頂点とする三角形ポリゴンパターンと、座標点P0,P5,P6を頂点とする三角形ポリゴンパターンと、座標点P2,P5,P6を頂点とする三角形ポリゴンパターンとが示されている。制御部5は、特定した補間パターンに基づいて、各格子面LS3に補間を実施する。
以上、制御部5が、メッシュ領域M2Aを補間する動作について説明した。制御部5は、メッシュ領域M2B,M2Cについても同様に補間する。ただし、図16に示した例では、メッシュ領域M2B,M2Cの分割乗数(3)は、メッシュ領域M2Aの分割乗数(2)よりも大きく、メッシュ領域M2B,M2Cのメッシュ領域M2Aと隣接する境界部分には補間を実施しなくて済むので、この場合には、制御部5は当該境界部分に対して補間を実施しない。
図20は、図16とは異なる例を示している。図20に示す例では、制御部5は、メッシュ領域M2A,M2B同士の境界部分に関して、分割乗数が小さいメッシュ領域M2Aの境界部分には補間を実施するが、分割乗数が大きいメッシュ領域M2Bの境界部分には補間を実施しない。同様に、メッシュ領域M2A,M2C同士の境界部分に関して、制御部5は、分割乗数が小さいメッシュ領域M2Cの境界部分には補間を実施するが、分割乗数が大きいメッシュ領域M2Aの境界部分には補間を実施しない。
なお、図16及び図20には示されていないが、メッシュ領域M2の分割数が0である場合、すなわち、メッシュ領域M2と格子面LSとが同一である場合には、その格子面LSは、上下左右のいずれの方向においても他のメッシュ領域M2と隣接することになる。このような格子面LSについても、制御部5は、上述と同様に、補間パターン(三角形ポリゴンパターン)を特定し、当該特定した補間パターンに基づいて、各格子面LSに補間を実施する。
<補間パターン情報記憶部>
補間パターン情報記憶部3cには、上下左右の一方向のみで他のメッシュ領域M2と隣接する格子面LS(例えば上述のLS1,LS2)に対して用いる補間パターン(以下「1隣接補間パターン」と呼ぶ)と、上下方向のいずれか一方と、左右方向のいずれか一方とで他のメッシュ領域M2と隣接する格子面LS(例えば上述のLS3)に対して用いる補間パターン(以下「2隣接補間パターン」と呼ぶ)と、補間パターン情報記憶部3cには、上下左右のいずれの方向においても他のメッシュ領域M2と隣接する格子面LSに対して用いる補間パターン(以下「4隣接補間パターン」と呼ぶ)が予め設定(記憶)されている。つまり、本実施の形態3では、1,2,4隣接補間パターンが、制御部5によって特定可能に分類された状態で補間パターン情報記憶部3cに記憶されている。
補間パターン情報記憶部3cには、上下左右の一方向のみで他のメッシュ領域M2と隣接する格子面LS(例えば上述のLS1,LS2)に対して用いる補間パターン(以下「1隣接補間パターン」と呼ぶ)と、上下方向のいずれか一方と、左右方向のいずれか一方とで他のメッシュ領域M2と隣接する格子面LS(例えば上述のLS3)に対して用いる補間パターン(以下「2隣接補間パターン」と呼ぶ)と、補間パターン情報記憶部3cには、上下左右のいずれの方向においても他のメッシュ領域M2と隣接する格子面LSに対して用いる補間パターン(以下「4隣接補間パターン」と呼ぶ)が予め設定(記憶)されている。つまり、本実施の形態3では、1,2,4隣接補間パターンが、制御部5によって特定可能に分類された状態で補間パターン情報記憶部3cに記憶されている。
図21は、補間パターン情報記憶部3cに記憶されている補間パターンについて、全体的なデータ構造の一例を示す図である。図22は、図21に示されている補間パターンセット#0〜#k−1のうち補間パターンセット#0の一例を示す図である。
ここで、制御部5が補間を実施するのに必要な補間パターンは、上記許容値に応じて異なる。そのため、図21に示すように許容値ごとに補間パターン(ここでは補間パターンセット)が補間パターン情報記憶部3cに記憶されている。
図21に示す例では、補間パターン情報の最初のアドレスには、補間パターン情報ヘッダとして、各許容値のオフセット及びサイズが記憶されている。このオフセットは、補間パターン情報ヘッダのアドレスを基準に、各許容値の補間パターンセットが記憶されているアドレスを特定可能な情報であり、サイズは、そのデータサイズに関する情報である。制御部5は、この補間パターン情報ヘッダのオフセット及びサイズと、許容値とに基づいて、補間パターンセット#0〜#k−1の中からいずれか一つを使用することが可能となっている。
次に、図22を用いて補間パターンセットについて説明する。ここで、制御部5が補間を実施するのに必要な補間パターンは、隣接数(1,2,4隣接)、隣接方向(上方向、下方向、右方向、左方向)、分割乗数の差(分割数の差)に応じて異なる。そのため、図22に示すように、隣接数、隣接方向及び分割乗数の差ごとに補間パターンが補間パターン情報記憶部3cに記憶されている。
図22に示す例では、補間パターンセットの最初のアドレスには、補間パターンセットヘッダとして、1,2,4隣接補間パターンのそれぞれのオフセット及びサイズが記憶されている。ここでのオフセットは、補間パターンセットヘッダのアドレスを基準に、1,2,4隣接補間パターン情報のいずれかが記憶されているアドレスを特定可能な情報であり、サイズは、そのデータサイズに関する情報である。制御部5は、この補間パターンセットヘッダのオフセット及びサイズと、補間対象の格子面LSと隣接するメッシュ領域M2の数とに基づいて、1,2,4隣接補間パターン情報の中からいずれか一つにアクセスすることが可能となっている。
1隣接補間パターンが記憶された最初のアドレスには、1隣接補間パターン情報ヘッダとして、1隣接・隣接方向#0〜#h−1(例えば上方向、下方向、右方向、左方向に対応)のオフセット及びサイズが記憶されている。ここでのオフセットは、1隣接補間パターン情報ヘッダのアドレスを基準に、1隣接・隣接方向#0から1隣接・隣接方向#h−1までのいずれかが記憶されているアドレスを特定可能な情報であり、サイズは、そのデータサイズに関する情報である。制御部5は、この1隣接補間パターン情報ヘッダと、補間対象の格子面LSと隣接するメッシュ領域M2の隣接方向とに基づいて、1隣接・隣接方向#0から1隣接・隣接方向#h−1の中からいずれか一つにアクセスすることが可能となっている。
1隣接・隣接方向#0には、分割乗数の差ごとに、分割乗数の差の値と、補間パターンの全数と、各補間パターン(補間パターン#0など)についての情報が記憶されている。例えば、補間パターン#0には、図18に示した座標点P0,P1,P6が記憶されている。
制御部5は、分割乗数の差ごとの補間パターンと、補間対象の格子面LSを含むメッシュ領域M2の分割乗数(分割数)と、隣接するメッシュ領域M2の分割乗数(分割数)とに基づいて、それらメッシュ領域M2同士の分割乗数の差に応じた補間パターンを、以上のような補間パターン情報記憶部3cから特定することが可能となっている。
<区分・補間手順>
図23は、本実施の形態3に係る地図情報処理装置の動作、具体的には、制御部5によるメッシュ領域M2の区分・補間手順を示すフローチャートである。この図23は、図14に示したフローチャートのステップS12及びS13を、ステップS21〜S23に代えたものである。そこで、以下においては、ステップS21〜S23についてのみ説明する。
図23は、本実施の形態3に係る地図情報処理装置の動作、具体的には、制御部5によるメッシュ領域M2の区分・補間手順を示すフローチャートである。この図23は、図14に示したフローチャートのステップS12及びS13を、ステップS21〜S23に代えたものである。そこで、以下においては、ステップS21〜S23についてのみ説明する。
ステップS21にて、制御部5は、ステップS1で特定したメッシュ領域M2と隣接するメッシュ領域M2の数及び隣接方向と、ステップS1で特定したメッシュ領域M2の分割数(ここでは分割乗数)と、それと隣接するメッシュ領域M2の分割数(ここでは分割乗数)とを取得する。
ステップS22にて、制御部5は、ステップS21で取得した隣接数、隣接方向、ステップ1で特定したメッシュ領域M2の分割数(ここでは分割乗数)、及び、それと隣接するメッシュ領域M2の分割数(ここでは分割乗数)とに基づいて、補間パターン情報記憶部3cから補間パターンを特定する。
ステップS23にて、制御部5は、ステップS22で特定した補間パターンに基づいて、ステップS1で特定したメッシュ領域M2の境界部分に補間処理を実施し、その後ステップS2に戻る。
以上のような本実施の形態3に係る地図情報処理装置によれば、複数の補間パターンの中から適切な一の補間パターンを用いて、格子面LSごとに境界部分への補間を実施する。ここで、隣接するメッシュ領域M2同士の分割数(分割乗数)の差に制約がなければ補間パターンの数は無限に存在するが、本実施の形態3では実施の形態1と同様に当該差に許容値を設けているため、その補間パターンの数を有限にすることができる。なお、本実施の形態3においても、実施の形態2と同様に、分割数として分割乗数を適用しているので、それと同様の効果を得ることができる。
次に、分割乗数の差の許容値が「2」であった場合を例にして、記憶部3(補間パターン情報記憶部3c)に記憶すべき補間パターンが有限になることについて具体的に説明する。
<1隣接補間パターンとして記憶すべき補間パターン数>
隣接数が「1」であり、かつ、許容値が「2」である場合、分割乗数の差の絶対値は、「0」,「1」,「2」の3種に限定される。このうち分割乗数の差が「0」であることは、分割数が同じであることを意味するため、補間ひいては補間パターンは必要がない。したがって、1隣接補間パターンとしては、「1」,「2」という2種と、上下左右の隣接方向という4方向との組み合わせた分の補間パターン、すなわち2種×4方向=8個という有限の補間パターンを記憶すれば足りる。
隣接数が「1」であり、かつ、許容値が「2」である場合、分割乗数の差の絶対値は、「0」,「1」,「2」の3種に限定される。このうち分割乗数の差が「0」であることは、分割数が同じであることを意味するため、補間ひいては補間パターンは必要がない。したがって、1隣接補間パターンとしては、「1」,「2」という2種と、上下左右の隣接方向という4方向との組み合わせた分の補間パターン、すなわち2種×4方向=8個という有限の補間パターンを記憶すれば足りる。
<2隣接補間パターンとして記憶すべき補間パターン数>
隣接数が「2」であり、かつ、許容値が「2」である場合、分割乗数の差の絶対値の組合せは、(0,0),(0,1),(0,2),(1,0),(1,1),(1,2),(2,0),(2,1),(2,2)、つまり3×3=9種に限定される。このうち分割乗数の差の組み合わせが(0,0)であることは、分割数が同じであることを意味するため、補間ひいては補間パターンは必要がない。したがって、2隣接補間パターンとしては、上記9種から(0,0)を除いた8種と、上下左右の隣接方向という4方向との組み合わせた分の補間パターン、すなわち8種×4方向=32個という有限の補間パターンを記憶すれば足りる。
隣接数が「2」であり、かつ、許容値が「2」である場合、分割乗数の差の絶対値の組合せは、(0,0),(0,1),(0,2),(1,0),(1,1),(1,2),(2,0),(2,1),(2,2)、つまり3×3=9種に限定される。このうち分割乗数の差の組み合わせが(0,0)であることは、分割数が同じであることを意味するため、補間ひいては補間パターンは必要がない。したがって、2隣接補間パターンとしては、上記9種から(0,0)を除いた8種と、上下左右の隣接方向という4方向との組み合わせた分の補間パターン、すなわち8種×4方向=32個という有限の補間パターンを記憶すれば足りる。
<4隣接補間パターンとして記憶すべき補間パターン数>
隣接数が「4」であり、かつ、許容値が「2」である場合、分割乗数の差の絶対値の組合せは、(0,0,0,0),(0,0,0,1),…,(2,2,2,1),(2,2,2,2)、つまり3×3×3×3=81種に限定される。このうち分割乗数の差の組み合わせが(0,0,0,0)であることは、分割数が同じであることを意味するため補間ひいては補間パターンは必要がない。したがって、4隣接補間パターンとしては、上記81種から(0,0,0,0)を除いた80種と、上下左右の隣接方向という4方向との組み合わせた分の補間パターン、すなわち80種×4方向=320個という有限の補間パターンを記憶すれば足りる。
隣接数が「4」であり、かつ、許容値が「2」である場合、分割乗数の差の絶対値の組合せは、(0,0,0,0),(0,0,0,1),…,(2,2,2,1),(2,2,2,2)、つまり3×3×3×3=81種に限定される。このうち分割乗数の差の組み合わせが(0,0,0,0)であることは、分割数が同じであることを意味するため補間ひいては補間パターンは必要がない。したがって、4隣接補間パターンとしては、上記81種から(0,0,0,0)を除いた80種と、上下左右の隣接方向という4方向との組み合わせた分の補間パターン、すなわち80種×4方向=320個という有限の補間パターンを記憶すれば足りる。
<実施の形態3の変形例1>
上述した補間パターンのうち、例えば、右方向に隣接するメッシュ領域M2の分割乗数の差が「1」である場合に用いる補間パターンは、上方向に隣接するメッシュ領域M2の分割乗数の差が「1」である場合に用いる補間パターンを90度回転させたものと一致する。
上述した補間パターンのうち、例えば、右方向に隣接するメッシュ領域M2の分割乗数の差が「1」である場合に用いる補間パターンは、上方向に隣接するメッシュ領域M2の分割乗数の差が「1」である場合に用いる補間パターンを90度回転させたものと一致する。
そこで、制御部5は、補間パターンに対して、回転処理を施すことによって得られる補間パターンも用いて上記補間を実施してもよい。このような構成によれば、一つの隣接方向に関して補間パターンを記憶さえすれば、それに回転処理を施すことにより四つの隣接方向のそれぞれについて補間パターンを取得することができる。したがって、実施の形態3で説明した例において、1隣接補間パターン,2隣接補間パターン,4隣接補間パターンとして記憶すべき補間パターンの数は8個,32個,320個であったのに対し、本変形例1によれば、2個、8個、80個に低減することができる。
また、上述した補間パターンのうち、例えば、上方向及び右方向に隣接するメッシュ領域M2の分割乗数の差の組み合わせが(1,2)である場合に用いる補間パターンは、上方向及び右方向に隣接するメッシュ領域M2の分割乗数の差の組み合わせが(2,1)である場合に用いる補間パターンを上下反転または左右反転させたものと一致する。
そこで、制御部5は、補間パターンに対して、上下反転処理または左右反転処理を施すことによって得られる補間パターンも用いて上記補間を実施してもよい。したがって、実施の形態3で説明した例において、2隣接補間パターンとして記憶すべき補間パターンの数は32個であったのに対し、本変形例1によれば、(0,1),(0,2),(1,1),(1,2),(2,2)の5種×4方向=20個に低減することができる。
もちろん、制御部5は、補間パターンに対して、回転処理、上下反転処理、及び、左右反転処理を選択的に施すことによって得られる補間パターンも用いて補間を実施してもよい。この場合には、さらに記憶すべき補間パターンの数を低減することができる。
なお、以上のような回転処理、上下反転処理、及び、左右反転処理は、例えば、図23に示したステップS22にて行えばよい。具体的には、ステップS22にて、制御部5は、ステップS21で取得した隣接数、ステップS1で特定したメッシュ領域M2の分割乗数(分割数)、及び、それと隣接するメッシュ領域M2の分割乗数(分割数)とに基づいて補間パターンを特定する。そして、制御部5は、ステップS21で取得した隣接方向に基づいて、当該補間パターンに対して回転処理、上下反転処理、及び、左右反転処理の少なくともいずれか一つを施すように構成すればよい。
以上をまとめると、本変形例1によれば、記憶すべき補間パターンの数を低減することができる。したがって、地図情報処理装置に必要な描画パフォーマンスをより抑制することができる。
<実施の形態3の変形例2>
4隣接補間パターンに関しては、まず、左下の格子点LAと右上の格子点LAとを結ぶ対角線、または、左上の格子点LAと右下の格子点LAとを結ぶ対角線で格子面LSを分割することにより、2つの三角形の分割問題に置き換えてもよい。図24は、その一例を示す図である。このように分割した場合には、隣接数は最大2つになることから、記憶すべき補間パターンの数を低減することができる。
4隣接補間パターンに関しては、まず、左下の格子点LAと右上の格子点LAとを結ぶ対角線、または、左上の格子点LAと右下の格子点LAとを結ぶ対角線で格子面LSを分割することにより、2つの三角形の分割問題に置き換えてもよい。図24は、その一例を示す図である。このように分割した場合には、隣接数は最大2つになることから、記憶すべき補間パターンの数を低減することができる。
<実施の形態4>
実施の形態1〜3では、標高値は、格子点LAの数だけ起伏情報に含まれていた。しかしながら、平地や台地のような場所などの起伏情報には、同一の標高値が複数含まれることが多く冗長となっている。
実施の形態1〜3では、標高値は、格子点LAの数だけ起伏情報に含まれていた。しかしながら、平地や台地のような場所などの起伏情報には、同一の標高値が複数含まれることが多く冗長となっている。
例えば、実施の形態1〜3において、分割数8(分割乗数3)の起伏情報の場合、一つのメッシュ領域M2における格子点LAの数は9×9=81個になる。そして、1個の格子点LAの標高値を記憶するのに必要な記憶容量が1バイトである場合には、標高値が、79個の格子点LAの標高値が重複する2値であったとしても、65個の格子点LAの標高値が重複する16値であったとしても、その重複に係わらず、合計で81バイトの記憶容量が必要になる。
これに対して、本発明の実施の形態4では、起伏情報が、データ圧縮された格子点LAごとの標高値を含むものとなっている。
ここでは、格子点LAの標高値が重複することなく記憶された標高値テーブルと、標高値テーブルから標高値を読み出すための標高値テーブルのインデックス番号(レコード番号)を各格子点LAに対応付けた対応情報とが、起伏情報として記憶部3(起伏情報記憶部3b)に記憶さているものとする。
例えば、標高値が2値であれば、標高値テーブルに必要な記憶容量は、2個の格子点LAの標高値を記憶するのに必要な記憶容量(上記の例にあわせると2バイト)である。そして、各格子点LAには、標高値の2値の一方を示す「0」及び他方を示す「1」のいずれかをインデックス番号として割り当てればよく、このことはインデックス番号が1ビットで表現できることを意味することから、上記対応情報に必要な記憶容量は1×81=81ビット≒11バイトである。したがって、合計で13バイトの記憶容量で済む。すなわち、格子点LAの標高値に必要な記憶容量を低減することができる。
また、標高値が16値であれば、標高値テーブルに必要な記憶容量は16バイトであり、かつ、インデックス番号は4ビットで表現できることから、上記対応情報に必要な記憶容量は4×81=324ビット≒41バイトである。したがって、合計で57バイトの記憶容量で済む。すなわち、この場合であっても、格子点LAの標高値に必要な記憶容量を低減することができる。
以上のような本実施の形態3に係る地図情報処理装置によれば、格子点LAの標高値に必要な記憶容量を低減することができる。なお、上述のように、標高値デーブルを用いて同一の標高値の冗長性を低減する構成によれば、標高値テーブルの当該標高値を変更するだけで、一度の複数の格子点LAの標高値を変更することができる。したがって、記憶容量を低減することができるとともに、格子点LAの標高値を変更する手間を低減することもできる。
なお、本発明は、その発明の範囲内において、各実施の形態を自由に組み合わせたり、各実施の形態を適宜、変形、省略したりすることが可能である。
3 記憶部、4 出力部、5 制御部、LA 格子点、LS 格子面、M2 メッシュ領域。
Claims (7)
- 出力部と、
地図を示す地図情報と、当該地図をメッシュ状に区画して得られる各メッシュ領域に関して当該メッシュ領域を格子状に分割する格子点の起伏を示す起伏情報とを記憶する記憶部と
を備え、
前記メッシュ領域の起伏の複雑度に応じた前記メッシュ領域の分割の数に関して、隣接する前記メッシュ領域同士の前記分割の数の差が予め設定された許容値以下に調整されており、
前記記憶部に記憶された前記地図情報及び前記起伏情報に基づいて地形の表示を前記出力部において出力する際に、隣接する前記メッシュ領域同士の前記分割の数が異なる場合には、当該隣接するメッシュ領域同士の境界部分のうち少なくとも一方の境界部分に面を補間する制御部
をさらに備える、地図情報処理装置。 - 請求項1に記載の地図情報処理装置であって、
前記メッシュ領域が、その横方向及び縦方向の少なくともいずれか一方において、2以上の整数をべき乗して得られる前記分割の数によって分割されている、地図情報処理装置。 - 請求項1または請求項2に記載の地図情報処理装置であって、
前記制御部は、
前記隣接するメッシュ領域同士の前記分割の数の差が前記許容値を超える場合に、当該隣接するメッシュ領域のうち前記分割の数が小さい一方の前記分割の数を大きくすることにより前記調整を行う、地図情報処理装置。 - 請求項1または請求項2に記載の地図情報処理装置であって、
前記制御部は、
前記隣接するメッシュ領域同士の前記分割の数の差が前記許容値を超える場合に、当該隣接するメッシュ領域のうち前記分割の数が大きい一方の前記分割の数を小さくすることにより前記調整を行う、地図情報処理装置。 - 請求項1乃至請求項4のいずれかに記載の地図情報処理装置であって、
前記制御部は、
前記メッシュ領域を前記格子点により格子状に分割して得られる格子面ごとに、前記境界部分への前記補間を実施するための予め設定された複数の補間パターンのうち、前記一のメッシュ領域の一の前記格子面と隣接する前記メッシュ領域の数及び隣接方向と、一の前記メッシュ領域の前記分割の数と、前記隣接するメッシュ領域の前記分割の数とに基づいて補間パターンを特定し、当該特定した補間パターンに基づいて前記一の格子面に前記補間を実施する、地図情報処理装置。 - 請求項5に記載の地図情報処理装置であって、
前記制御部は、
前記補間パターンに対して、回転処理、上下反転処理、及び、左右反転処理の少なくともいずれか一つを施すことによって得られる補間パターンも用いて前記補間を実施する、地図情報処理装置。 - 請求項1乃至請求項6のいずれかに記載の地図情報処理装置であって、
前記起伏情報は、
データ圧縮された前記格子点ごとの標高値を含む、地図情報処理装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012232517A JP2014085420A (ja) | 2012-10-22 | 2012-10-22 | 地図情報処理装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012232517A JP2014085420A (ja) | 2012-10-22 | 2012-10-22 | 地図情報処理装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2014085420A true JP2014085420A (ja) | 2014-05-12 |
Family
ID=50788548
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012232517A Pending JP2014085420A (ja) | 2012-10-22 | 2012-10-22 | 地図情報処理装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2014085420A (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2016018375A (ja) * | 2014-07-08 | 2016-02-01 | 三菱プレシジョン株式会社 | 地形模擬モデル生成および表示方法 |
WO2016092588A1 (ja) * | 2014-12-09 | 2016-06-16 | 三菱電機株式会社 | 描画装置、および描画方法 |
WO2021182270A1 (ja) * | 2020-03-12 | 2021-09-16 | ヤンマーパワーテクノロジー株式会社 | 地図生成方法および地図生成装置 |
-
2012
- 2012-10-22 JP JP2012232517A patent/JP2014085420A/ja active Pending
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2016018375A (ja) * | 2014-07-08 | 2016-02-01 | 三菱プレシジョン株式会社 | 地形模擬モデル生成および表示方法 |
WO2016092588A1 (ja) * | 2014-12-09 | 2016-06-16 | 三菱電機株式会社 | 描画装置、および描画方法 |
JPWO2016092588A1 (ja) * | 2014-12-09 | 2017-04-27 | 三菱電機株式会社 | 描画装置、および描画方法 |
WO2021182270A1 (ja) * | 2020-03-12 | 2021-09-16 | ヤンマーパワーテクノロジー株式会社 | 地図生成方法および地図生成装置 |
JP2021144149A (ja) * | 2020-03-12 | 2021-09-24 | ヤンマーパワーテクノロジー株式会社 | 地図生成方法および地図生成装置 |
JP7396937B2 (ja) | 2020-03-12 | 2023-12-12 | ヤンマーパワーテクノロジー株式会社 | 地図生成方法および地図生成装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2518445B1 (en) | Database for a navigation device, method of outputting a three-dimensional representation of a terrain and method of generating a database | |
JP4669659B2 (ja) | 地図データの編成方法 | |
EP0838764B1 (en) | Map data base management method and system therefor | |
CN106110656B (zh) | 在游戏场景计算路线的方法和装置 | |
EP1927954B1 (en) | Terrain modeling based on curved surface area | |
EP2075543A2 (en) | Three-dimensional map display navigation device, three-dimensional map display system, and three-dimensional map display program | |
KR20130040773A (ko) | 3차원 지도 묘화 시스템 | |
CA2773419C (en) | Method of generating a database, navigation device and method of determining height information | |
US7609258B2 (en) | Information processing apparatus, information processing method, and program | |
KR100283734B1 (ko) | 내비게이션 시스템, 이 내비게이션 시스템의 입체지형표시 방법, 및 이 방법을 기록한 기록 매체 | |
KR20170080315A (ko) | 건물 객체에 대한 다축척 모델 기반의 지도 처리 방법 | |
JP2014085420A (ja) | 地図情報処理装置 | |
JP2008543695A (ja) | ルーティング及びスケジューリングを行うためのシステム及び方法 | |
JP3707770B2 (ja) | 地図情報修正装置および地図情報修正方法 | |
CN103077497B (zh) | 对层次细节模型中的图像进行缩放的方法和装置 | |
JP5926588B2 (ja) | 3次元ルーフ構造を出力するナビゲーションデバイスおよび方法、並びにデータベースを生成する方法 | |
CN114937131A (zh) | 一种单视点的地形可视域空间拓扑特征提取与表示方法 | |
KR102243453B1 (ko) | 하천 공간위상 구조를 이용한 도시하천 홍수범람지도의 갱신 방법 및 이를 기록한 기록매체 | |
KR102293028B1 (ko) | 구형 표면을 동일면적의 격자로 분할하는 방법 | |
JP2007264952A (ja) | 地盤解析用メッシュ生成方法及び地盤解析用メッシュ生成プログラム | |
JP5526831B2 (ja) | 図面データ管理装置 | |
JP5601588B2 (ja) | 道路情報提供装置、道路情報提供プログラム及び記録媒体 | |
Götzelmann et al. | Terrain-dependent aggregation of 3D city models | |
JP5826368B2 (ja) | 地図情報処理装置 | |
WO2024033981A1 (ja) | 工事用道路経路設計装置、工事用道路経路設計方法及びプログラム |