以下、本発明の実施の形態について、図面を参照しながら詳細に説明する。
[第一の実施形態]
<地図表示装置の構成>
まず、本実施形態に係る地図表示装置10の構成について、図1を参照しながら説明する。図1は、本実施形態に係る地図表示装置10の一例の構成を示す図である。
本実施形態に係る地図表示装置10は、例えば、携帯電話やスマートフォン、タブレット端末、PC(パーソナルコンピュータ)、ゲーム機器、カーナビゲーション装置等の各種電子機器である。
図1に示すように、本実施形態に係る地図表示装置10は、地図表示プログラム100がインストールされている。また、本実施形態に係る地図表示装置10は、屋外地図データ記憶部110と、屋内地図データ記憶部120とを有している。
地図表示装置10は、地図表示プログラム100により、屋外地図データ記憶部110に記憶されている屋外地図データに基づいて、例えばユーザにより指定された位置を中心とした所定の範囲内の屋外の地図(屋外地図)を表示する。このとき、地図表示装置10は、屋外地図上にある建物における階数毎の地図(屋内地図)を表示するための階数選択欄を表示する。
また、地図表示装置10は、地図表示プログラム100により、屋内地図データ記憶部120に記憶されている屋内地図データに基づいて、階数選択欄の中からユーザにより選択された階数の屋内地図を表示する。
これにより、本実施形態に係る地図表示装置10は、例えばユーザにより指定された位置の周囲の屋外地図を表示すると共に、この屋外地図内にある建物の屋内地図のうち、階数選択欄からユーザにより選択された階数の屋内地図を表示することができる。
なお、屋外地図データとは、地図表示装置10の画面上に屋外地図を表示するためのデータであり、例えば、緑地や河川、道路、都道府県等の表示対象の種類毎に分類され、緯度及び経度等が既知のメッシュ状に区切られて管理されている。そして、表示対象の種類毎に分類された屋外地図データは、縮尺に応じて、当該種類毎に予め決められたレイヤーに、メッシュ毎に描画されることで表示される。したがって、地図表示プログラム100は、例えば、表示対象の種類毎に分類された屋外地図データがそれぞれ描画されたメッシュ状のレイヤーを、1つ以上結合して重畳することにより、地図表示装置10の画面上に屋外地図を表示する。
また、屋内地図データとは、地図表示装置10の画面上に屋内地図を表示するためのデータであり、後述するように、建物毎及び階数毎に、この建物における階数毎の屋内地図を表示するための屋内地図描画データが管理されている。そして、建物毎及び階数毎に管理されている屋内地図描画データは、ユーザによる階数の指定に応じて、地図表示装置10の画面上に表示されている屋外地図上にある建物の屋内地図描画データのうち、当該指定された階数の屋内地図描画データを、予め決められたレイヤーに描画することで表示される。したがって、地図表示プログラム100は、例えば、地図表示装置10の画面上に表示されている屋外地図上にある建物の指定された階数の屋内地図描画データがそれぞれ描画されたレイヤーを、1つ以上結合して重畳することにより、地図表示装置10の画面上に屋内地図を表示する。屋内地図データには、建物の境界(外縁)により決定される領域を示すバウンディングボックスも含まれる。
本実施形態に係る地図表示装置10は、上述したように、階数選択欄の中からユーザが所望の階数を指定(選択)することで、当該地図表示装置10の画面上に表示されている屋外地図内にある建物における当該階数の屋内地図を表示することができる。ここで、ユーザが階数を指定(選択)するための階数選択欄の表示について、図2を参照しながら説明する。図2は、階数選択欄の表示の一例を説明する図である。
図2に示すように、屋外地図上に、例えば、地上1階から地上3階までの階数を有する建物A、地下1階から地上1階までの階数を有する建物B、地下3階から地上4階までの階数を有する建物C、及び地下2階から地上2階までの階数を有する建物Dがあるものとする。また、図2に示すように、各建物A〜Dには、その境界(外縁)により決定される領域であるバウンディングボックス1100〜1400がそれぞれ定められているものとする。
このとき、図2に示すように、地図表示装置10の画面上に屋外地図が表示されている範囲が表示範囲1000である場合、表示範囲1000は、バウンディングボックス1100、1200、及び1400と少なくとも一部が重畳する。一方で、表示範囲1000は、バウンディングボックス1300とは重畳しない。
したがって、この場合、地図表示装置10は、建物A、建物B、及び建物Dが有する階数をマージして、このマージした階数が含まれる階数選択欄2000を表示する。一方で、地図表示装置10は、建物Cが有する階数(地下3階から地上4階)を階数選択欄2000に表示しない。
階数選択欄2000は、屋内地図を表示する階数をユーザが選択するための選択欄である。ユーザは、階数選択欄2000から所望の階数を選択することにより、表示範囲1000内にある建物(すなわち、建物A、建物B、及び建物D)の屋内地図のうち、選択された階数の屋内地図を表示させることができる。
このように、本実施形態に係る地図表示装置10は、バウンディングボックスの少なくとも一部が表示範囲と重畳する建物について、この建物が有する階数をマージする。そして、本実施形態に係る地図表示装置10は、マージした階数が含まれる階数選択欄を表示する。
すなわち、本実施形態に係る地図表示装置10は、建物毎にバウンディングボックスを予め定義して、このバウンディングボックスの少なくとも一部が表示範囲と重畳する場合に、このバウンディングボックスに含まれる建物が有する階数を階数選択欄に表示する。
これにより、本実施形態に係る地図表示装置10は、この地図表示装置10の画面上に表示されている建物の階数のみが含まれる階数選択欄を表示する。したがって、本実施形態に係る地図表示装置10では、例えば、上記の建物Cのように、表示範囲外にある建物の階数(すなわち、仮に当該階数をユーザが選択したとしても屋内地図が表示されない階数)が階数選択欄に表示されるような事態を防止することができる。
<ハードウェア構成>
次に、本実施形態に係る地図表示装置10のハードウェア構成について、図3を参照しながら説明する。図3は、本実施形態に係る地図表示装置10の一例のハードウェア構成を示す図である。
図3に示すように、本実施形態に係る地図表示装置10は、入力装置301と、表示装置302と、外部I/F303と、通信I/F304とを有する。また、本実施形態に係る地図表示装置10は、ROM(Read Only Memory)305と、RAM(Random Access Memory)306と、CPU(Central Processing Unit)307と、記憶装置308とを有する。更に、これらハードウェアは、バスBで互いに接続されている。
入力装置301は、例えば、タッチパネルや各種ボタン等であり、ユーザが地図表示装置10に各種入力(例えば、表示する屋内地図の階数の入力等)を行うのに用いられる。表示装置302は、例えば、LCD(Liquid Crystal Display)等であり、地図表示装置10による処理結果を表示する。
外部I/F303は、外部装置とのインタフェースである。外部装置には、記録媒体303a等がある。地図表示装置10は、外部I/F303を介して、記録媒体13aの読み取りや書き込みを行うことができる。
記録媒体303aには、例えば、CD、DVD、SDメモリカード、USBメモリ等がある。なお、記録媒体303aには、地図表示プログラム100が格納されていても良い。
通信I/F304は、地図表示装置10が他の装置等と通信を行うためのインタフェースである。地図表示装置10は、通信I/F304を介して、他の装置等との間でデータ通信を行うことができる。
記憶装置308は、プログラムやデータを格納している不揮発性のメモリであり、例えば、HDD(Hard Disk Drive)やSSD(Solid State Drive)等である。記憶装置308に格納されているプログラムやデータには、地図表示プログラム100、地図表示装置10全体を制御する基本ソフトウェアであるOS(Operating System)等がある。
RAM306は、プログラムやデータを一時保持する揮発性の半導体メモリである。ROM305は、電源を切ってもプログラムやデータを保持することができる不揮発性の半導体メモリである。ROM305には、例えば、OS設定やネットワーク設定等のデータが格納されている。
CPU307は、ROM305や記憶装置308等からプログラムやデータをRAM306上に読み出し、当該プログラムやデータに基づく処理を実行することで、地図表示装置10全体の制御や各種の機能を実現する演算装置である。
本実施形態に係る地図表示装置10は、図3に示すハードウェア構成を有することにより、後述するような各種処理を実現できる。
<機能構成>
次に、本実施形態に係る地図表示装置10の機能構成について、図4を参照しながら説明する。図4は、本実施形態に係る地図表示装置10の一例の機能構成を示す図である。
図4に示すように、本実施形態に係る地図表示装置10は、表示位置取得部101と、屋外地図取得部102と、表示範囲特定部103と、屋内地図取得部104と、バウンディングボックス特定部105と、階数マージ部106と、表示制御部107とを有する。これら各機能部は、地図表示装置10にインストールされた地図表示プログラム100が、CPU307に実行させる処理により実現される。
また、本実施形態に係る地図表示装置10は、屋外地図データ記憶部110と、屋内地図データ記憶部120とを有する。これら各記憶部は、例えば記憶装置308を用いて実現可能である。なお、これら各記憶部のうちの少なくとも一の記憶部が、地図表示装置10とネットワークを介して接続される記憶装置等を用いて実現されていても良い。
表示位置取得部101は、屋外地図上における表示位置を取得する。表示位置は、例えば、ユーザにより指定された緯度及び経度でも良いし、ユーザにより指定された施設名等の施設の位置でも良い。また、表示位置は、例えば、地図表示装置10の画面上に表示されている屋外地図上の任意の位置をユーザが選択等することにより指定されても良い。
屋外地図取得部102は、表示位置取得部101により取得された表示位置から所定の範囲内の屋外地図を表示するための屋外地図データを、屋外地図データ記憶部110から取得する。
表示範囲特定部103は、屋外地図取得部102により取得された屋外地図データが表示することができる屋外地図のうち、地図表示装置10の画面上に表示される屋外地図の範囲(すなわち、表示範囲)を特定する。
すなわち、表示範囲特定部103は、例えば、屋外地図取得部102により取得された屋外地図データが表示することができる屋外地図のうち、表示位置取得部101により取得された表示位置を中心として、拡縮倍率等に応じた所定の範囲内を表示範囲と特定する。
屋内地図取得部104は、屋外地図取得部102により取得された屋外地図データが表示することができる屋外地図上に存在する建物の屋内地図を表示するための屋内地図データを、屋内地図データ記憶部120から取得する。
バウンディングボックス特定部105は、屋内地図取得部104により取得された屋内地図データに含まれるバウンディングボックスのうち、表示範囲特定部103により特定された表示範囲と少なくとも一部が重畳するバウンディングボックスを特定する。
階数マージ部106は、バウンディングボックス特定部105により特定されたバウンディングボックスに対応する建物が有する階数をマージする。
表示制御部107は、階数マージ部106によりマージされた階数を含む階数選択欄を表示装置302上に表示する。階数選択欄は、上述したように、屋内地図を表示する階数をユーザが選択するための選択欄である。ユーザが階数選択欄から所望の階数を選択することで、表示範囲特定部103により特定された表示範囲内にある建物の屋内地図のうち、選択された階数の屋内地図が表示される。
また、表示制御部107は、屋外地図取得部102により取得された屋外地図データが表示することができる屋外地図のうち、表示範囲特定部103により特定された表示範囲内にある屋外地図を表示装置302上に表示する。更に、表示制御部107は、屋内地図取得部104により取得された屋内地図データが表示することができる屋内地図のうち、表示範囲内に存在する建物の屋内地図であって、階数選択欄から選択された階数の屋内地図を表示装置302上に表示する。
屋外地図データ記憶部110は、上述した屋外地図データを記憶する。屋内地図データ記憶部120は、上述した屋内地図データを記憶する。
ここで、屋内地図データ記憶部120に記憶されている屋内地図データの詳細について、図5を参照しながら説明する。図5は、本実施形態に係る屋内地図データの一例を示す図である。
図5に示すように、屋内地図データ記憶部120に記憶されている屋内地図データには、建物IDと、建物名と、バウンディングボックスと、階数と、屋内地図描画データとが対応付けられたデータである。
建物IDは、施設等の建物を識別する情報である。建物名は、建物の名称である。バウンディングボックスは、建物の境界により決定される領域の情報であり、例えば、建物の境界を定義するための緯度及び経度(例えば、建物の4隅の緯度及び経度や建物の対角にある緯度及び経度等)が設定される。階数は、建物が有する階数である。屋内地図描画データは、建物の階数毎の屋内地図を描画するためのデータである。
このように、屋内地図データには、建物のバウンディングボックスが含まれていると共に、この建物の階数と、階数毎の屋内地図描画データとが含まれている。
<処理の詳細>
次に、本実施形態に係る地図表示装置10の処理の詳細について説明する。以降では、屋内地図を表示する階数をユーザが選択するための階数選択欄を表示する処理について、図6を参照しながら説明する。図6は、本実施形態に係る階数選択欄の表示処理の一例を示すフローチャートである。
まず、表示位置取得部101は、屋外地図上における表示位置を取得する(ステップS601)。表示位置取得部101は、例えば、ユーザにより指定された緯度及び経度を表示位置として取得しても良いし、ユーザにより指定された施設名等の施設の位置を示す緯度及び経度を表示位置として取得しても良い。また、表示位置取得部101は、例えば、地図表示装置10の画面上に表示されている屋外地図上の任意の位置をユーザが選択等することにより指定された緯度及び経度を表示位置として取得しても良い。更に、表示位置取得部101は、例えば、GPS(Global Positioning System)受信機等により測定された、ユーザの現在地(すなわち、地図表示装置10の現在地)を示す緯度及び経度を表示位置として取得しても良い。
次に、屋外地図取得部102は、上記のステップS601で取得された表示位置から所定の範囲内の屋外地図を表示するための屋外地図データを、屋外地図データ記憶部110から取得する(ステップS602)。
次に、表示範囲特定部103は、上記のステップS602で取得された屋外地図データが表示することができる屋外地図のうち、表示制御部107により画面上に表示される屋外地図の範囲(すなわち、表示範囲)を特定する(ステップS603)。
すなわち、表示範囲特定部103は、例えば、上記のステップS602で取得された屋外地図データが表示することができる屋外地図のうち、上記のステップS601で取得された表示位置を中心として、拡縮倍率等に応じた所定の範囲内を表示範囲と特定する。
次に、屋内地図取得部104は、上記のステップS602で取得された屋外地図データが表示することができる屋外地図上に存在する建物の屋内地図を表示するための屋内地図データを、屋内地図データ記憶部120から取得する(ステップS604)。
次に、バウンディングボックス特定部105は、上記のステップS604で取得された屋内地図データに含まれるバウンディングボックスのうち、上記のステップS603で特定された表示範囲と少なくとも一部が重畳するバウンディングボックスを特定する(ステップS605)。
すなわち、バウンディングボックス特定部105は、上記のステップS604で取得された各屋内地図データに含まれるバウンディングボックスについて、このバウンディングボックスと、上記のステップS603で特定された表示範囲との少なくとも一部が重畳するか否かを判定する。そして、バウンディングボックス特定部105は、当該表示範囲と少なくとも一部が重畳すると判定されたバウンディングボックスを特定する。
例えば、図2に示すように、建物Aのバウンディングボックス1100、建物Bのバウンディングボックス1200、及び建物Dのバウンディングボックス1400は、表示範囲1000と少なくとも一部が重畳する。したがって、この場合、バウンディングボックス特定部105は、これらのバウンディングボックス1100、1200、及び1400を特定する。
ここで、例えば建物が四角形でない場合のバウンディングボックスについて、図7を参照しながら説明する。図7は、バウンディングボックスの一例を示す図である。
図7(a)に示すように、建物BLが四角形でない場合、この建物BLを含む最小の四角形の領域をバウンディングボックス1500Aとすれば良い。また、図7(b)に示すように、この建物BLの形状に沿った領域をバウンディングボックス1500Bとしても良い。
なお、バウンディングボックスは、建物を含む最小の四角形の領域や建物の形状に沿った領域に限られず、建物を含む領域であれば良い。すなわち、バウンディングボックスは、例えば、建物を含む円形の領域や建物を含む多角形の領域等であっても良い。
次に、階数マージ部106は、上記のステップS605で特定されたバウンディングボックスと対応付けられている階数をマージする(ステップS606)。
すなわち、階数マージ部106は、上記のステップS605で特定されたバウンディングボックスが含まれる屋内地図データから階数を取得して、取得した階数をマージする。例えば、上記のステップS605において、建物A、建物B、及び建物Dのバウンディングボックスが特定された場合、建物Aの階数「1F」、「2F」、及び「3F」と、建物Bの階数「B1」及び「1F」と、建物Dの階数「B2」、「B1」、「1F」、及び「2F」とをマージする。このとき、階数マージ部106によるマージ結果は、「B2」、「B1」、「1F」、「2F」、及び「3F」である。
次に、表示制御部107は、上記のステップS606でマージされた階数を含む階数選択欄を表示する(ステップS607)。
すなわち、表示制御部107は、例えば図8に示す地図表示画面G100を表示装置302上に表示する。図8は、階数選択欄G110が表示された地図表示画面G100の一例を示す図である。
図8に示す地図表示画面G100には、上記のステップS606でマージされた階数「B2」、「B1」、「1F」、「2F」、及び「3F」を含む階数選択欄G110が表示されている。ユーザは、階数選択欄G110から所望の階数を選択することで、地図表示画面G100上にある建物(すなわち、表示範囲内にある建物)の屋内地図のうち、選択された階数の屋内地図が表示される。
例えば、階数選択欄G110の中から、ユーザが「1F」を選択した場合、表示制御部107は、建物A、建物B、及び建物Dの「1F」の屋内地図を、地図表示画面G100上に表示する。なお、これらの屋内地図は、建物A、建物B、及び建物Dの屋内地図データに含まれる「1F」の屋内地図描画データに基づいて表示される。ただし、建物Bについては、地図表示画面G100上に表示されている部分に対応する屋内地図が表示される。
同様に、例えば、階数選択欄G110の中から、ユーザが「2F」を選択した場合、表示制御部107は、建物A、建物B、及び建物Dのうち、「2F」がある建物(すなわち、建物A及び建物D)における「2F」の屋内地図を、地図表示画面G100上に表示する。なお、これらの屋内地図は、上記と同様に、建物A及び建物Dの屋内地図データに含まれる「2F」の屋内地図描画データに基づいて表示される。
また、同様に、例えば、階数選択欄G110の中から、ユーザが「3F」を選択した場合、表示制御部107は、建物A、建物B、及び建物Dのうち、「3F」がある建物(すなわち、建物A)における「3F」の屋内地図を、地図表示画面G100上に表示する。なお、当該屋内地図は、上記と同様に、建物Aの屋内地図データに含まれる「3F」の屋内地図描画データに基づいて表示される。
また、同様に、例えば、階数選択欄G110の中から、ユーザが「B2」を選択した場合、表示制御部107は、建物A、建物B、及び建物Dのうち、「B2」がある建物(すなわち、建物D)における「B2」の屋内地図を、地図表示画面G100上に表示する。なお、当該屋内地図は、上記と同様に、建物Dの屋内地図データに含まれる「B2」の屋内地図描画データに基づいて表示される。
以上のように、本実施形態に係る地図表示装置10では、屋内地図の表示対象の階数をユーザが選択するための階数選択欄を表示する。しかも、本実施形態に係る地図表示装置10では、表示範囲内(すなわち、画面内)の屋外地図上に存在する建物の階数のみを階数選択欄に表示する。このため、本実施形態に係る地図表示装置10のユーザは、当該表示範囲内において表示可能な屋内地図の階数のみを階数選択欄から選択することができる。言い換えれば、本実施形態に係る地図表示装置10のユーザは、当該表示範囲内の屋外地図上に存在する建物が有しない階数を階数選択欄から選択することができない。
[第二の実施形態]
次に、第二の実施形態について説明する。ここで、複数の建物同士が、例えば連絡通路で繋がっている場合がある。このような場合、屋内地図では、建物同士を繋ぐ連絡通路も表示することができれば便利である。一方で、建物の異なる階数同士が連絡通路で繋がっている場合(例えば、建物Aの3階と、建物Dの2階とが連絡通路で繋がっている場合)もあり得る。
そこで、第二の実施形態に係る地図表示装置10では、例えば、上記のような異なる階数同士を繋ぐ連絡通路も屋内地図で表示可能なように、建物の高さを基準として階数を割り当てた上で、階数選択欄に表示する。これにより、本実施形態に係る地図表示装置10では、例えば、同一の高さにある建物Aの3階と、建物Dの2階と、これらを繋ぐ連絡通路とを含む屋内地図を表示することができるようになる。
なお、第二の実施形態では、主に、第一の実施形態と異なる機能構成や異なる処理を行う箇所について説明し、第一の実施形態と同一の機能構成や同一の処理を行う箇所については、その説明を省略するものとする。
<機能構成>
まず、本実施形態に係る地図表示装置10の機能構成について、図9を参照しながら説明する。図9は、本実施形態に係る地図表示装置10の一例の機能構成を示す図である。
図9に示すように、本実施形態に係る地図表示装置10は、階数マージ部106Aと、階数割当部108とを有する。これら各機能部は、地図表示装置10にインストールされた地図表示プログラム100が、CPU307に実行させる処理により実現される。
また、本実施形態に係る地図表示装置10は、屋内地図データ記憶部120Aを有する。当該記憶部は、例えば記憶装置308を用いて実現可能である。なお、当該記憶部は、地図表示装置10とネットワークを介して接続される記憶装置等を用いて実現されていても良い。
階数割当部108は、バウンディングボックス特定部105により特定されたバウンディングボックスに対応する建物が有する階数について、屋内地図データに含まれる建物の階数の高さ(後述するフロア階層)に応じた階数を割り当てる。すなわち、階数割当部108は、複数の建物の階数について、フロア階数が同一である場合には、同一の階数となるように、階数を割り当てる。
階数マージ部106Aは、階数割当部108により割り当てられた階数をマージする。
屋内地図データ記憶部120Aは、屋内地図データを記憶する。ここで、屋内地図データ記憶部120Aに記憶されている屋内地図データの詳細について、図10を参照しながら説明する。図10は、本実施形態に係る屋内地図データの一例を示す図である。
図10に示すように、屋内地図データ記憶部120Aに記憶されている屋内地図データには、建物IDと、建物名と、バウンディングボックスと、階数と、フロア階層と、屋内地図描画データとが対応付けられたデータである。これらのうち、建物ID、建物名、バウンディングボックス、階数、及び屋内地図描画データは、第一の実施形態と同様である。
フロア階層は、建物の階数毎に対応付けられており、当該階数の高さ(例えば、地表からの相対的な高さ)を表す情報である。
例えば、建物Aの1階にはフロア階層「10」が、建物Aの2階にはフロア階層「15」が、建物Aの3階にはフロア階層「20」が対応付けられている。同様に、例えば、建物Dの地下2階にはフロア階層「−10」が、建物Dの地下1階にはフロア階層「−5」が、建物Dの1階にはフロア階層「10」が、建物Dの2階にはフロア階層「20」が対応付けられている。
ここで、建物Aの3階と、建物Dの2階とは、同一のフロア階層「20」が対応付けられている。したがって、建物Aの3階と、建物Dの2階とは、同じ高さにあることがわかる。
同様に、例えば、建物Bの地下1階と、建物Dの地下2階とは、同一のフロア階層「−10」が対応付けられている。したがって、建物Bの地下1階と、建物Dの地下2階とは、同じ高さ(この場合、地表から同じ深さ)にあることがわかる。
このように、屋内地図データには、建物のバウンディングボックスが含まれていると共に、この建物の階数と、この建物の階数の地表からの相対的な高さと、階数毎の屋内地図描画データとが含まれている。
<処理の詳細>
次に、本実施形態に係る地図表示装置10の処理の詳細について説明する。以降では、屋内地図を表示する階数をユーザが選択するための階数選択欄を表示する処理について、図11を参照しながら説明する。図11は、本実施形態に係る階数選択欄の表示処理の一例を示すフローチャートである。なお、図11のステップS601〜ステップS605の処理は、第一の実施形態と同様であるため、その説明を省略する。
ステップS605に続いて、階数割当部108は、バウンディングボックス特定部105により特定されたバウンディングボックスに対応する建物が有する階数について、屋内地図データに含まれる建物の階数のフロア階層に応じた階数を割り当てる(ステップS1101)。すなわち、階数割当部108は、バウンディングボックス特定部105により特定されたバウンディングボックスに対応する建物が有する階数を、同一のフロア階層が同一の階数となるように割り当てる。
ここで、フロア階層に応じた階数の割り当てについて、図12を参照しながら説明する。図12は、フロア階層に応じた階数の割り当ての一例を説明する図である。
図12(a)に示すように、建物Aの1階のフロア階層が「10」、2階のフロア階層が「15」、3階のフロア階層が「20」であるものとする。同様に、建物Dの地下2階のフロア階層が「−10」、地下1階のフロア階層が「−5」、1階のフロア階層が「10」、2階のフロア階層が「20」であるものとする。また、同様に、建物Bの地下1階のフロア階層が「−10」、1階のフロア階層が「10」であるものとする。
このとき、階数割当部108は、建物A、建物B、及び建物Dについて、最も小さいフロア階層から順に階数を割り当てる。
まず、階数割当部108は、最も小さいフロア階層「−10」に対応する階数に、最も小さい階数「B2」を割り当てる。すなわち、階数割当部108は、フロア階層が「−10」である建物Dの階数「B2」をそのままとする一方で、図12(b)に示すように、フロア階層が「−10」である建物Bの階数「B1」を階数「B2」に変更する。
次に、階数割当部108は、次に小さいフロア階層「−5」に対応する階数に、次に小さい階数「B1」を割り当てる。すなわち、階数割当部108は、建物Dの階数「B1」を、階数「B1」のままとする。
次に、階数割当部108は、次に小さいフロア階層「10」に対応する階数に、次に小さい階数「1F」を割り当てる。すなわち、階数割当部108は、建物A、建物B、及び建物Dの階数「1F」を、それぞれ階数「1F」のままとする。
次に、階数割当部108は、次に小さいフロア階層「15」に対応する階数に、次に小さい階数「2F」を割り当てる。すなわち、階数割当部108は、建物Aの階数「2F」を、階数「2F」のままとする。
最後に、階数割当部108は、次に小さいフロア階層「20」に対応する階数に、次に、小さい階数「3F」を割り当てる。すなわち、階数割当部108は、フロア階層が「20」である建物Aの階数「3F」をそのままとする一方で、図12(b)に示すように、フロア階層が「20」である建物Dの階数「2F」を階数「3F」に変更する。
このように、本実施形態に係る地図表示装置10は、最も小さいフロア階数から順に、同一のフロア階層に対応付けられている階数が同一の階数となるように、階数を割り当てる。これにより、本実施形態に係る地図表示装置10では、図12に示すように、例えば、建物Aの階数「3F」と、建物Dの階数「2F」(割り当て後の階数「3F」)と、これらを繋ぐ連絡通路とを、階数「3F」の屋内地図により表示することができるようになる。
図11に戻る。階数マージ部106Aは、階数割当部108により割り当てられた階数をマージする(ステップS1102)。
例えば、上記のステップS1101において、建物Aの階数「1F」、「2F」、及び「3F」と、建物Bの階数「B2」及び「1F」と、建物Dの階数「B2」、「B1」、「1F」、及び「3F」とが割り当てられた場合、階数マージ部106Aは、これらの階数をマージする。このとき、階数マージ部106Aによるマージ結果は、「B2」、「B1」、「1F」、「2F」、及び「3F」である。
次に、表示制御部107は、上記のステップS1102でマージされた階数を含む階数選択欄を表示する(ステップS1103)。これにより、第一の実施形態と同様に、例えば図8に示す地図表示画面G100が表示される。
このとき、本実施形態では、例えば、階数選択欄G110の中から、ユーザが「3F」を選択した場合、表示制御部107は、建物A、建物B、及び建物Dのうち、「3F」がある建物(すなわち、建物A及び建物D)の屋内地図を、地図表示画面G100上に表示する。なお、これらの屋内地図は、建物Aの屋内地図データに含まれる「3F」の屋内地図描画データと、建物Dの屋内地図データに含まれる「2F」の屋内地図描画データとに基づいて表示される。
また、このとき、表示制御部107は、建物Aの3階(階数「3F」)と、建物Dの2階(階数「3F」)とを繋ぐ連絡通路の屋内地図も表示する。これにより、ユーザは、階数選択欄G110の中から「3F」を選択することで、建物Aの3階(階数「3F」)の屋内地図と、建物Dの2階(階数「3F」)の屋内地図と、建物Aの3階(階数「3F」)及び建物Dの2階(階数「3F」)の間を繋ぐ連絡通路の屋内地図とを表示することができる。なお、連絡通路の屋内地図を表示するための屋内地図データは、屋内地図データ記憶部120Aに記憶されている。
同様に、例えば、階数選択欄G110の中から、ユーザが「B2」を選択した場合、表示制御部107は、建物A、建物B、及び建物Dのうち、「B2」がある建物(すなわち、建物B及び建物D)における「B2」の屋内地図を、地図表示画面G100上に表示する。なお、これらの屋内地図は、建物Bの屋内地図データに含まれる「B1」の屋内地図描画データと、建物Dの屋内地図データに含まれる「B2」の屋内地図描画データとに基づいて表示される。
また、このとき、表示制御部107は、例えば、建物Bの地下1階(階数「B2」)と、建物Dの地下2階(階数「B2」)とを繋ぐ連絡通路が存在する場合、この連絡通路の屋内地図も表示する。これにより、ユーザは、階数選択欄G110の中から「B2」を選択することで、建物Bの地下1階(階数「B2」)の屋内地図と、建物Dの地下2階(階数「B2」)の屋内地図と、建物Bの地下1階(階数「B2」)及び建物Dの地下2階(階数「B2」)の間を繋ぐ連絡通路の屋内地図とを表示することができる。
以上のように、本実施形態に係る地図表示装置10では、建物の各階数の高さ(例えば、地表からの相対的な高さ)を示すフロア階層に応じて、階数を割り当て直した上で、階数選択欄を表示する。このとき、本実施形態に係る地図表示装置10では、各建物について、同一のフロア階層は同一の階数となるように、階数を割り当てる。
このため、本実施形態に係る地図表示装置10では、階数選択欄から所望の階数を選択することで、例えば、選択した階数において建物同士を繋ぐ連絡通路の屋内地図も表示することもできるようになる。
<まとめ>
以上のように、第一の実施形態に係る地図表示装置10では、表示範囲内(すなわち、画面内)の屋外地図上に存在する建物の階数のみを階数選択欄に表示する。このため、第一の実施形態に係る地図表示装置10は、当該表示範囲内において表示可能な屋内地図の階数のみを階数選択欄から選択させることができるようになる。
また、第二の実施形態に係る地図表示装置10では、建物の各階数の高さ(例えば、地表からの相対的な高さ)を示すフロア階層に応じて、同一のフロア階層が同一の階数となるように、階数を割り当て直した上で、階数選択欄を表示する。このため、第二の実施形態に係る地図表示装置10では、例えば、階数選択欄から選択された階数において建物同士を繋ぐ連絡通路の屋内地図も表示することもできるようになる。
なお、第一の実施形態及び第二の実施形態では、屋外地図データや屋内地図データの取得、階数選択欄に表示する階数のマージ等の処理をすべて地図表示装置10が行うものとして説明したが、これらの処理のうちの一部の処理が、地図表示装置10とネットワークNを介して接続される地図提供サーバ20で行われても良い。
すなわち、第一の実施形態及び第二の実施形態は、例えば、図13に示す地図表示システム1により実現することもできる。図13に示す地図表示システム1では、地図提供プログラム200がインストールされ、屋外地図データ記憶部210と、屋内地図データ記憶部220とを有する地図提供サーバ20が、ネットワークNを介して、地図表示装置10と通信可能に接続されている。
このとき、地図提供サーバ20は、地図提供プログラム200により、例えば、屋外地図データや屋内地図データの取得、階数選択欄に表示する階数のマージ等の処理(すなわち、表示制御部107が行う処理以外の処理)を行って、これらの処理の結果を地図表示装置10に送信する。これにより、地図表示装置10は、屋外地図データや屋内地図データの取得、階数選択欄に表示する階数のマージ等の処理を行う必要がなくなる。
なお、本発明は、具体的に開示された上記の実施形態に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。