(57)【要約】【課題】縮尺が相違する階層構造のベクトル地図データを表示する地図表示装置において、ピンチ操作による地図の縮尺変更操作時にスムーズな地図の表示を行う。【解決手段】複数の指の接触位置を検出する検出手段により表示手段に対する入力指示を受付けて、複数の指の位置の変化に応じて、縮尺に応じて階層毎に記憶した地図の表示縮尺を変更する地図表示装置において、検出手段に接触している複数の指の位置の変化から指示された操作を判定する操作判定手段と、判定された操作に対し、検出手段で検出した複数の指の位置の変化から指による操作の速度を算出する操作速度算出手段と、指による操作前に表示されていた地図の縮尺の階層と異なる階層を選択する階層選択手段と、を備え、操作前に表示手段に表示されていた地図と階層選択手段により選択された階層の地図を重ね合わせて表示装置に表示する。【選択図】  図１
2013161013.tif 000002
【特許請求の範囲】
【請求項１】
地図を表示する表示手段と、表示する地図の縮尺に応じて地図を階層毎に記憶する地図記憶手段と、複数の指の接触位置を検出する検出手段を持ち、前記検出手段により前記表示手段に対する入力指示を受付け、前記検出手段で検出した複数の指の位置の変化に基づき入力指示された操作に応じて地図の表示縮尺を変更する地図表示装置において、
前記検出手段に接触している複数の指の位置の変化に基づき、指示された操作を判定する操作判定手段と、
判定された操作に対し、前記検出手段で検出した複数の指の位置の変化から操作の速度を算出する操作速度算出手段と、
前記操作前に前記表示手段に表示されていた地図の縮尺の階層と異なる階層を選択する階層選択手段と、
を備え、
前記操作前に前記表示手段に表示されていた地図と前記階層選択手段により選択された階層の地図を重ね合わせて前記表示装置に表示する
ことを特徴とする地図表示装置。
【請求項２】
請求項１に記載の地図表示装置において、
前記階層選択手段は、前記検出手段に接触している複数の指の間隔が広がっていることを前記操作判定手段が検出した場合、前記操作速度算出手段で算出した操作の速度に応じて、予め前記表示手段に表示されている地図の縮尺よりも詳細な階層の地図を選択することを特徴とする地図表示装置。
【請求項３】
請求項２に記載の地図表示装置において、
前記階層選択手段は、前記検出手段に接触している複数の指の間隔が狭まっていることを前記操作判定手段が検出した場合、前記操作速度算出手段で算出した操作の速度に応じて、予め前記表示手段に表示されている地図の縮尺よりも広域の階層の地図を選択することを特徴とする地図表示装置。
【請求項４】
請求項３に記載の地図表示装置において、
前記階層選択手段は、
前記操作判定手段が複数の指の間隔が広がっていることを検出した場合は、前記操作速度算出手段で算出した操作の速度が大きいほどより詳細な階層の地図を選択し、
前記操作判定手段が複数の指の間隔が狭まっていることを検出した場合は、前記操作速度算出手段で算出した操作の速度が大きいほどより広域な階層の地図を選択する
ことを特徴とする地図表示装置。
【請求項５】
請求項４に記載の地図表示装置において、縮尺スケールを表示するためのスケール調整手段を持ち、当該スケール調整手段は、前記表示手段に表示されている地図の縮尺変更後の縮尺スケールを表示する時、地図の表示縮尺が予め設定された段階的な複数の縮尺スケールに一致しない場合は、予め設定された段階的な縮尺スケールの中から地図の縮尺変更結果に最も近いスケールを選択し、当該選択された縮尺スケールを表示し、縮尺スケールとして表示されるスケールの長さを地図の表示に合わせて調整することを特徴とする地図表示装置。
【請求項６】
複数の指の接触位置を検出する検出手段を持ち、前記検出手段により入力指示を受付け、前記検出手段で検出した複数の指の位置の変化に基づき入力指示された操作に応じて地図の表示縮尺を変更する地図表示方法において、
表示する地図は縮尺に応じて地図を階層毎に記憶されており、
前記検出手段に接触している複数の指の位置の変化に基づき、指示された操作を判定する操作判定処理と、
判定された操作に対し、前記検出手段で検出した複数の指の位置の変化から前記操作の速度を算出する操作速度算出処理と、
前記操作前に前記表示手段に表示されていた地図の縮尺の階層と異なる階層を選択する階層選択処理と、
を備え、
前記操作前に表示されていた地図と前記階層選択処理により選択された階層の地図を重ね合わせて表示する
ことを特徴とする地図表示方法。
【請求項７】
請求項６に記載の地図表示方法において、
前記階層選択処理では、前記検出手段に接触している複数の指の間隔が広がっていることを前記操作判定処理で検出した場合、前記操作速度算出処理で算出した操作の速度に応じて、予め表示されていた地図の縮尺よりも詳細な階層の地図を選択することを特徴とする地図表示方法。
【請求項８】
請求項７に記載の地図表示方法において、
前記階層選択処理では、前記検出手段に接触している複数の指の間隔が狭まっていることを前記操作判定処理で検出した場合、前記操作速度算出処理で算出した操作の速度に応じて、予め表示されていた地図の縮尺よりも広域の階層の地図を選択することを特徴とする地図表示方法。
【請求項９】
請求項８に記載の地図表示方法において、
前記階層選択処理では、
前記操作判定処理で複数の指の間隔が広がっていることを検出した場合は、前記操作速度算出処理で算出した操作の速度が大きいほどより詳細な階層の地図を選択し、
前記操作判定処理で複数の指の間隔が狭まっていることを検出した場合は、前記操作速度算出処理で算出した操作の速度が大きいほどより広域な階層の地図を選択する
ことを特徴とする地図表示方法。
【請求項１０】
請求項９に記載の地図表示方法において、表示されている地図の縮尺変更後の縮尺スケールを表示する時、地図の表示縮尺が予め設定された段階的な複数の縮尺スケールに一致しない場合は、予め設定された段階的な縮尺スケールの中から地図の縮尺変更結果に最も近いスケールを選択し、当該選択された縮尺スケールを表示し、縮尺スケールとして表示されるスケールの長さを地図の表示に合わせて調整して表示するスケール調整手段を備えたことを特徴とする地図表示方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、地図の縮尺変更が容易な地図表示装置に関する。
【背景技術】
【０００２】
特開２００４−２８６７８号公報（特許文献１）には、カーナビゲーションシステムの地図表示に関し、それまで段階的に地図の縮尺を変更して行っていた表示を、任意倍率で地図を表示する方法が記載されている。
【０００３】
また、特表２００９−５２２６６９号公報（特許文献２）には、タッチパネル上の２本の指の間隔を変更することで、画面に表示されたオブジェクトを任意倍率で連続的に拡大や縮小表示する装置が記載されている。この装置によれば、縮小率または拡大率を変更途中で表示が可能であり、所望の大きさでオブジェクトを表示することが容易である。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００４−２８６７８号公報
【特許文献２】特表２００９−５２２６６９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
カーナビゲーションシステムでは、特許文献１に記載されているように、ベクトル地図データを表示縮尺に応じたレイヤ構成にして保持している。これは、画面上に表示する情報の最適化や表示処理の高速化を図るためである。このため、１つのレイヤの地図を拡大または縮小表示する場合、その拡大率または縮小率の範囲は２〜３倍から１／２〜１／３倍以内が一般的である。
【０００６】
一方、特許文献２に記載のピンチング・ジェスチャを地図の拡大や縮小に適用すると、指の間隔の変化分が拡大率または縮小率となるので、拡大率または縮小率は１０倍以上になる可能性がある。また、指の間隔は素早く変化させることが可能なので、１秒未満で約１０倍の拡大または縮小操作が可能となる。カーナビゲーションシステムの地図表示でこのような拡大または縮小操作を行う場合、１０倍の変化率に対応するためには約５レイヤの地図を読み出すことになり、操作途中の表示が間に合わなくなる。このため、指の操作に地図表示処理が追従できなくなり操作性が著しく低下する。また、高速処理を優先して１つのレイヤの地図を１０倍に拡大してしまうと画面に表示される情報が極端に減少し、逆に縮小したとすると極端に情報が多すぎて見えなくなり、この場合も操作性が低下してしまう。
【課題を解決するための手段】
【０００７】
以上の問題を解決するために、本願発明の地図表示装置は、地図を表示する表示手段と、表示する地図の縮尺に応じて地図を階層毎に記憶する地図記憶手段と、複数の指の接触位置を検出する検出手段を備え、検出手段により表示手段に対する入力指示を受付けて、複数の指の位置の変化に応じて地図の表示縮尺を変更する地図表示装置において、検出手段に接触している複数の指の位置の変化から指示された操作を判定する操作判定手段と、判定された操作に対し、検出手段で検出した複数の指の位置の変化から指による操作の速度を算出する操作速度算出手段と、指による操作前に表示されていた地図の縮尺の階層と異なる階層を選択する階層選択手段とを備え、操作前に表示手段に表示されていた地図と階層選択手段により選択された階層の地図を重ね合わせて表示装置に表示するように構成したものである。
【発明の効果】
【０００８】
本発明によれば、地図の拡大操作を行っている場合は、表示画面の中央部分に詳細情報を持つ地図を重畳表示するため、拡大される部分の詳細情報を随時確認しながら操作可能となる。更に拡大操作を行っている時に読み出される地図は１階層であるため処理速度の低下を防ぐことが可能となり、操作性が向上する。
【０００９】
同様に、地図の縮小操作を行っている場合は、表示画面の周辺部分に広域地図を重畳表示することができるため、縮小した後で表示される地図領域を随時確認しながら操作することが可能となる。更に縮小操作を行っている時に読み出される地図は１階層であるため、処理速度の低下を防ぐことが可能となり、操作性が向上する。
【図面の簡単な説明】
【００１０】
【図１】本発明に係る地図表示装置の機能的な構成を示した図である。
【図２】地図ＤＢのレイヤ構成を示した図である。
【図３】地図拡大操作の時の地図表示例を示した図である。
【図４】地図縮小操作の時の地図表示例を示した図である。
【図５】拡大／縮小処理の全体フローチャートである。
【図６】拡大処理を行うフローチャートである。
【図７】縮小処理を行うフローチャートである。
【図８】拡大操作中に地図をスクロールするときの表示例である。
【図９】拡大、縮小操作中に地図をスクロールする処理のフローチャートである。
【図１０】地図を拡大したときのスケールバーの表示例である。
【図１１】スケールバー調整手段における処理フローである。
【発明を実施するための形態】
【００１１】
以下に、本発明の実施の形態に係る地図表示装置について、図面を参照しながら説明する。
【００１２】
図１は、本発明を用いた地図表示装置の実施例における構成図を示したものである。地図表示装置５は、表示器１２０の画面上に設けられたタッチパネル１０に接触した２本の指の間隔が変化するのを検出し、２本の指の間隔が広がる場合には、地図を拡大表示し、狭まる際には地図を縮小表示する。２本の指の間隔を変更する操作は、表示する地図の縮尺を広範囲で高速に変更することができる。この地図表示装置５は、ナビゲーション装置あるいはスマートフォン、ＰＮＤといった記憶装置、記憶メディアに格納した地図データを表示する装置としても実現することができる。
【００１３】
地図表示装置５は、地図操作処理部１により、地図ＤＢ（データベース）６０から読み出した地図を拡大、または縮小し、表示器１２０に表示する。この時、タッチパネル１０に対する操作に応じて、画面の中央部分に表示した異なる縮尺の地図情報を拡大または縮小することにより、高速で広範囲な縮尺変更に対応可能としている。タッチパネル１０は、表示器１２０の表示画面上に配置され複数の指の接触とその位置を検出する。操作判定手段２０は、タッチパネル１０における指の接触位置の変化から指の操作を判別する。操作速度検出手段３０は、操作判定手段２０で判定した指の操作が２本の指によるものである場合、２本の指の間隔が狭まる速度、または広がる速度を検出する。拡大縮小動作制御部４０は、操作判定手段２０が判別した指の操作から地図の拡大操作を検出した場合は表示中の地図を拡大し、縮小操作を検出した場合は表示中の地図を縮小表示するように地図表示装置５を制御する。
【００１４】
そして地図レイヤ選択手段５０では、地図を拡大表示する場合は、表示器１２０の中央部分に表示する詳細地図を選択するために、操作速度検出手段３０で検出した２本の指の広がる速度に応じて操作終了時の地図の表示スケールを予測し、その表示スケールに対応する地図のベクトル地図データを地図ＤＢ（データベース）６０から読み出し、重畳地図データ７０とする。一方、地図を縮小表示する場合は、表示器１２０の周囲部分に表示する広域地図の地図データを選択するために、操作速度検出手段３０で検出した２本の指の狭まる速度に応じて、操作終了時の地図の表示スケールを予測し、その表示スケールに対応するベクトル地図データを地図ＤＢ６０から読み出し、重畳地図データ７０とする。
【００１５】
指の操作前に表示していた地図は、表示中地図データ８０としてベクトルデータで読み出されており、ベース地図描画手段１００でフレームバッファ１１０に描画され、表示器１２０に表示される。このベース地図描画手段１００の地図データに基づいて表示される地図をベース地図と呼ぶ。また、重畳地図データ７０は、重畳地図描画手段９０でフレームバッファ１１０に描画されベース地図に重畳されて表示器１２０に表示される。このフレームバッファ１１０は複数のフレームを持ち、前景と背景をそれぞれ表示する前景フレームと背景フレームを備えているものとする。また、拡大／縮小処理された地図にスケールバーを表示するためのスケールバー調整手段１１５を持つ。
【００１６】
図２は、地図表示装置５が持つ地図ＤＢ６０のレイヤ構成を示したものである。地図データはベクトル地図データであり、地図データの縮尺に応じた複数のレイヤから構成されているものとする。最も広い領域を表す広域地図の階層をレイヤ１とし、このレイヤ１（６１０）を緯度、経度方向にそれぞれ１６分割した領域に対応した範囲で地図データを管理する階層をレイヤ２（６２０）と呼ぶ。同様に、レイヤ２における１つの分割領域をさらに１６分割した領域で地図データを管理する階層をレイヤ３（６３０）と呼び、以下、更に領域の分割を行い、最後にはレイヤｎ（６４０）の階層となる。
【００１７】
このように地図データはレイヤ１からレイヤｎの複数の階層で構成されており、レイヤの階層がレイヤ１に近いほど小縮尺の地図になって、１つの領域が広い範囲を表す広域な地図データになり、レイヤの階層がレイヤｎに近いほど大縮尺の地図となって、１つの領域が狭い範囲を表す詳細な地図データになる。
【００１８】
地図表示装置５では、表示される地図の表示スケールに応じてこれらのレイヤの中から表示に用いるベクトル地図データを選択する。各レイヤのベクトル地図データは、拡大や縮小を行わずに表示した際の表示密度が適切な情報量となるように作成されている。つまり表示スケールに対応して適切なレイヤが予め定められているものとする。逆に言えば、各レイヤに対して適切な表示スケールの範囲が予め定められているということになる。このため、広域の地図は主要道路や主な地名の概略情報を持ち、詳細地図は細街路や番地情報などの詳細情報を持つ。このようにすることによって、表示スケールが異なっても表示器１２０に表示される情報量を均一化することが可能となり、表示の見易さや描画時間の高速化を図っている。このレイヤ階層と適切な表示スケールの関係は地図レイヤ選択手段５０に予め設定されているものとする。
【００１９】
しかし、表示縮尺が短い時間の間に連続してしかも広範囲で変更される場合は、表示する地図の表示スケールを変更する途中で何階層ものレイヤの地図を読み出して描画することになる。従って、地図ＤＢ６０のアクセスを何回も行うことになり、縮尺変更の速度に地図の読み出しが間に合わなくなる恐れがある。そこで、地図表示装置５は、２本の指の間隔が変化する速度から最終的な表示スケールを予測し、その予測した表示スケールの地図を操作前に表示していた地図に重畳して表示することで、地図アクセスを１回で済むようにした上で、詳細な情報も表示できるようにしたものである。ここで、最終的な表示スケールとは、指による１動作の地図の拡大／縮小操作指示が終わった時の表示スケールまたは操作指示が開始されてから所定時間後の表示スケールであるものとする。
【００２０】
図３は、地図表示装置５における地図拡大操作時の地図表示例を示したものである。図３（ａ）は操作前の地図表示であり、表示器１２０の画面１２１には広域地図を表示しているものとする。図３（ｂ）は指による拡大操作途中の表示であり、手の２本の指の間隔を広げている途中である。このような指による操作が開始されると、図１の操作判定手段２０が拡大操作であることを判定し、拡大縮小動作制御部４０がその判定を受けて拡大処理を行う。地図レイヤ選択手段５０が操作速度検出手段３０からの速度情報を受けて、地図ＤＢ６０の中から１つのレイヤを選択し、該当する範囲の地図データを重畳地図データ７０として読み出す。このようにして読み出されたベクトル地図データは重畳地図描画手段９０によってフレームバッファ１１０の前景フレームに描画される。この描画された地図が図３（ｂ）の画面の中央部の地図１２２である。一方、操作前に表示していた地図も指の操作に応じてベース地図描画手段１００によって拡大処理が行われフレームバッファ１１０の背景フレームに描画される。
【００２１】
拡大操作前に表示器１２０への表示に用いていたベース地図を指の操作に応じてそのまま拡大すると、拡大した際の表示スケールに対応する本来のレイヤの地図データを用いた場合に比べ、表示情報量の密度が極端に少なくなり、目的の地物の存在が分からないケースも発生する。そこで本実施例のように画面の中央部に詳細地図を表示し、この詳細地図を拡大して表示することにより、拡大操作中に目標の地物の確認を行うことができる。図３（ｃ）は、操作終了時の画面である。操作が終了すると重畳地図データ７０を表示中地図データ８０として画面全面に詳細地図を表示する。
【００２２】
図４は、地図表示装置５における地図縮小操作時の地図表示例を示したものである。図４（ａ）は操作前の地図表示であり、表示器１２０の画面１２１には詳細地図を表示しているものとする。図４（ｂ）は指による縮小操作途中の表示であり、手の２本の指の間隔を狭めている途中である。このような指による操作が開始されると、図１の操作判定手段２０が縮小操作であることを判定し、拡大縮小動作制御部４０がその判定を受けて縮小処理を行う。地図レイヤ選択手段５０が操作速度検出手段３０からの速度情報を受けて、地図ＤＢ６０の中から１つのレイヤを選択し、該当する範囲の地図データを重畳地図データ７０として読み出す。このようにして読み出されたベクトル地図データは重畳地図描画手段９０によってフレームバッファ１１０の背景フレームに描画される。この描画された地図が図４（ｂ）の画面の周辺部の地図１２１である。一方、操作前に表示していた地図も指の操作に応じてベース地図描画手段１００によって縮小処理が行われ、フレームバッファ１１０の前景フレームに描画されて画面の中央部に表示される。
【００２３】
拡大操作前に表示器１２０への表示に用いていたベース地図を指の操作に応じてそのまま縮小すると、表示情報量が極端に多くなり、画面が見づらくなるケースも発生する。そこで本実施例のように画面の周辺部に広域情報を表示すれば、目的とするスケールでどこまでの領域が表示されるのか、操作中の確認が容易である。図４（ｃ）は、操作終了時の画面である。操作が終了すると重畳地図データ７０を表示中地図データ８０として画面全面に広域地図を表示する。
【００２４】
図５は、以上説明した動作を実現するためのフローチャートである。まず、操作判定手段２０では、タッチパネル１０における入力状態を監視し、タッチパネル１０で２本の指の接触が検知されるまで待つ（Ｓ１００）。そしてタッチパネル１０に対する２本の指の接触が検知されると（Ｓ１００：Ｙｅｓ）、操作速度検出手段３０で指が接触している位置の座標から、２本の指の間隔を周期的に計測し（Ｓ１１０）、タッチパネル１０に接触している２本の指の間隔の変化を判定する（Ｓ１２０）。もし２本の指の間隔が広がっていれば地図拡大処理（Ｓ２００）を実行し、２本の指の間隔が狭まっていれば地図縮小処理（Ｓ３００）を実行し、指の間隔に変化がなければＳ１１０に戻る。
【００２５】
図６は、地図拡大処理Ｓ２００の詳細なフローチャートである。まず、操作速度検出手段３０では、計測した２本の指の間隔の差から、２本の指が広がる速度を算出する（Ｓ２１０）。次に地図レイヤ選択手段５０では、この速度に応じたレイヤの地図を１つ選択する。この時、指の動きが速い場合は、ユーザーが指定する地図の拡大率が大きくなるという予測を立てる。つまり、この操作方法は指の間隔に比例して地図が拡大されるので、拡大率を大きくしたい場合は動かす指の間隔が長くなる。そこで、所望の拡大率の地図を一定時間以内に素早く表示させるためには、指をより速く動かして指の間隔を素早く広げる必要が生じる。地図レイヤの選択は、指の間隔が変化する速度が所定速度以上の場合、その間隔が変化する速度に応じて地図の拡大率を求める。
【００２６】
ここで所定速度とは、指の間隔が広がっていく時に１つのレイヤの地図を拡大して表示している時間が地図ＤＢ６０の読み出し時間以下となるような指の間隔が広がる速度であり、言いかえれば地図の読み出しと描画時間が指の動きに追従できなくなる速度である。例えば、地図の読み出しと描画に１０ミリ秒かかるものと仮定する。また１つの地図レイヤの拡大許容率として２倍までは１つのレイヤを拡大表示するものとし、２倍に拡大するため指の間隔を１cm動かす時１０ミリ秒かかると仮定した場合、この時指の間隔が広がる速度は１ｍ／秒である。この速度以上であれば地図の読み出しと描画が拡大表示に間に合わなくなるので、１ｍ／秒が所定速度となる。
【００２７】
そこで、地図レイヤ選択手段５０では、操作速度検出手段３０で算出した２本の指の間隔が広がる速度がこの所定速度以上か判定する（Ｓ２１５）。指の間隔が広がる速度が所定速度以上の場合は（Ｓ２１５：Ｙｅｓ）、指の間隔が広がる速度を複数の速度区分に分けておき、該当する速度区分に応じて、当初表示していた地図レイヤからどれくらい詳細な階層のレイヤから地図データを読み出すかを決定する。この速度区分は、例えば地図レイヤが全部で１０階層からなる地図の場合、速度区分をレイヤ階層の半分の５段階とする。また、画面の中心から画面から最も遠い隅までの距離を指が移動する最大速度を事前に計測しておく。なお、処理を簡単にするため、この最大速度は所定の値としても良く、あるいは予め任意に設定できるようにしておいても良い。この最大速度から先の所定速度の間を速度区分の５段階に分ける。そして各段階について、指の間隔が広がる速度が１段階未満なら当初の地図レイヤより２階層詳細なレイヤ、同様にして、指の間隔が広がる速度が１段階以上で２段階未満なら４階層詳細なレイヤ、２段階以上で３段階未満なら６階層詳細なレイヤ、３段階以上で４段階未満なら８階層詳細なレイヤ、それ以上の速度なら１０階層詳細なレイヤの地図データをそれぞれ読み出すことに決めておく。該当する地図レイヤが無い場合は、最も詳細な地図レイヤを読み出すものとする（Ｓ２２０）。
【００２８】
また該当するレイヤの地図データを地図ＤＢ６０から読み出す場合、重畳地図データ７０と表示中地図データ８０をフレームバッファ１１０に描画した際に、表示が正しく重なるように表示器１２０の中心に対応する緯度経度がそれぞれ一致するように各レイヤの領域を選択して、ベクトル地図データを読み込むものとする。
【００２９】
次に操作速度検出手段３０で広がった指の間隔の距離の差分を計測する（Ｓ２３０）。指の間隔の差分が地図の拡大率に比例することになり、ベース地図描画手段１００で操作前に表示していた地図を指の間隔が広がった距離に対し所定の割合で比例して拡大し、背景フレームに表示する（Ｓ２４０）。次にＳ２２０で地図レイヤ選択手段５０が選択し重畳地図データ７０に読み込んだベクトル地図データを、重畳地図描画手段９０でフレームバッファ１１０における前景フレームの画面中央部分の初期範囲に描画する（Ｓ２５０）。この時、この初期範囲に描画された詳細地図と背景フレームに描画されるベース地図がちょうど重なる様に重畳地図の表示範囲と表示スケールを調整する。そしてタッチパネル１０に２本の指の接触が継続中であるかどうか判定し（Ｓ２６０）、接触が継続中（Ｓ２６０：Ｙｅｓ）であればＳ２７０に移り、接触がなければ（Ｓ２６０：Ｎｏ）指による拡大操作が終了したものと判断して処理を終了する。Ｓ２７０では指の間隔が広がっているかを更に判断し、指の間隔が広がっていれば（Ｓ２７０：Ｙｅｓ）拡大操作中であると判断してＳ２３０の処理に戻り、指の間隔が広がっていなければ（Ｓ２７０：Ｎｏ）指による拡大操作が終了したものと判断して処理を終了する。
【００３０】
一方、指の間隔が広がる速度が所定速度よりも遅い場合は（Ｓ２１５：Ｎｏ）、指の間隔が広がった距離に対する所定の拡大率に応じて地図レイヤを順次読み出して表示する処理を行う。このため、操作速度検出手段３０で広がった指の間隔の距離の差分を計測する（Ｓ２７３）。その指の間隔の差分が地図の拡大率に比例することになり、ベース地図描画手段１００では、操作前に表示していた地図を指の間隔が広がった分の距離に応じて所定の拡大率で拡大し、フレームバッファ１１０に描画して表示器１２０に表示する（Ｓ２７６）。そして拡大表示中の地図レイヤの拡大率が２倍以内かどうかを判定し（Ｓ２８０）、もし拡大率が２倍以内ならば（Ｓ２８０：Ｙｅｓ）、タッチパネル１０における２本の指の接触が継続中であるかどうか判定する（Ｓ２８６）。しかし、もしレイヤの拡大率が２倍を超えるなら（Ｓ２８０：Ｎｏ）、現在表示中の地図レイヤよりも１階層詳細な階層のレイヤから該当エリアのベクトル地図データを表示中地図データ８０に読み出して、ベース地図描画手段１００により表示範囲とスケールをそれまで表示していたベース地図に合わせて調整し、フレームバッファ１１０に描画して表示器１２０に表示し（Ｓ２８３）、Ｓ２８６に移る。タッチパネル１０に対し２本の指の接触が継続中であれば（Ｓ２８６：Ｙｅｓ）、指の間隔が更に広がっているかを更に判断し（Ｓ２９０）、指の間隔が広がっていれば（Ｓ２９０：Ｙｅｓ）拡大操作中であると判断してＳ２７３の処理に戻り、指の間隔が広がっていなければ（Ｓ２９０：Ｎｏ）指による拡大操作が終了したものと判断して処理を終了する。
【００３１】
図７は、地図縮小処理Ｓ３００の詳細なフローチャートである。まず、操作速度検出手段３０では、計測した２本の指の間隔の差から、２本の指が狭まる速度を算出する（Ｓ３１０）。次に地図レイヤ選択手段５０では拡大動作の時と同様の仮定に基づき、同じように操作速度検出手段３０で算出した２本の指の間隔が狭まる速度が所定速度以上か判定する（Ｓ３１５）。
【００３２】
指の間隔が狭まる速度が所定速度以上の場合は（Ｓ３１５：Ｙｅｓ）、指の間隔が狭まる速度を複数の速度区分に分けておき、地図の拡大処理で行った処理と同じように、該当する速度区分に応じて、当初表示していた地図レイヤからどれくらい広域な階層のレイヤから地図データを読み出すかを決定する。例えば各段階について、指の間隔が狭まる速度が１段階未満なら当初の地図レイヤより２階層広域なレイヤ、同様にして、指の間隔が狭まる速度が１段階以上で２段階未満なら４階層広域なレイヤ、２段階以上で３段階未満なら６階層広域なレイヤ、３段階以上で４段階未満なら８階層広域なレイヤ、それ以上の速度なら１０階層広域なレイヤの地図データをそれぞれ読み出す。該当する地図レイヤが無い場合は、最も広域な地図レイヤを読み出すものとする（Ｓ３２０）。
【００３３】
また該当するレイヤの地図データを地図ＤＢ６０から読み出す場合、重畳地図データ７０と表示中地図データ８０をフレームバッファ１１０に描画した際に、表示が正しく重なるように表示器１２０の中心に対応する緯度経度がそれぞれ一致するように各レイヤの領域を選択して、ベクトル地図データを読み込むものとする。
【００３４】
次に操作速度検出手段３０で狭まった指の間隔の距離の差分を計測する（Ｓ３３０）。指の間隔の差分が地図の縮小率に比例することになり、ベース地図描画手段１００で操作前に表示していた地図を指の間隔が広がった距離に対し所定の割合で比例して縮小し、前景フレームに表示する（Ｓ３４０）。次にＳ３２０で地図レイヤ選択手段５０が選択し重畳地図データ７０に読み込んだベクトル地図データを、重畳地図描画手段９０でフレームバッファ１１０における背景フレームの画面周辺部分に描画する（Ｓ３５０）。この時、この前景フレームに描画されたベース地図と背景フレームに描画される広域地図がちょうど重なる様に重畳地図の表示範囲と表示スケールを調整する。そしてタッチパネル１０に２本の指の接触が継続中であるかどうか判定し（Ｓ３６０）、接触が継続中（Ｓ３６０：Ｙｅｓ）であればＳ３７０に移り、接触がなければ（Ｓ３６０：Ｎｏ）指による縮小操作が終了したものと判断して処理を終了する。Ｓ３７０では指の間隔が更に狭まっているかを判断し、指の間隔が狭まっていれば（Ｓ３７０：Ｙｅｓ）縮小操作中であると判断してＳ３３０の処理に戻り、指の間隔が狭まっていなければ（Ｓ３７０：Ｎｏ）指による縮小操作が終了したものと判断して処理を終了する。
【００３５】
一方、指の間隔が狭まる速度が所定速度よりも遅い場合は（Ｓ３１５：Ｎｏ）、指の間隔が狭まった距離に対する所定の縮小率に応じて地図レイヤを順次読み出して表示する処理を行う。このため、操作速度検出手段３０で狭まった指の間隔の距離の差分を計測する（Ｓ３７３）。その指の間隔の差分が地図の縮小率に比例することになり、ベース地図描画手段１００では、操作前に表示していた地図を指の間隔が狭まった分の距離に応じて所定の縮小率で縮小し、フレームバッファ１１０に描画して表示器１２０に表示する（Ｓ３７６）。そして縮小中の地図レイヤの拡大率が１／２以内かどうかを判定し（Ｓ３８０）、もし縮小率が１／２以内ならば（Ｓ３８０：Ｙｅｓ）、タッチパネル１０における２本の指の接触が継続中であるかどうか判定する（Ｓ３８６）。しかし、もしレイヤの縮小率が１／２を超えるなら（Ｓ３８０：Ｎｏ）、現在表示中の地図レイヤよりも１階層広域な階層のレイヤから該当エリアのベクトル地図データを表示中地図データ８０に読み出して、ベース地図描画手段１００により表示範囲とスケールをそれまで表示していたベース地図に合わせて調整し、フレームバッファ１１０に描画して表示器１２０に表示して（Ｓ３８３）、Ｓ３８６に移る。タッチパネル１０に対し２本の指の接触が継続中であれば（Ｓ３８６：Ｙｅｓ）、指の間隔が更に狭まっているかを判断し（Ｓ３９０）、指の間隔が狭まっていれば（Ｓ３９０：Ｙｅｓ）縮小操作中であると判断してＳ３７３の処理に戻り、指の間隔が狭まっていなければ（Ｓ３９０：Ｎｏ）指による縮小操作が終了したものと判断して処理を終了する。
【００３６】
図８は、地図の拡大処理中に、タッチパネル１０に接触させている２本の指の間隔を変えずに平行移動させて、地図をスクロールするときの表示例を示した図である。図８（ａ）は、地図の拡大操作中の表示例を示している。地図の中央部分には地図レイヤ選択手段５０が選択した地図が重畳表示されている。この状況で、２本の指の間隔を変えずに画面上を平行移動すると、図８（ｂ）のように、指が動いた方向に画面の外側の地図と内側の地図を同時にスクロールすることができる。これにより、拡大操作の途中で拡大位置がずれていたことが判明した場合、簡単な操作で、表示位置をスクロールすることができる。同様にして縮小操作の途中で縮小範囲の中心がずれていたことが判明した場合に表示位置をスクロールすることができる。
【００３７】
図９は、このような拡大／縮小操作中に地図をスクロールする処理のフローチャートである。このフローチャートは、図５に示した処理に、指の平行移動を検出して地図の表示範囲を更新する処理が加わったものである。まず、操作判定手段２０では、タッチパネル１０における入力状態を監視し、タッチパネル１０で２本の指の接触が検知されるまで待つ（Ｓ１００）。そしてタッチパネル１０に対する２本の指の接触が検知されると（Ｓ１００：Ｙｅｓ）、操作判定手段２０ではタッチパネル１０に接触している２本の指が平行移動したかどうかを、それぞれの指の接触位置の軌跡から判定する（Ｓ４００）。もし平行移動していたら（Ｓ４００：Ｙｅｓ）、操作判定手段２０で、指の移動前の位置と移動後の位置から、平行移動距離を算出する（Ｓ４１０）。
【００３８】
次に、画面の周辺部の地図をスクロールするため、拡大処理中であればベース地図描画手段１００により表示中地図データ８０の描画範囲を、現在表示中の表示スケールに拡大した時に算出した平行移動距離分だけスクロールするようにずらして描画をやり直し、縮小処理中であれば重畳地図描画手段９０で重畳地図データ７０の描画範囲を、現在表示中の表示スケールに縮小した時に算出した平行移動距離分だけスクロールするようにずらして描画をやり直す（Ｓ４２０）。そして、画面の中心部の領域の地図をスクロールするため、拡大処理中であれば重畳地図描画手段９０で、重畳地図データ７０の描画範囲を現在表示中の表示スケールに拡大した時に算出した平行移動距離分だけスクロールするようにずらして描画をやり直し、縮小処理中であればベース地図描画手段１００で表示中地図データ８０の描画範囲を、現在表示中の表示スケールに縮小した時に算出した平行移動距離分だけスクロールするようにずらして描画をやり直す（Ｓ４３０）。
【００３９】
次に、操作判定手段２０で２本の指の間隔が広がっているかどうかを判定し（Ｓ１２０）、指の間隔が広がっていれば地図拡大処理（Ｓ２００）、狭まっていれば地図縮小処理（Ｓ３００）を実行する。指の間隔に変化がなければＳ１００に戻る。
【００４０】
図１０は、地図を拡大、または縮小したときのスケールバー１４０の表示例を示す。２本の指の間隔を変更して地図を拡大または縮小すると、表示するスケールバー１４０の長さが同じである場合、処理した後のスケールは区切りのよいスケール表示になるケースは少ない（図１０（ａ））。そこで、拡大、または縮小処理が終了したら、スケールバー１４０の数値を１００ｍ、２００ｍ、４００ｍなどの区切りのよいスケールで表示する（図１０（ｂ））。任意の数値で示されたスケールバーでは、距離の目測を付けにくいが、区切りのよい数値にすることで、目測が付けやすい。この表示の特徴は、拡大または縮小処理を終了したときの地図の縮尺はそのままに、スケールバー１４０の長さを調整して区切りのよいスケールにすることである。こうすることで、操作が終了した時、地図のスケールが変更されないので、表示確認が容易になる。
【００４１】
図１１は、スケールバー１４０の調整を行うためのスケールバー調整手段１１５における処理フローである。もし、拡大または縮小操作を終了したときのスケールバー１４０の数値は区切りの数値となっているかどうかを判断する（Ｓ５００）。区切りの数値はシステムで事前に定義しておく。もし、区切りの数値でなければ（Ｓ５００：Ｎｏ）、スケールバー調整手段１１５で表示されている縮尺数値に最も近い所定の数値を選択する（Ｓ５１０）。例えば表示されている数値が８６ｍと仮定し、その数値をはさむ区切り数値が１００ｍと５０ｍとすると、１００ｍの方が近いので、スケールバー１４０の数値を１００ｍとする。そして、表示されている縮尺数値とＳ５１０で選択した数値との比率からスケールバーの長さを求めて表示する（Ｓ５２０）。先の例の場合、表示スケールバー１４０を１００÷８６＝約１.２倍の長さに変えて表示を行う。
【符号の説明】
【００４２】
５  地図表示装置
１０  タッチパネル
２０  操作判定手段
３０  操作速度検出手段
４０  拡大縮小動作制御部
５０  地図レイヤ選択手段
６０  地図ＤＢ
７０  重畳地図データ
８０  表示中地図データ
９０  重畳地図描画手段
１００  ベース地図描画手段
１１０  フレームバッファ
１１５  スケールバー調整手段
１２０  表示器
【図１】
2013161013.tif 000003
【図２】
2013161013.tif 000004
【図３】
2013161013.tif 000005
【図４】
2013161013.tif 000006
【図５】
2013161013.tif 000007
【図６】
2013161013.tif 000008
【図７】
2013161013.tif 000009
【図８】
2013161013.tif 000010
【図９】
2013161013.tif 000011
【図１０】
2013161013.tif 000012
【図１１】
2013161013.tif 000013