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

本文へ

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

フッターへ




5. 外部データベースの利用


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

外部データベースとは

概要

PC-MAPPINGでは、独自のデータベースとして内部属性属性データベースを利用できることを「3-1. 内部属性と属性データベースの関係」で学びました。
これらの2種類のデータベース以外にも、PC-MAPPINGで利用できる形式のデータベースがあり、それらを総称して外部データベースと呼びます。

外部データベースとして利用できるデータベース形式の例として、以下のものが挙げられます。
  • CSV形式(*.csv
  • Microsoft Excel形式(*.xlsx
  • Microsoft Access形式(*.mdb, *accdb
  • Microsoft SQL Server、Oracle、PostgreSQL等
これらのデータベース形式は、PC-MAPPINGのデータベース形式とは異なるため、直接利用することはできません。
PC-MAPPING上で利用するには、対象となるデータベース形式のODBCドライバーをインストールし、外部データベース接続設定を行うことが必要です。
※ODBCドライバー:あるデータベースシステムのデータを他のシステムからも利用できるように、データベースの操作方法を提供するソフトウェア

外部データベースは、PC-MAPPING上では属性データベースとして取り扱われます。そのため、他の属性データベースや内部属性とデータベースリンクを設定することも可能です。

外部データベースリンク

外部データベースは、PC-MAPPING外のデータベースであるため、PC-MAPPINGだけでなく、他のシステムから更新が行われる場合もあります。また、逆に、PC-MAPPINGで更新を行う場合は、その更新内容をPC-MAPPING内だけでなく外部データベースに反映する必要があります。
そのため、外部データベースの接続状態や、接続されているデータベースの更新状況を管理する必要があり、そのための機構として用意されているのが外部データベースリンクです。

外部データベースリンクにおける接続情報には、データベースへの接続文や、ユーザー名・パスワードといったアクセス情報、どのデータをPC-MAPPING上で利用するかを定めた処理タイプ(利用するテーブル名、クエリ内容等)情報等があります。

リンクされた外部データベースへの同期は、
  • [データベース]-[設定]-[外部リンク]-[リンクされたDBを最新に更新(再読み込み)]
  • [データベース]-[設定]-[外部リンク]-[リンクされたDBの修正結果を元DBに反映]
により行います。

外部データベースのインポートとデータ入力

Excelファイルを外部データベースとしてインポートし、プロジェクトのレイヤーの内部属性とデータベースリンク設定を行うことで、地図上でその内容を表示します。
また、外部データベースに新規にデータを入力し、入力内容をPC-MAPPINGに反映します。

<使用データ>
山形県 最新のクマ目撃マップ(令和5年)※一部編集
※背景に地理院地図(淡色)を表示しています。

事前準備

PC-MAPPINGでExcelデータを外部データベースとして利用するには、Microsoftより提供されているODBCドライバーのインストールが必要です。
ODBCドライバーのダウンロードは、以下のリンクから実行して下さい。
Microsoft Access データベース エンジン 2016再頒布可能パッケージ

うまくいかない場合は、下記ページもご参照ください。
MAPCOM WORLD TOPICS「外部データベース接続がうまくいかない場合は?」

また、外部データベースとして利用するExcelデータは、PC-MAPPING x64と同じ64ビット版のOffice製品により作成される必要があります。詳しくは、下記ページ「PC-MAPPINGx64を使うコツ、注意点」の項の「Accessなどのオフィス製品のファイルが読み込めません」をご参照ください。
MAPCOM WORLD TOPICS「PC-MAPPINGx32とx64の違いあれこれ」

使用データの確認

[ホーム]-[開く]メニューを実行すると、「開く」ダイアログボックスが表示されます。
ダウンロードした実習データの中から、「Data¥5. 外部データベースの利用¥クマ目撃マップ.pcm」を指定し、「開く」ボタンをクリックしてプロジェクトデータを開きます。
このプロジェクトには、「R5 クマ目撃マップ」レイヤーが登録されています。
「R5 クマ目撃マップ」レイヤーは、ポイントデータからなるレイヤーです。ポイント内部属性には、「ID」フィールドと、描画パラメーターを入力する「@Render」フィールドが存在します。

次に、「Data¥5. 外部データベースの利用¥クマ目撃情報一覧.xlsx」をエクスプローラーで探し、Excelを起動して開きます。
このExcelファイルには、「ID」「名前」「説明」の3フィールドが整備されています。「ID」列は、「R5 クマ目撃マップ」レイヤーのポイント内部属性「ID」フィールドと対応しています。
このExcelデータをPC-MAPPINGに外部データベースとして登録し、ポイント内部属性とのデータベースリンク(他フィールド参照)設定を行います。

更に、以下の業務フローを想定して新規データの入力を行います。
  1. 問い合わせを受けた担当者が、Excelに情報を記録する。
  2. GIS担当者が、Excelの更新状況をPC-MAPPING側に反映する。
  3. GIS担当者が、「R5 クマ出没マップ」レイヤーにポイントを追加し、IDの入力を行うことで、リンク情報が転記される。

Excelデータの外部データベース登録

「クマ目撃マップ」プロジェクトのプロジェクトエキスパートを開き、「属性データベース」パネルに表示を切り替えます。
「追加」ボタンをクリックし、展開するメニューから「外部データベース(ADO)読み込み」を選択します。

「ADOによるデータベース接続」ダイアログボックスが開きます。
「テンプレート」ボタンをクリックし、展開するメニューの中から、「ODBC Driver Excel(*.xlsx)」を選択します。

「MS-Excelデータファイル」ダイアログが表示されるので、「Data¥5. 外部データベースの利用¥クマ目撃情報一覧.xlsx」を選択し、「開く」ボタンをクリックします。

「接続文(プロバイダー等)」欄に、選択した接続方法と指定したファイルパスを参照して接続文が自動的に生成されます。
「テーブルリスト」ボタンをクリックすると、「クマ目撃情報一覧.xlsx」のテーブル一覧が表示されます。
「R5 クマ目撃マップ_ポイント$」テーブルを選択し、その他の条件は特に設定せずに「OK」ボタンをクリックします。

「登録されたデータベース」欄に、「R5 クマ目撃マップ_ポイント$」データベースが追加されます。
【ADO】R5 クマ目撃マップ_ポイント$は、外部データベース情報を示しています。
「表示」ボタンをクリックし、データベースを表示した状態で「外部DBリンク情報」ボタンをクリックすることで、「ADOによるデータベース接続」ダイアログボックスの設定内容を確認することができます。
「OK」ボタンをクリックし、プロジェクトエキスパートを閉じます。

登録された外部データベース「R5 クマ目撃マップ_ポイント$」は、ウィンドウ上では他の属性データベースと同じ見た目で表示されます。
ウィンドウ上で直接値を入力したり、レコードを追加したりすることも可能です。

※元のExcelファイルに変更を反映するには、
[データベース]-[設定]-[外部リンク]-[リンクされたDBの修正結果を元DBに反映]メニュー
を実行します。

データベースリンク設定

「R5 クマ目撃マップ」レイヤーのポイント内部属性に、「R5 クマ目撃マップ_ポイント$」データベースとのデータベースリンク設定を行い、「名前」「説明」フィールドの値をポイント内部属性側で利用できるようにします。

「R5 クマ目撃マップ」レイヤーのポイント内部属性ウィンドウをアクティブにし、マウス右ボタンクリックで表示されるポップアップメニューから「データベースの定義」を選択します。

「属性データベース設定」ダイアログボックスが表示されます。
これまでの操作と同様、「追加」ボタンから個別に属性フィールドの設定を行う方法もありますが、今回は「名前」「説明」の2種類のリンクフィールドを追加する必要があるため、「データベースリンクフィールドの一括追加」を利用します。

「データベースリンク(他フィールド参照)フィールドの一括指定」ダイアログボックスで、次の通り設定します。
参照フィールド:[1]ID
データベース:¥R5 クマ目撃マップ_ポイント$
キーフィールド:[1]ID
データフィールド:「[2]名前」「[3]説明」チェックオン
設定が終わったら、「OK」ボタンをクリックします。

データベースリンク設定が行われた「名前」「説明」フィールドが一括追加されます。
「OK」ボタンをクリックし、ダイアログを閉じます。

新規データの入力

前項「データベースリンク設定」の操作により、「R5 クマ目撃マップ」レイヤーのポイント内部属性に、「名前」「説明」フィールドが追加され、「R5 クマ目撃マップ_ポイント$」データベースを参照した値が表示されます。
属性の表示設定を行うことで、リンクしたフィールドのデータを地図上で表示することができます。

地図上での属性表示

このデータベースに、Excel側で新規データを入力し、その更新内容をPC-MAPPING側でも管理することを考えます。

再度「Data¥5. 外部データベースの利用¥クマ目撃情報一覧.xlsx」をExcelで開きます。
一番下の行に移動し、次の通りデータを入力します。
「ID」列:170
「名前」列:1/1(月)午前0時00分(○○市○○町)
「説明」列:1頭(体長1メートル)

入力ができたら、上書き保存します。

PC-MAPPINGに戻り、「R5 クマ目撃マップ_ポイント$」データベースがアクティブな状態で[データベース]-[設定]-[外部リンク]-[リンクされたDBを最新に更新(再読み込み)]メニューを実行します。
先ほどExcelで入力したデータが反映され、170行目に追加されます。

Excelに入力されたデータに対応するポイントを、「R5 クマ目撃マップ」レイヤーに追加します。
[作図]-[ポイント]-[ポイント作図]-[ポイント作図]メニューを実行し、任意の地点でCtrlキー+マウス左ボタンクリックによりポイントを追加します。
「ポイント属性」ダイアログボックスが開くので、次の通り属性を入力してください。
ID:170
@Render:5
IDを入力すると、データベースリンク設定により、「名前」「説明」フィールドの値が自動的に表示されます。

属性表示設定を行っている場合、入力を終えると、Excelで入力したデータが地図上に表示されます。

事前にデータベースリンク設定を行うことで、ポイントを追加してIDを入力するだけで作業が完了するのがポイントです。
5. 外部データベースの利用