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

本文へ

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

フッターへ



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

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


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

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

PC-MAPPINGでは、
  1. 内部属性
  2. 属性データベース(NDV)
  3. 外部データベース
以上、3種類のデータベースを利用することができます。

内部属性

内部属性は、図形(ベクター)と1対1で対応するデータによって構成されるデータベースです。
そのため、アーク(線)やポリゴン(面)などの図形を作成するごとに、それに対応するレコードが追加されます。
また、図形(ベクター)と1対1で対応しているため、図形(ベクター)が消滅するとその内部属性も同時に失われます

属性データベース

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

内部属性と属性データベースは、それぞれ単体でも利用することができますが、共通のキーを利用し相互に関連付けをすることで有効活用ができます。

データベースリンク設定

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

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

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

「画地」レイヤーのポリゴン内部属性と「土地情報」データベースを関連付けるためには、
それぞれのデータベースの対応関係を表すキーが必要です。

2つのデータベースには、どちらにも「大字」フィールド「地番」フィールドがあり、
この2つのフィールドによって、データベースレコードが1つに特定できます。
例:「土地情報」データベースの、大字:さくら1丁目、地番:1の所有者は「東真紀子」

このような、レコードをひとつに特定するためのフィールドを、キーと表現します。
キーが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」も「101-1」になっているのが確認できます。
これは先程の計算フィールドの式にて、「辞書引きなし」({大字}&"-"&{地番})として「大字」フィールドを指定したためです。

4.同様の手順で、ポリゴン内部属性の「大字」フィールドと「大字辞書」のリンク設定を行います。
今回使用した計算フィールドは、データが多い場合処理が重くなってしまうことがあります。
そのため必要な結果が得られたのちに、計算フィールドのチェックを外して実体化させる、もしくは、トリガー計算フィールドをご利用ください。
■ヒント集:トリガー計算フィールド
DBメニューの小技

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

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

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

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

【OK】を押して[属性フィールドの設定]ダイアログボックスを閉じます。

ポリゴン内部属性を確認すると、新たに「所有者」フィールドとデータが追加されていることが確認できます。

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

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

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

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

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