3-2. データベースリンク設定を行う
実際のデータを元にして、内部属性と属性データベースの間のデータベースリンクの設定方法を検討します。
<使用データ>
・国土地理院ベクトルタイル(鉄道中心線)
<使用データ>
・国土地理院ベクトルタイル(鉄道中心線)
使用データの確認
[ホーム]-[開く]メニューを実行すると、「開く」ダイアログボックスが表示されます。
ダウンロードした実習データの中から、「Data¥3. データベースリンクの仕組みと設定方法¥路線図.pcm」を指定し、「開く」ボタンをクリックしてプロジェクトデータを開きます。
ダウンロードした実習データの中から、「Data¥3. データベースリンクの仕組みと設定方法¥路線図.pcm」を指定し、「開く」ボタンをクリックしてプロジェクトデータを開きます。
このプロジェクトには、以下の2種類のレイヤーが登録されています。
また、「路線辞書」「路線属性」の2種類の属性データベースが登録されています。
- 「路線」レイヤー
- 「駅」レイヤー
また、「路線辞書」「路線属性」の2種類の属性データベースが登録されています。
「路線属性」データベースは、「路線」レイヤーのアーク内部属性と同じ内容のデータを属性データベースとして登録したものです。「路線属性」データベース(駅部分)と「駅」レイヤーのポイント内部属性は、共通のキーフィールド「駅コード」を持ちます。
「路線属性」データベース
「駅」レイヤーポイント内部属性
「路線辞書」は、路線の名称にコードをふってリスト化したデータベースです。
- 1:空港線
- 2:箱崎線
- 3:七隈線
「路線辞書」と「駅」レイヤーポイント内部属性のリンク
「駅」レイヤーのポイント内部属性の「路線名」フィールドに、その駅が所属する路線名を入力します。
手入力も可能ですが、「路線名」フィールドに「路線辞書」データベースとのリンク設定を行うことで、リストから選択する形で値を入力することができます。
このような場合には、属性フィールド設定の「データベースリンク」を利用します。
手入力も可能ですが、「路線名」フィールドに「路線辞書」データベースとのリンク設定を行うことで、リストから選択する形で値を入力することができます。
このような場合には、属性フィールド設定の「データベースリンク」を利用します。
データベースリンク
あるデータベースフィールドと、そのフィールドに入力することが想定される値のリストである辞書データベースとの間を紐づけることで、データの入力を簡略化する機能です。
データベースリンク設定を行うことで、入力の手間が省ける上、リストの値が変更となった場合は辞書データベースを修正するだけでその値が反映されるため、入力ミスによるデータベースの不整合の発生を防ぐことができます。
データベースリンク設定を行うことで、入力の手間が省ける上、リストの値が変更となった場合は辞書データベースを修正するだけでその値が反映されるため、入力ミスによるデータベースの不整合の発生を防ぐことができます。
手順
「駅」レイヤーのポイント内部属性ウィンドウを開き、「路線名」フィールドのフィールド名をダブルクリックします。
「属性フィールドの設定」ダイアログボックスが表示されます。
「データベースリンク」のチェックをONにし、下記の通り設定します。
設定が終わったら、「OK」ボタンをクリックします。
「データベースリンク」のチェックをONにし、下記の通り設定します。
- データベース:¥路線辞書
- キーフィールド:コード
- データフィールド:名称
設定が終わったら、「OK」ボタンをクリックします。
「路線名」フィールドにリンク設定が行われ、リンク欄にデータベースリンクを示すアイコン(灰色の矢印が一周しているアイコン)が表示されます。
リンク設定が行われている状態で「路線名」フィールドのレコードをダブルクリックすると、「路線辞書」データベースの値を参照してリストが表示され、リストから選択することにより値を入力することができます。
また、データベースリンク設定が行われているフィールドでは、リスト外の値を入力することができなくなるため、入力ミスを低減することができます。
また、データベースリンク設定が行われているフィールドでは、リスト外の値を入力することができなくなるため、入力ミスを低減することができます。
データの入力が終わると、「路線名」フィールドの描画設定を参照して、地図上で駅のポイントが路線ごとに異なるシンボルで表示されます。
「路線属性」と「駅」レイヤーポイント内部属性のリンク
内部属性と共通のキーフィールドを持つ属性データベースが存在する場合、リンク設定により属性データベースのデータを内部属性側でも表示等に使用することが可能です。
ここでは、共通する「駅コード」フィールドを利用して、「路線属性」データベースと「駅」レイヤーのポイント内部属性の間にデータベースリンク設定を行い、「路線属性」データベースの「路線名」フィールドの値をポイント内部属性側に紐づけます。
このような場合には、属性フィールド設定の「データベースリンク(他フィールド参照)」を利用します。
ここでは、共通する「駅コード」フィールドを利用して、「路線属性」データベースと「駅」レイヤーのポイント内部属性の間にデータベースリンク設定を行い、「路線属性」データベースの「路線名」フィールドの値をポイント内部属性側に紐づけます。
このような場合には、属性フィールド設定の「データベースリンク(他フィールド参照)」を利用します。
データベースリンク(他フィールド参照)
ベクターの属性を内部属性の形式で持たず、属性データベースを利用する場合は、内部属性と属性データベースの間でデータベースリンクを行います。
リンクには、属性データベースと内部属性が共通して持つIDを割り当てたフィールド(「他フィールド」)をキーとして参照します。
リンクには、属性データベースと内部属性が共通して持つIDを割り当てたフィールド(「他フィールド」)をキーとして参照します。
手順
「駅」レイヤーのポイント内部属性ウィンドウを開き、マウス左ボタンクリックで表示されるポップアップメニューから「データベースの定義」をクリックします。
「属性データベース設定」ダイアログボックスが表示されます。
「追加」ボタンをクリックしてください。
「追加」ボタンをクリックしてください。
「属性フィールドの設定」ダイアログボックスで設定を行います。
- フィールド名:路線名_他フィールド参照
- スタイル:文字型
- データベースリンク(他フィールド参照):チェックON
- 参照フィールド:駅コード
- データベース:¥路線属性
- キーフィールド:駅コード
- データフィールド:路線名
「駅」レイヤーポイント内部属性に「路線名_他フィールド参照」フィールドが追加されます。
リンク欄には、データベースリンク(他フィールド参照)を示すアイコン(赤色の矢印が一周しているアイコン)が表示されます。
リンク欄には、データベースリンク(他フィールド参照)を示すアイコン(赤色の矢印が一周しているアイコン)が表示されます。
「路線名_他フィールド参照」フィールドには、「駅コード」フィールドを参照して「路線属性」データベースの「路線名」フィールドの対応する値が表示されます。
※「データベースリンク(他フィールド参照)」が設定されているフィールドは、データの入力ができません。データの入力や修正は、リンク元の属性データベース側で行います。
※「データベースリンク(他フィールド参照)」が設定されているフィールドは、データの入力ができません。データの入力や修正は、リンク元の属性データベース側で行います。