グローバルナビゲーションへ

本文へ

ローカルナビゲーションへ

フッターへ



トップページ >  MAPCOM WORLD TOPICS >  GISでのデータベースの利用① ~PC-MAPPINGで利用できるデータベース~

GISでのデータベースの利用① ~PC-MAPPINGで利用できるデータベース~


このエントリーをはてなブックマークに追加

GISで扱うデータには、地図の形状を表す図形と、地図に付随する数値や文字で表す情報があり、この情報を「属性」とよびます。属性は、図形に直接入力されている場合と、図形とは独立した状態で扱う場合があり、後者の場合は、図形と属性のリンク(関連付け)を行うことが必要不可欠です。


例として、GISで管理・利用される図形と属性を、業務ごとに見てみましょう。

「道路台帳管理」の例でいうと、道路を表す線と道路の付帯情報である路線番号などの属性情報は、それぞれ個別に閲覧できるだけでなく、図面上で統合的に利用できることで、利便性の高いシステムとなります。
このように、図形と属性情報を統合的に利用するGISでは、それらを関連付けて管理するデータベース機構が必要です。

今回は、「GISとデータベースの関係性」「PC-MAPPINGで利用できるデータベース」について、2回に分けてご紹介します。

PC-MAPPINGで利用できるデータベース

上記のようなGISにおけるデータ管理の性質を考慮して、PC-MAPPINGでは2種類のデータベースを利用することができます。

内部属性

内部属性は、図形(ベクター)と一対一で対応するデータによって構成されるデータベースです。内部属性を設定した場合、アーク(線)やポリゴン(面)などの図形を作成するごとに、それに対応するレコードが追加されます。
内部属性は、PC-MAPPINGの独自のデータベース機構を利用して構成されます。

属性データベース

属性データベースは、内部属性と異なり、図形と直接関連付けられずに独立した形で存在するデータベースです。
属性データベースも内部属性と同様、PC-MAPPINGの独自のデータベース機構を利用して構成されるほか、PC-MAPPING以外のソフトウェアで作成したデータベース(外部データベース)を接続して利用することもできます。
外部データベースについては、「GISでのデータベースの利用② ~外部データベースの利用~」でご紹介します。

内部属性と属性データベースは、それぞれ単体でも利用することができますが、相互に関連付ける「データベースリンク設定」により、「地図と属性の統合利用」というGISのメリットを最大化することができます。

データベースリンク設定の実践

それでは、データベースリンク設定を実践してみましょう。
例として、内部属性に地番と大字を持つ筆ポリゴンが入った「画地」レイヤーと、地番ごとに所有者や地目、面積などがまとめられた「土地情報」データベースが既に登録されたプロジェクトを使用します。

ポリゴン内部属性を持つ「画地」レイヤー

「土地情報」データベース

「画地」レイヤーのポリゴン内部属性と「土地情報」データベースを関連付けるためには、それぞれのデータベースの対応関係を表すキーが必要です。
2つのデータベースをよく見ると、どちらにも「地番」フィールド「大字」フィールドが共通して存在することが分かります。また、この2つのフィールドによって、データベースレコードが一意に定まるようになっています(「土地情報」データベースの「さくら1丁目」「1」の所有者は「東真紀子」さん、といった具合です)。

このように、レコードを一意に定めるためのフィールドを、データベースの世界では主キーとよんでいます。
今回は、「地番」フィールドと「大字」フィールドの2つのフィールドで一意に定まりますが、そのような場合は複合キーともよばれます。

主キーが2つのフィールドにまたがっているのは何かと不便なので、今回は2つのフィールドをもとに、新たに「筆ID」フィールドを作成し、主キーとして利用することにします。

「筆ID」は、次のルールに従って作成することにします。
▶「(大字)-(地番)」

キーフィールド「筆ID」を作成する

「土地情報」データベースのフィールドに「筆ID」を作成します。

1.「土地情報」データベースをアクティブ(表示)にします。
[データベース]-[設定]-[データベースの定義]を実行すると、[属性データベース設定]ダイアログボックスが表示されます。
【追加】ボタンをクリックします。

2.[属性フィールドの設定]ダイアログボックスが表示されます。以下のように設定します。
フィールド名:筆ID
スタイル:文字型

3.続けて、「筆ID」レコードに入力するデータを作成していきます。
最初に述べたように、「地番」と「大字」の値を「-」(ハイフン)でつないだものを、「筆ID」として用います。
「計算フィールド」チェックボックスをONにして、式フィールドに「{大字}&"-"&{地番}」と計算式を記述します。
【OK】をクリックします。

計算フィールドは、他フィールドの文字列の結合や数値演算を設定し、結果を表示することができるデータフィールドのことです。
参考:【計算フィールド】設定方法
4.データベースに戻ると、計算フィールドで指定したように「筆ID」フィールドにデータが追加されていることが確認できます。

5.同様の手順で、ポリゴン内部属性にも「筆ID」フィールドを作成します。

これでポリゴン内部属性と属性データベースの中に「筆ID」というキーフィールドが完成しましたが、出来上がった「筆ID」を見てみると「さくら1丁目-1」というコードになっています。

この形でも問題ないのですが、予め「大字」をコード化(辞書データベースを作成)してから、つなぐことで分かりやすいキー値となります。

辞書データベースの作成

「大字辞書」データベースを新規に作成します。

1.[プロジェクトエキスパート]-[属性データベース]パネルを開きます。
【追加】ボタンを押して、[新規DB作成]をクリックします。

2.[属性データベース設定]ダイアログボックスが表示されます。
データベース名に「大字辞書」と入力し、【追加】ボタンをクリックします。
3.[属性フィールドの設定]ダイアログボックスが表示されます。
以下のように設定した2つのフィールドをそれぞれ追加します。
フィールド名:コードスタイル:整数型
フィールド名:名称スタイル:文字型
追加後、【OK】ボタンを押すと、[属性フィールドの設定]ダイアログボックスが閉じます。

①「コード」フィールド

②「名称」フィールド

4.[属性データベース設定]ダイアログボックスに設定したフィールドが追加されていることが確認できます。
【OK】ボタンをクリックすると、ダイアログボックスが閉じます。

5.[属性データベース設定]ダイアログボックスが閉じると、[属性データベース]パネルに戻ります。
こちらで「大字辞書」データベースが作成されたことが確認できます。

6.作成した「大字辞書」データベースをアクティブ(表示)にします。
「大字辞書」データベースには、まだレコードが入っていないので、ここにレコードを追加します。
[レコード]-[新しいレコード(詳細指定)]を実行し、[新しいレコードの追加]ダイアログボックスを開きます。
「追加位置」「追加するレコード数」を設定して、【OK】ボタンをクリックします。
7.追加されたレコードを編集します。
今回は例として直接入力しますが、もちろん既に整備されているデータベースを利用することもできます。

このように、何度も利用するデータをリスト化し、リンク設定を行うことで、データ入力作業の軽減や入力ミスをなくすことが可能です。

データベースリンク設定

「大字辞書」データベースと「土地情報」データベースの「大字」フィールドをリンクします。

1.「土地情報」データベースをアクティブ(表示)にします。
[データベース]-[設定]-[データベースの定義]を実行すると、[属性データベース設定]ダイアログボックスが表示されます。
「大字」を選択し、【更新】ボタンをクリックします。

2.[属性フィールドの設定]ダイアログボックスが表示されます。
「データベースリンク」チェックボックスをONにして、以下のように設定します。
データベース:¥大字辞書
キーフィールド:コード
データフィールド:名称
設定後、【OK】ボタンをクリックします。

「キーフィールド」には「大字辞書」データベースの主キーである「コード」フィールドを設定します。
そして、「コード」に対応した「名称」フィールドの値を表示させたいので、「データフィールド」には「名称」フィールドを設定します。
※リンクのキーとなるのは「整数型」と「文字型」だけです。
3.これで「土地情報」データベースと「大字辞書」データベースがリンクされました。
「土地情報」データベースに戻り、「大字」フィールドのセルをダブルクリックすると、リンクされたデータベースの値がドロップダウンリストで表示されます。
また、「筆ID」も「さくら1丁目-1」から「101-1」になっているのが確認できます。
これは先程の計算フィールドの式にて、「辞書引きなし」({大字}&"-"&{地番})として「大字」フィールドを指定したからです。

4.同様の手順で、ポリゴン内部属性の「大字」フィールドと「大字辞書」のリンク設定を行います。


今回は、計算フィールドを利用してキーとなる「筆ID」を作成しましたが、データが多い場合は処理が重くなってしまうことがあります。そのため、キーを作成したあとは、計算フィールドのチェックを外して実体化させるか、もしくは、トリガー計算フィールドを利用して下さい。
トリガー計算フィールドの詳細は、ヒント集「DBメニューの小技」の「トリガー計算フィールド」をご覧ください。

データベースリンク(他フィールド参照)

両データベースが共通して持つ「筆ID」をキーとして、「画地」レイヤーのポリゴン内部属性と「土地情報」データベースをリンクします。リンク情報をもとに、「土地情報」データベースの「所有者」フィールドのデータを、ポリゴン内部属性に反映させます。

1.「画地」レイヤーのポリゴン内部属性に「所有者」フィールドを追加し、「土地情報」データベースとリンク設定をします。
[レイヤーエキスパート]-[ポリゴン]パネルを開きます。【追加】ボタンを押して、[個別に設定して追加]を実行します。

2.[属性フィールドの設定]ダイアログボックスが表示されるので、以下のように設定します。
フィールド:所有者
スタイル:文字型
[データベースリンク(他フィールド参照)]チェックボックス:ON
参照データベース:筆ID
データベース:¥土地情報
キーフィールド:筆ID
データフィールド:所有者

【OK】を押して[属性フィールドの設定]ダイアログボックスを閉じます。
ポリゴン内部属性を確認すると、新たに「所有者」フィールドとデータが追加されていることが確認できます。

この「所有者」フィールドは「土地情報」データベースをリンクしているので、「土地情報データベース」の「所有者」フィールドの内容を編集すると、ポリゴン内部属性のデータも自動的に変更されます。

所有者氏名「東真紀子」を「山田太郎」に変更

リンクした内部属性と属性データベースの利用例

内部属性と属性データベースを紐づけることで、内部属性に対応する図形と属性データの統合利用ができるようになります。
例として、属性データベースから新たに図形にリンクされた「登記面積」フィールドの値が「1000」より大きい筆を検索して、該当するベクターを強調表示させます。

[データベース]-[表示]-[検索]で、条件を指定してレコードの検索ができます。

その際、[データベース]-[リンク]-[ベクター検索]-[選択ベクターデータ検索]を実行することで、検索該当レコードとリンクするベクターデータが強調表示されます。

第1回は、GISで利用されるデータベースの特徴と、PC-MAPPINGで利用できる2種類のデータベースについてご紹介しました。
第2回では、PC-MAPPINGでの外部データベースの利用について紹介します。