(57)【特許請求の範囲】
【請求項１】
対象地域に含まれる各地点であるノードにつき、対象のノードを示すノードＩＤ、ノードの緯度と経度を含むレコードを備えるノードテーブルと、
ノード間を結ぶ各リンクにつき、対象のリンクを示すリンクＩＤ、当該各ノードのノードＩＤを含むレコードを備えるリンクテーブルと、
ノード又はリンク又はリンクの一部について設定される属性ごとに、対象の属性を示す属性ＩＤ、当該属性を含むレコードを備えるフィーチャーテーブルと、
属性が設定されたノード又はリンクごとに、当該ノードのノードＩＤ又はリンクのリンクＩＤである対応先ＩＤ、対象の属性に対応する前記フィーチャーテーブルのレコードに含まれる属性ＩＤと同じ属性ＩＤを含み、当該属性がリンクの一部に設定される場合は、当該一部の一方端を示す属性始点、および、当該一部の他方端を示す属性終点を含むレコードを備える対応テーブルと、
ノードのノードＩＤ又はリンクのリンクＩＤもしくはノード又はリンクの位置情報、属性を含む観測データを観測データ記憶部から読み出し、当該観測データに基づいて、前記フィーチャーテーブルと前記対応テーブルを更新し、当該観測データが属性始点と属性終点を含む場合は、前記対応テーブルの該当レコードに当該属性始点と属性終点を設定する属性データ生成部と、
前記対応テーブルに、同じリンクＩＤで互いに矛盾する属性ＩＤが付与されている複数のレコードが存在する場合、前記リンクＩＤのリンクの始点ノードおよび終点ノードを共有する新たなリンクＩＤのレコードを前記リンクテーブルに追加し、前記対応テーブルの前記互いに矛盾する属性が付与された一方のリンクＩＤを、追加した前記新たなリンクＩＤで更新する地理ネットワーク変更部と
を備えることを特徴とする地理ネットワークデータ管理装置。
【請求項２】
前記属性データ生成部は、
観測データに含まれる位置情報に基づいてノード又はリンクを選択し、当該ノード又はリンクに関係する前記フィーチャーテーブルと前記対応テーブルのレコードを更新する
ことを特徴とする請求項１記載の地理ネットワークデータ管理装置。
【請求項３】
前記属性データ生成部は、
観測データに含まれる位置情報、属性に基づいて、任意の地点における当該属性の存在確率を求め、当該存在確率が所定の閾値以上の地点にあるリンクを選択する
ことを特徴とする請求項２記載の地理ネットワークデータ管理装置。
【請求項４】
複数の観測データ同士の矛盾の有無を予め設定されたルールに基づいて判定する観測データ取得部
を備えることを特徴とする請求項１ないし３のいずれかに記載の地理ネットワークデータ管理装置。
【請求項５】
請求項１ないし４のいずれかに記載の地理ネットワークデータ管理装置としてコンピュータを機能させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、地理ネットワークのノードやリンクに対して自動的に属性を付与できる地理ネットワークデータ管理装置およびコンピュータプログラムに関する。
【背景技術】
【０００２】
地理上の論理的な点をノードとし、点と点を結ぶ辺又は弧をリンクとするネットワーク（以下NWとする）構造を地理ネットワークと呼ぶ。
【０００３】
例えば道路を扱う単純な地理NWは、交差点をノードとし、交差点を結ぶ道路をリンクとする。この構造を利用することで、経路計算が可能となる。例えばOpenStreetMapはNW構造で作成された地図サービスであり、この構造を利用した経路計算が可能である（非特許文献１）。
【０００４】
また、地理NW上の属性を格納し、ユーザに表示するシステムが提案されている（非特許文献２）。ここでは、地理NWとして構築されたバリアフリーマップをユーザ端末に表示する方法が記述されている。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】Sittichai Choosumrong, Venkatesh Raghavan and Eugenio Realini. Implementation of dynamic cost based routing for navigation under real road conditions using FOSS4G and OpenStreetMap. International Symposium on Geoinformatics for Spatial Infrastructure Development in Earth and Allied Sciences 2010.
【非特許文献２】Karimi, H., Zhang, L., Benner, J. G. Personalized Accessibility Maps (PAMs) for communities with special needs. Lecture Notes in Computer Science, 7820, pp.199?213, 2013.
【発明の概要】
【発明が解決しようとする課題】
【０００６】
上記のように、地理NW上に格納された属性情報を表示するシステムは存在するが、実世界を観測したデータに基づき、地理NWに属性を配置するシステムは存在しなかった。
例えば、加速度センサによって道路上に段差があることが測定されたとき、その情報を地理NW上で対応するリンクに属性として自動で付与することはできなかった。
また、属性によっては、地理NWの構成を変更すべきことがある。例えば、１つのリンクに相反する属性が付与される場合、同じ始点・終点ノードを共有するリンクを追加で作成し、それぞれに異なる属性を付与することが有効である。
【０００７】
本発明は、上記事情に鑑みてなされたものであり、地理ネットワークのノードやリンクに対して自動的に属性を付与できる地理ネットワークデータ管理装置と地理ネットワークデータ管理装置としてコンピュータを機能させるためのコンピュータプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明の地理ネットワークデータ管理装置は、対象地域に含まれる各地点であるノードにつき、対象のノードを示すノードＩＤ、ノードの緯度と経度を含むレコードを備えるノードテーブルと、ノード間を結ぶ各リンクにつき、対象のリンクを示すリンクＩＤ、当該各ノードのノードＩＤを含むレコードを備えるリンクテーブルと、ノード又はリンク又はリンクの一部について設定される属性ごとに、対象の属性を示す属性ＩＤ、当該属性を含むレコードを備えるフィーチャーテーブルと、属性が設定されたノード又はリンクごとに、当該ノードのノードＩＤ又はリンクのリンクＩＤである対応先ＩＤ、対象の属性に対応する前記フィーチャーテーブルのレコードに含まれる属性ＩＤと同じ属性ＩＤを含み、当該属性がリンクの一部に設定される場合は、当該一部の一方端を示す属性始点、および、当該一部の他方端を示す属性終点を含むレコードを備える対応テーブルと、ノードのノードＩＤ又はリンクのリンクＩＤもしくはノード又はリンクの位置情報、属性を含む観測データを観測データ記憶部から読み出し、当該観測データに基づいて、前記フィーチャーテーブルと前記対応テーブルを更新し、当該観測データが属性始点と属性終点を含む場合は、前記対応テーブルの該当レコードに当該属性始点と属性終点を設定する属性データ生成部と、前記対応テーブルに、同じリンクＩＤで互いに矛盾する属性ＩＤが付与されている複数のレコードが存在する場合、前記リンクＩＤのリンクの始点ノードおよび終点ノードを共有する新たなリンクＩＤのレコードを前記リンクテーブルに追加し、前記対応テーブルの前記互いに矛盾する属性が付与された一方のリンクＩＤを、追加した前記新たなリンクＩＤで更新する地理ネットワーク変更部とを備えることを特徴とする。
【０００９】
本発明のコンピュータプログラムは、本発明の地理ネットワークデータ管理装置としてコンピュータを機能させるためのものである。
【発明の効果】
【００１０】
本発明によれば、地理ネットワークのノードやリンクに対して自動的に属性を付与できる。
【図面の簡単な説明】
【００１１】
【図１】地理ネットワークデータ管理装置の構成図である。
【図２】地理ネットワークデータ記憶部２の構成を示す図である。
【図３】属性データ記憶部５の構成を示す図である。
【図４】属性始点、属性終点の表現の一例を示す図である。
【図５】観測データの形式の例を示す図である。
【図６】観測データ取得部１のフローチャートである。
【図７】同一の属性の種別の属性値間の矛盾判定で使用されるルールの一例を示す図である。
【図８】異なる属性の種別の属性値間の矛盾判定で使用されるルールの一例を示す図である。
【図９】属性データ生成部４のフローチャートである。
【図１０】地理ネットワーク構成変更部６のフローチャートである。
【図１１】地理ネットワークの構成変更の例を示す図である。
【図１２】ノード変更形式２の一例を示す図である。
【図１３】リンク変更形式２の一例を示す図である。
【発明を実施するための形態】
【００１２】
以下、本発明の実施の形態について図面を参照して説明する。
図１は、本実施の形態に係る地理ネットワークデータ管理装置の構成を示す図である。
地理ネットワークデータ管理装置は、地理ネットワークのノードやリンクに対して自動的に属性を付与する装置であり、観測データ取得部１と、地理ネットワークデータ記憶部２と、観測データ記憶部３と、属性データ生成部４と、属性データ記憶部５と、地理ネットワーク構成変更部６とを備える。
【００１３】
図２は、地理ネットワークデータ記憶部２の構成を示す図である。
地理ネットワークデータ記憶部２は、ノードとリンクからなる地理ネットワークであり、ノードテーブル２１と、リンクテーブル２２とを備える。
【００１４】
ノードテーブル２１は、例えば、対象地域に含まれる各地点（ノード）につきレコードを備える。レコードは、対象のノードを示すノードＩＤ、ノードの緯度と経度、ノードの高さ、ノードの名称を含む。なお、場合によっては、ノードの高さやノードの名称を省略してもよい。
ノードＩＤは、例えば、251055431のような数字列で表現される。後述のリンクＩＤ、属性ＩＤも同様である。
【００１５】
例えば、緯度は35.6760470、経度は139.7457789のように表現される。例えば、北緯には正、南緯には負の符号が付く。例えば、東経には正、西経には負の符号が付く。以下、緯度と経度について同様である。
【００１６】
例えば、ノードの高さ「０」は地上階を示し、「２」は２階を示し、少数で中間階を示す。
例えば、ノードの名称は、「国会議事堂前」のように表現される。
【００１７】
リンクテーブル２２は、例えば、ノード間を結ぶ各リンク（道路など）につきレコードを備える。レコードは、対象のリンクを示すリンクＩＤ、リンクに接続される一方のノード（リンク始点という）のノードＩＤである始点ＩＤ、リンクに接続される他方のノード（リンク終点という）のノードＩＤである終点ＩＤを含む。
リンク始点とリンク終点は、例えば、緯度が高い方をリンク始点、低い方をリンク終点のように定義することができる。
【００１８】
図３は、属性データ記憶部５の構成を示す図である。
属性データ記憶部５は、地理ネットワークのノードやリンクに付与される属性を示すものであり、フィーチャーテーブル５１と、対応テーブル５２を備える。
【００１９】
フィーチャーテーブル５１は、ノード又はリンク又はリンクの一部について設定される属性ごとのレコードを備える。レコードは、対象の属性を示す属性ＩＤ、属性の種別、属性の値（属性値）を含む。以下、属性の種別と属性値の組を「属性」という。フィーチャーテーブル５１は、同一の「属性」についてはレコードを１つのみ備える。
【００２０】
対応テーブル５２は、属性が設定されたノード又はリンクごとのレコードを備える。レコードは、当該ノードのノードＩＤ又はリンクのリンクＩＤである対応先ＩＤ、対象の属性に対応するフィーチャーテーブル５１のレコードに含まれる属性ＩＤと同じ属性ＩＤを含み、対象の属性がリンクの一部に設定される場合は、当該一部の一方端を示す属性始点、当該一部の他方端を示す属性終点を含む。
【００２１】
図４は、属性始点、属性終点の表現の一例を示す図である。
属性始点、属性終点は、例えば、リンク始点やリンク終点からの距離で表現される。
【００２２】
例えば、属性始点「１０」、属性終点「１５」は、リンク始点からの１０ｍ地点から始まる属性が１５ｍ地点まで続くことを意味する。
例えば、属性始点「１５」、属性終点「１０」は、リンク始点からの１５ｍ地点から始まる属性が１０ｍ地点まで続くことを意味する。つまり、属性始点「１０」、属性終点「１５」の場合とは属性の方向が反対となる。
【００２３】
例えば、属性始点「０」、属性終点「１０」は、リンク始点から始まる属性が１０ｍ地点まで続くことを意味する。
又は、属性始点、属性終点は、例えば、リンク始点やリンク終点からの距離をリンクの長さで割った割合で表現される。
【００２４】
例えば、属性始点「１０％」、属性終点「５０％」は、リンク始点からの１０％地点から始まる属性が５０ｍ地点まで続くことを意味する。
属性始点や属性終点がリンク始点である場合、属性始点や属性終点を特別に０で表現し、リンク終点である場合は特別に−１で表現してもよい。
【００２５】
例えば、属性始点「０」、属性終点「−１」は、リンク始点から始まる属性がリンク終点まで続くことを意味する。
例えば、属性始点「−１」、属性終点「０」は、リンク終点から始まる属性がリンク始点まで続くことを意味する。つまり、属性始点「０」、属性終点「−１」の場合とは属性の方向が反対となる。
【００２６】
属性始点、属性終点は、どちらがリンク始点に近くてもよい。属性の種類が（坂道の）縦断勾配である場合、標高の低い方を属性始点、高い方を属性終点のように又は逆に定義することができる。
属性始点と属性終点が一致する場合、レコードの属性始点と属性終点を同じにすればよい。同じものを２つ使用する必要はないので、属性終点は、例えばｎｉｌで表現してもよい。
例えば、属性始点「１０」、属性終点「ｎｉｌ」は、リンク始点から１０ｍ地点の属性を意味する。
【００２７】
図５は、観測データの形式の例を示す図である。
＜観測データの形式１＞
ノードに関する属性を示す観測データは、例えば、ノードＩＤ、属性の種別、属性値を含む（図５（ａ））。
＜観測データの形式２＞
ノードに関する属性を示す観測データは、例えば、ノードの緯度と経度、属性の種別、属性値を含む（図５（ｂ））。
【００２８】
＜観測データの形式３＞
１つのリンクの全体に関する属性を示す観測データは、例えば、リンクＩＤ、属性の種別、属性値を含む（図５（ｃ））。
＜観測データの形式４＞
１つのリンクの一部の属性を示す観測データは、例えば、当該リンクのリンクＩＤ、当該一部の一方端を示す属性始点、当該一部の他方端を示す属性終点、属性の種別、属性値を含む（図５（ｄ））。
【００２９】
＜観測データの形式５＞
連結される２つ以上のリンクに跨るリンクの一部の属性を示す観測データは、例えば、当該一部の一方端を示す属性始点、属性始点を含むリンク（始点リンク）のリンクＩＤ、当該一部の他方端を示す属性終点、属性終点を含むリンク（終点リンク）のリンクＩＤ、属性の種別、属性値を含み、始点リンクと終点リンクの間にリンク（中間リンク）が存在する場合は、その中間リンクのリンクＩＤを含む（図５（ｅ））。
【００３０】
＜観測データの形式６＞
１つのリンクの一部又は直線的に連結される２つ以上のリンクに跨るリンクの一部の属性を示す観測データは、当該一部の一方端（属性始点）の緯度と経度、当該一部の他方端（属性終点）の緯度と経度、属性の種類、属性値を含む（図５（ｆ））。
【００３１】
図６は、観測データ取得部１のフローチャートである。
観測データ取得部１は、外部から観測データを読み出し（Ｓ１）、観測データに緯度と経度が含まれるか否かを判定する（Ｓ３）。緯度と経度を含む場合は、緯度と経度の位置が、対象となる範囲（例えば、対象となる市の区域）内か否かを判定する（Ｓ５）。
【００３２】
観測データ取得部１は、緯度と経度を含まない場合、つまり、ノードＩＤやリンクＩＤを含む場合は、そのＩＤが地理ネットワークデータ記憶部２のノードテーブル２１又はリンクテーブル２２に含まれるか否かを判定する（Ｓ７）。
【００３３】
観測データ取得部１は、含まれる場合（Ｓ７：ＹＥＳ）、又は、対象となる範囲内の場合（Ｓ５：ＹＥＳ）は、観測データを観測データ記憶部３に記憶させる（Ｓ１１）。
観測データを観測データ記憶部３に記憶させたなら、又は、範囲外の場合、次の観測データの有無を判定し（Ｓ１３）、有る場合は、ステップＳ１に戻り、無い場合は、処理を終了させる。
【００３４】
観測データ取得部１は、観測データの矛盾を判定し、判定結果に応じた処理を行ってもよい。例えば、矛盾があると判定された一方の観測データは観測データ記憶部３に記憶させず、削除する。
観測データ取得部１は、観測データが同一のノード又はリンク上で矛盾しているか否かを判定する。なお、観測データは全て正しいものが得られていることを仮定し，観測データの信頼性は問わない。
【００３５】
例えば、同一のノード又はリンクに対し、属性の種別が同じなのに、異なる属性値が付与される場合は矛盾となる。また、同一のノード又はリンクに対し、矛盾する属性の種別が与えられる場合も矛盾となる。
前者の場合、属性値によって矛盾が許容される場合と許容されない場合があり、ルールによって判定可能である。
【００３６】
図７は、同一の属性の種別の属性値間の矛盾判定で使用されるルールの一例を示す図である。
例えば、図７に示すようなルールを作成する。
【００３７】
あるノード又はリンクに対して観測データＤ１が与えられており、次に、同じノード又はリンクに対して観測データＤ２が与えられたとする。ここでＤ１とＤ２が共に「坂道」を示す観測データであったとする。このとき、Ｄ１およびＤ２の縦断勾配の値が異なっており、その変化によって指定された基準値に対する上下の状態が変化しなかったとする。例えばＤ１の縦断勾配が３％であり、Ｄ２の縦断勾配が５％の場合、基準値の８％を超えないため、基準値に対する変化は生じない。この場合は矛盾が許容されると判定される。
【００３８】
同様に、あるノード又はリンクに対するデータＤ３、Ｄ４が共に「坂道」を示すデータであるが、Ｄ３とＤ４で上昇方向が逆になっていたとする。この場合、上昇の方向の違いは許容されない属性値であるため、相互に矛盾すると判定される。
後者の場合も矛盾が許容される場合と許容されない場合があり、ルールによって判定可能である。
【００３９】
図８は、異なる属性の種別の属性値間の矛盾判定で使用されるルールの一例を示す図である。
ここでは、互いに矛盾する属性の種別同士をグループ化する。つまり、異なるグループに属する属性の種別同士は矛盾しない。
【００４０】
例えば、グループＧ１に属する属性の種別「屋根」とグループＧ２に属する属性の種別「坂道」が同一のノード又はリンクに付与されても矛盾とはならないが、共にグループＧ２に属する属性の種別「坂道」、「階段」、「エスカレーター」のいずれか２つが同一のノード又はリンクに付与されることは矛盾と判定される。
【００４１】
図９は、属性データ生成部４のフローチャートである。
属性データ生成部４は、観測データ記憶部３から観測データを読み出し（Ｓ２１）、観測データに緯度と経度が含まれるか否かを判定する（Ｓ２３）。緯度と経度を含む場合は、緯度と経度と地理ネットワークデータ記憶部２を基に、該当のノード又はリンクを選択する（Ｓ２５）。
【００４２】
属性データ生成部４は、ノード又はリンクを選択した（Ｓ２５）なら、又は、観測データに緯度と経度が含まれない場合（Ｓ２３：ＮＯ）、観測データに基づいて、属性データ記憶部５を更新する（Ｓ２７）。
続いて属性データ生成部４は、次の観測データの有無を判定し（Ｓ２９）、有る場合は、ステップＳ２１に戻り、無い場合は、処理を終了させる。
【００４３】
＜Ｓ２５の詳細処理＞
観測データがノードＩＤやリンクＩＤを含まず、緯度と経度を含む場合、即座にノードやリンクを選択できない。ここでは、緯度と経度と地理ネットワークデータ記憶部２を基に、該当のノード又はリンクを選択する処理について説明する。
【００４４】
＜ノードを選択する場合＞
観測データに示された地点をｍ、その緯度をｍ０、経度をｍ１とする（ｍ＝（ｍ０，ｍ１））。
このとき、ノードテーブル２１のレコードから、地点ｍに最も距離の近いノードのレコード（ノード）を選択する。具体的には，以下の条件を満たすノードｖを選択する。
【数１】
0006420749.tif 000002
つまり、ノードの集合Ｖから、ｍに最も近いノードを選択する。
【００４５】
＜リンクを選択する場合＞
観測データに示された地点をｍ、その緯度をｍ０、経度をｍ１とする（ｍ＝（ｍ０，ｍ１））。
このとき、始点がｖ＝（ｖ０，ｖ１）、終点がｗ＝（ｗ０，ｗ１）であるリンクｅ＝φ（ｖ，ｗ）について、以下の式が成立すれば、リンクｅを選択する。
【数２】
0006420749.tif 000003
【００４６】
＜属性の存在確率の考慮＞
Ｓ２５でリンクを選択する場合、存在確率を考慮することができる。
ある属性の種別と属性値（以下、属性ｂという）を示す観測データに示された地点をμ、その緯度をμ０、経度をμ１とする。
【００４７】
μ０、μ１の分散をそれぞれρ０２、ρ１２とする。属性ｂの存在確率は、観測データに示された地点を中心とした正規分布を仮定し、緯度方向と経度方向の相関はないもの（共分散は０）とする。
すると、ある地点ｘ＝（ｘ０，ｘ１）における属性ｂの存在確率は、
【数３】
0006420749.tif 000004
として、２変数の正規分布に従い、以下の通りとなる。
【数４】
0006420749.tif 000005
ここで、行列Ａについて、｜Ａ｜はＡの行列式、Ａ−１はＡの逆行列である。
Σは対角行列であるため、｜Σ｜＝ρ０２・ρ１２である。
【００４８】
また、
【数５】
0006420749.tif 000006
である。
そのため、
【数６】
0006420749.tif 000007
である。
【００４９】
従って、地点ｘにおける属性ｂの存在確率は以下のようになる。
【数７】
0006420749.tif 000008
始点がｖ＝（ｖ０，ｖ１）、終点がｗ＝（ｗ０，ｗ１）であるリンクｅ＝φ（ｖ，ｗ）について、そのリンクｅのいずれかの地点の属性ｂの存在確率ａ（φ（ｖ，ｗ），ｂ）は、始点と終点を結ぶ直線の式がｘ１＝ｇ（ｘ０）であれば、ｆ（ｘ０，ｘ１，ｂ）＝ｐ（ｘ，ｂ）として、以下の式で表される。
【数８】
0006420749.tif 000009
【００５０】
緯度方向と経度方向の分散が等しい（ρ０２＝ρ１２＝ρ２）とすると、存在確率は、以下の式で表される。
【数９】
0006420749.tif 000010
ただし、全てのリンクについて全ての属性の存在確率を持たせるのは計算コストの観点から非現実的であり、実際には、予め閾値θ（０＜θ＜１）を設定し、存在確率がθ未満の場合は、リンクを選択せず、存在確率がθ以上の場合は、リンクを選択し、属性を付与する（当該リンクに関係するフィーチャーテーブル５１と対応テーブル５２のレコードを更新する：Ｓ２７）のが好ましい。
【００５１】
＜属性データ記憶部５の更新例＞
ステップＳ２７においては、観測データの形式に関わらず、属性データ生成部４は、観測データ内の属性の種別と属性値の組を含むレコードをフィーチャーテーブル５１から検索する。該当レコードが無い場合は、フィーチャーテーブル５１に新たな属性ＩＤと当該属性の種別と属性値を含むレコードを追加する。
【００５２】
（形式１）
この形式の観測データについては、属性データ生成部４は、さらに、対応テーブル５２に、検索したレコード又は追加したレコードの属性ＩＤと観測データ内のノードＩＤを含むレコードを追加する。
（形式２）
属性データ生成部４は、この観測データについては、観測データ内の緯度と経度に基づいてノードＩＤを特定し、以降は形式１の観測データと同様に属性データ記憶部５を更新する。
【００５３】
（形式３）
この形式の観測データについては、属性データ生成部４は、さらに、対応テーブル５２に、検索したレコード又は追加したレコードの属性ＩＤと観測データ内のリンクＩＤを含むレコードを追加する。
（形式４）
この形式の観測データについては、属性データ生成部４は、さらに、対応テーブル５２に、検索したレコード又は追加したレコードの属性ＩＤと観測データ内のリンクＩＤと属性始点と属性終点を含むレコードを追加する。
【００５４】
（形式５）
この形式の観測データについては、属性データ生成部４は、さらに、観測データ内の中間リンクの中から、始点リンクに接続されるリンクを求め、これと始点リンクの接続点となるノードの位置（これを属性終点とする）を求める。属性データ生成部４は、対応テーブル５２に、検索したレコード又は追加したレコードの属性ＩＤと観測データ内の始点リンクのリンクＩＤと属性始点と、求めた属性終点を含むレコードを追加する。
【００５５】
また、属性データ生成部４は、さらに、観測データ内の中間リンクの中から、終点リンクに接続されるリンクを求め、これと終点リンクの接続点となるノードの位置（これを属性始点とする）を求める。属性データ生成部４は、対応テーブル５２に、検索したレコード又は追加したレコードの属性ＩＤと観測データ内の始点リンクのリンクＩＤと属性終点と、求めた属性始点を含むレコードを追加する。
【００５６】
また、属性データ生成部４は、さらに、各中間リンクにつき、リンクＩＤと、検索したレコード又は追加したレコードの属性ＩＤを含むレコードを追加する。
【００５７】
（形式６）
属性データ生成部４は、この観測データについては、属性始点と属性終点の緯度と経度に基づいて、属性始点と属性終点を結ぶ直線に少なくとも一部が位置するリンク（のリンクＩＤ）を特定する。
【００５８】
リンク（のリンクＩＤ）が１つの場合、属性データ生成部４は、形式３の観測データと同様に属性データ記憶部５を更新する。
リンク（のリンクＩＤ）が２つ以上の場合、属性データ生成部４は、形式５の観測データと同様に属性データ記憶部５を更新する。この場合、属性始点を含むリンクを始点リンク、属性終点を含むリンクを終点リンク、その他のリンクを中間リンクとして扱う。
【００５９】
＜地理ネットワーク構成変更部６＞
図１０は、地理ネットワーク構成変更部６のフローチャートである。
地理ネットワーク構成変更部６は、対応テーブル５２からレコードを読み出し（Ｓ３１）、レコード内の属性ＩＤと同じ属性ＩＤを含む、フィーチャーテーブル５１のレコードを読み出す（Ｓ３１）。これらレコードで特定される属性（属性始点、属性終点、属性の種別、属性値）が他の属性と矛盾するか否かを判定する（Ｓ３３）。
【００６０】
矛盾すると判定したなら、地理ネットワーク構成変更部６は、矛盾を解消するように、必要に応じて、ノードテーブル２１、リンクテーブル２２、フィーチャーテーブル５１、対応テーブル５２を更新する（Ｓ３５：地理ネットワークの構成変更）。
矛盾しないと判定したなら、または、更新が行われたなら、地理ネットワーク構成変更部６は、次の対応テーブル５２のレコードの有無を判定し（Ｓ３７）、有る場合は、ステップＳ３１に戻り、無い場合は、処理を終了させる。
【００６１】
また、地理ネットワーク構成変更部６は、矛盾がない場合でも、必要に応じて、ノードテーブル２１、リンクテーブル２２、フィーチャーテーブル５１、対応テーブル５２を更新する。
【００６２】
図１１は、地理ネットワークの構成変更の例を示す図である。
（ノード変更形式１）
地理ネットワーク構成変更部６は、例えば、リンク上へのノードの追加を行う（図１１（ａ））。
（ノード変更形式２）
地理ネットワーク構成変更部６は、例えば、孤立するノードの追加を行う（図１１（ｂ））。
【００６３】
（ノード変更形式３）
地理ネットワーク構成変更部６は、例えば、リンク上のノードの削除を行う（図１１（ｃ））。
（ノード変更形式４）
地理ネットワーク構成変更部６は、例えば、孤立するノードの削除を行う（図１１（ｄ））。
【００６４】
（リンク変更形式１）
地理ネットワーク構成変更部６は、例えば、リンクが存在しないノード間へのリンクの追加を行う（図１１（ｅ））。
（リンク変更形式２）
地理ネットワーク構成変更部６は、例えば、リンクが存在するノード間へのリンクの追加を行う（図１１（ｆ））。
【００６５】
（リンク変更形式３）
地理ネットワーク構成変更部６は、例えば、ノード間の唯一のリンクの削除を行う（図１１（ｇ））。
（リンク変更形式４）
地理ネットワーク構成変更部６は、例えば、複数のリンクが存在するノード間の１つのリンクを削除する（図１１（ｈ））。
【００６６】
（ノード変更形式１（リンク上へのノード追加）の詳細処理）
ノードｖ１のレコードとノードｖ２のレコードと、ノードｖ１をリンク始点、ノードｖ２をリンク終点とするリンクｅ１のレコードが存在し、対応先ＩＤとして、リンクｅ１のリンクＩＤを設定された対応テーブル５２のレコードに、フィーチャーテーブル５１の属性（属性の種別と属性値の組）ｆ１を含むレコードの属性ＩＤが設定されている場合を考える。また、属性始点と属性終点が、リンク始点からの距離をリンクの長さで割った割合で表現されていることとする。
【００６７】
新たなノードｖ３のレコードを追加する場合の処理を以下に示す。
（１）  ノードテーブル２１にノードｖ３のレコードを新たに作成し、このレコードに新たなノードＩＤを設定し、リンクｅ１のいずれかの位置を示す点の緯度と経度を設定する。
（２）  リンクテーブル２２におけるリンクｅ１のレコードの終点ＩＤとして、ノードｖ３のレコードのノードＩＤを設定する。
（３）  リンクテーブル２２において新たなリンクｅ２のレコードを作成し、このレコードに新たなリンクＩＤを設定し、始点ＩＤとして、ノードｖ３のレコードのノードＩＤを設定し、終点ＩＤとして、第２のノードｖ２のレコードのノードＩＤを設定する。
【００６８】
（４）  属性ｆ１に対する属性データ記憶部５のレコードを更新する。
（４ａ）属性ｆ１をリンクｅ１とリンクｅ２の両方に付与すべき場合
新たに対応テーブル５２にレコードを作成し、対応先ＩＤとして、リンクｅ２のリンクＩＤを設定し、属性ＩＤとして、属性ｆ１を含むフィーチャーテーブル５１のレコードの属性ＩＤを設定する。
【００６９】
なお、対応先ＩＤとして、リンクｅ１のリンクＩＤを設定された対応テーブル５２のレコードには、属性ＩＤとして、属性ｆ１を含むフィーチャーテーブル５１のレコードの属性ＩＤが既に設定されている。
また、対応先ＩＤとして、リンクｅ１のリンクＩＤを設定された対応テーブル５２のレコードの属性始点を、短くなったリンクｅ１の長さに応じて変更する。
また、対応先ＩＤとして、リンクｅ１のリンクＩＤを設定された対応テーブル５２のレコードの属性終点をノードｖ３を示すように更新する。
また、対応先ＩＤとして、リンクｅ２のリンクＩＤを設定された対応テーブル５２のレコードの属性始点をノードｖ３を示すように更新する。
また、対応先ＩＤとして、リンクｅ２のリンクＩＤを設定された対応テーブル５２のレコードの属性終点を、対応先ＩＤとして、リンクｅ１のリンクＩＤを設定された対応テーブル５２のレコードの更新前の属性終点を示すように更新する。
【００７０】
（４ｂ）属性ｆ１をリンクｅ１だけに付与すべき場合
新たに対応テーブル５２にレコードを作成し、対応先ＩＤとして、リンクｅ２のリンクＩＤを設定し、属性ＩＤとして、属性ｆ１を含むフィーチャーテーブル５１のレコードの属性ＩＤを設定する。なお、対応先ＩＤとして、リンクｅ１のリンクＩＤを設定された対応テーブル５２のレコードには、属性ＩＤとして、属性ｆ１を含むフィーチャーテーブル５１のレコードの属性ＩＤが既に設定されている。
また、対応先ＩＤとして、リンクｅ１のリンクＩＤを設定された対応テーブル５２のレコードの属性始点と属性終点を、短くなったリンクｅ１の長さに応じて変更する。
【００７１】
（４ｃ）属性ｆ１をリンクｅ２だけに付与すべき場合
新たに対応テーブル５２にレコードを作成し、対応先ＩＤとして、リンクｅ２のリンクＩＤを設定し、属性ＩＤとして、属性ｆ１を含むフィーチャーテーブル５１のレコードの属性ＩＤを設定する。なお、対応先ＩＤとして、リンクｅ１のリンクＩＤを設定された対応テーブル５２のレコードには、属性ＩＤとして、属性ｆ１を含むフィーチャーテーブル５１のレコードの属性ＩＤが既に設定されている。
【００７２】
この、対応先ＩＤとして、リンクｅ１のリンクＩＤを設定された対応テーブル５２のレコード（属性ＩＤとして、属性ｆ１を含むフィーチャーテーブル５１のレコードの属性ＩＤが既に設定されている）を消去する。
また、対応先ＩＤとして、リンクｅ２のリンクＩＤを設定された対応テーブル５２のレコードの属性始点と属性終点を、対応先ＩＤとして、リンクｅ１のリンクＩＤを設定された対応テーブル５２のレコードの更新前の属性始点と属性終点をそれぞれ示すように更新する。
【００７３】
図１２は、ノード変更形式１の一例を示す図である。
図のように、リンク上へ２つのノードを追加する場合は、上記ノード変更形式１の方法でリンク上へノードを追加し、元のリンク又は追加されたリンク上へ上記ノード変更形式１の方法でノードを追加すればよい。例えば、リンクのある部分に属性がある場合、その属性始点を、追加する一方のノードとし、属性終点を、追加する他方のノードとすることができる。この場合、追加された２つのノード間のリンク全体に属性が設定されることとなる。
（ノード変更形式２（孤立するノードの追加および削除）の詳細処理）
【００７４】
孤立しているノードの追加に当たってノードテーブル２１、フィーチャーテーブル５１、対応テーブル５２をどのように更新するかは自明であるため、説明を省略する。
【００７５】
（ノード変更形式３（リンク上のノードの削除）の詳細処理）
ノードｖ１のレコードとノードｖ２のレコードと、ノードｖ１をリンク始点、ノードｖ２をリンク終点とするリンクｅ１のレコードが存在し、ノードｖ２のレコードとノードｖ３のレコードと、ノードｖ２をリンク始点、ノードｖ３をリンク終点とするリンクｅ１のレコードが存在し、対応先ＩＤとして、リンクｅ１のリンクＩＤを設定された対応テーブル５２のレコードに、フィーチャーテーブル５１の属性ｆ１を含むレコードの属性ＩＤが設定され、対応先ＩＤとして、リンクｅ２のリンクＩＤを設定された対応テーブル５２のレコードに、フィーチャーテーブル５１の属性ｆ２を含むレコードの属性ＩＤが設定されている場合を考える。また、属性始点と属性終点が、リンク始点からの距離をリンクの長さで割った割合で表現されていることとする。
【００７６】
ノードｖ２を削除する場合の処理を以下に示す。
（１）  リンクｅ１とリンクｅ２から、残す一方のリンクを任意に選択する。ここでは、リンクｅ１を選択したこととする。
（２）  リンクテーブル２２において、リンクｅ１のレコードの終点ＩＤを、ノードｖ２のノードＩＤからノードｖ３のノードＩＤに変更する。
（３）  また、対応先ＩＤとして、リンクｅ１のリンクＩＤを設定された対応テーブル５２のレコードの属性始点と属性終点を、長くなったリンクｅ１の長さに応じて変更する。
（４）  また、新たに対応テーブル５２にレコードを作成し、対応先ＩＤとして、リンクｅ１のリンクＩＤを設定し、属性ＩＤとして、属性ｆ２を含むフィーチャーテーブル５１のレコードの属性ＩＤを設定する。そして、対応先ＩＤとして、リンクｅ２のリンクＩＤを設定された対応テーブル５２のレコードの属性始点と属性終点を、ノードｖ１（リンク始点）からの距離を長くなったリンクｅ１の長さで割った割合で表現し、これらを新たに作成したレコードに設定する。
（５）  ノードテーブル２１からノードｖ２のレコードを削除し、リンクテーブル２２からリンクｅ２のレコードを削除する。
【００７７】
（ノード変更形式４（孤立しているノードの削除）の詳細処理）
孤立しているノードの削除に当たってノードテーブル２１、フィーチャーテーブル５１、対応テーブル５２をどのように更新するかは自明であるため、説明を省略する。
【００７８】
（リンク変更形式１（リンクが存在しないノード間へのリンクの追加）の詳細処理）
リンクが存在しないノード間へのリンクの追加に当たってリンクテーブル２２、フィーチャーテーブル５１、対応テーブル５２をどのように更新するかは自明であるため、説明を省略する。
（リンク変更形式２（リンクが存在するノード間へのリンクの追加）の詳細処理）
ノードｖ１のレコードとノードｖ２のレコードと、ノードｖ１をリンク始点、ノードｖ２をリンク終点とするリンクｅ１のレコードが存在し、対応先ＩＤとして、リンクｅ１のリンクＩＤを設定された対応テーブル５２の３レコードの内の第１のレコードに、フィーチャーテーブル５１の属性ｆ１を含むレコードの属性ＩＤが設定され、第２のレコードに、フィーチャーテーブル５１の属性ｆ２を含むレコードの属性ＩＤが設定され、第３のレコードに、フィーチャーテーブル５１の属性ｆ３を含むレコードの属性ＩＤが設定されている場合を考える。また、属性ｆ３が属性ｆ１とは矛盾せず、属性ｆ２とは矛盾することとする。
【００７９】
この場合における新たなリンクの追加処理を以下に示す。
（１）リンクテーブル２２において、ノードｖ１（リンク始点）を示す始点ＩＤ、ノードｖ２（リンク終点）を示す終点ＩＤ、新たなリンクｅ２のリンクＩＤを含むレコードを作成する。
（２）フィーチャーテーブル５１から属性ｆ３の属性ＩＤを検索し、フィーチャーテーブル５１から、この属性ＩＤが設定されたレコードを検索する。
（３）検索したレコードの対応先ＩＤはリンクｅ１のリンクＩＤなので、これをリンクｅ２のリンクＩＤに変更する。
【００８０】
図１３は、リンク変更形式２の一例を示す図である。
例えば、リンクｅ１に対して、属性ｆ４（属性の種別「移動方法」と属性値「階段」の組）と、属性ｆ５（属性の種類「移動方法」と属性値「スロープ」の組）が設定されている場合、リンクｅ１は、実際には、階段とスロープに分かれると判断できるので、新たにリンクｅ２が追加され、属性ｆ５が設定される。
このように、本実施の形態では、矛盾のある属性については、その属性をもつリンクを追加することにより、矛盾を解消できる。
【００８１】
（リンク変更形式３（ノード間の唯一のリンクの削除）の詳細処理）
ノード間の唯一のリンクの削除に当たってリンクテーブル２２、フィーチャーテーブル５１、対応テーブル５２をどのように更新するかは自明であるため、説明を省略する。
（リンク変更形式４（複数のリンクが存在するノード間から１つのリンクを削除）の詳細処理）
ノードｖ１のレコードとノードｖ２のレコードと、ノードｖ１をリンク始点、ノードｖ２をリンク終点とするリンクｅ１のレコードと、ノードｖ１をリンク始点、ノードｖ２をリンク終点とするリンクｅ２のレコードが存在することとする。
【００８２】
ここで、対応先ＩＤとして、リンクｅ１のリンクＩＤが設定された対応テーブル５２の２レコードの一方に、属性ＩＤとして、属性ｆ１を含むフィーチャーテーブル５１のレコードの属性ＩＤが設定され、他方に属性ＩＤとして、属性ｆ２を含むフィーチャーテーブル５１のレコードの属性ＩＤが設定されていることとする。
また、対応先ＩＤとして、リンクｅ２のリンクＩＤが設定された対応テーブル５２のレコードに、属性ＩＤとして、属性ｆ１とは矛盾しないが属性ｆ２とは矛盾する属性ｆ３を含むフィーチャーテーブル５１のレコードの属性ＩＤが設定されていることとする。
【００８３】
例えば、リンクｅ１に属性ｆ２を付与する必要がなくなった場合、リンクｅ２を削除する。
（１）  対応先ＩＤとして、リンクｅ２のリンクＩＤが設定された対応テーブル５２から、属性ＩＤとして、属性ｆ２を含むフィーチャーテーブル５１のレコードの属性ＩＤが設定されていないレコードを検索し、属性ＩＤを読み出す。ここで、属性ｆ３を含むフィーチャーテーブル５１のレコードの属性ＩＤと同じものが読み出される。
（２）  リンクテーブル２２から、リンクｅ２のレコードを削除する。
（３）  対応テーブル５２から、対応先ＩＤとして、リンクｅ２のリンクＩＤが設定された対応テーブル５２のレコードを削除する。
（４）  対応テーブル５２に新たなレコードを作成し、対応先ＩＤとして、リンクｅ１のリンクＩＤを設定し、属性ＩＤとして、（１）で読み出した属性ＩＤ（属性ｆ３の属性ＩＤ）を設定する。
なお、（１）で複数の属性ＩＤを読み出した場合は、それぞれについて（４）を行う。
【００８４】
以上のように、本実施の形態によれば、地理ネットワークのノードやリンクに対して自動的に属性を付与でき、属性などに応じて、地理ネットワークの構成を変更でき、また、属性の矛盾を解消できる。
【００８５】
なお、本実施の形態では、地理ネットワーク構成変更部６は、必要に応じて、ノードテーブル２１、リンクテーブル２２、フィーチャーテーブル５１、対応テーブル５２を更新したが以下のようにしてもよい。すなわち、フィーチャーテーブル５１、対応テーブル５２に設定された属性をノードテーブル２１、リンクテーブル２２に設定し、つまり、属性付きのノードテーブル２１、属性付きのリンクテーブル２２を、元のノードテーブル２１、元のリンクテーブル２２とは別に作成し、元のノードテーブル２１、元のリンクテーブル２２、フィーチャーテーブル５１、対応テーブル５２は更新せず、属性付きのノードテーブル２１、属性付きのリンクテーブル２２を更新してもよい。
【００８６】
また、本実施の形態の地理ネットワークデータ管理装置としてコンピュータを機能させるためのコンピュータプログラムは、半導体メモリ、磁気ディスク、光ディスク、光磁気ディスク、磁気テープなどのコンピュータ読み取り可能な記録媒体に記録でき、また、インターネットなどの通信網を介して伝送させて、広く流通させることができる。
【符号の説明】
【００８７】
１  観測データ取得部
２  地理ネットワークデータ記憶部
３  観測データ記憶部
４  属性データ生成部
５  属性データ記憶部
６  地理ネットワーク構成変更部
【図１】
0006420749.tif 000011
【図２】
0006420749.tif 000012
【図３】
0006420749.tif 000013
【図４】
0006420749.tif 000014
【図５】
0006420749.tif 000015
【図６】
0006420749.tif 000016
【図７】
0006420749.tif 000017
【図８】
0006420749.tif 000018
【図９】
0006420749.tif 000019
【図１０】
0006420749.tif 000020
【図１１】
0006420749.tif 000021
【図１２】
0006420749.tif 000022
【図１３】
0006420749.tif 000023