Google Earthのコンテンツでリッチな表現を

第5回 データベースを活用したKMLの生成

この記事を読むのに必要な時間:およそ 4 分

Google Earthはその特性上,データベースツールと非常に相性の良いツールです。これまで紹介してきた様々なテクニックを,テキストエディタでカリカリ書くのも一つの手段ですが,手元にある大量のデータやコンテンツをKMLとして提供するためには,相応のギミックが必要です。

主に,Google Earthに大量のデータを提供する手段として用いられているもので代表的なものは,CGIやPHPおよびMySQLなどのデータベースで作られたものです。そして,Visual Basicなどで作られたローカルアプリケーションです。前者はウェブで用意されているデータをGoogle Earthのネットワークリンクを用いて提供する手段として,後者はローカルにある大量のデータを,コンテンツの固まりとして,作り上げるために利用されています。

なお,今回の説明するサンプルのコードを以下に用意しました。

Access2007を使用して,KML出力する準備をする

数あるKML化の手段として,Access2007を利用するものがあげられます。理由としてはもっとも簡単なコーディングで最も大きな成果を作り上げることができる優れたツールであり,また,最近になって,Access2007の実行のみを可能とするAccess2007 ランタイム日本語版が配布されたことによって,Accessは開発環境としても,そこで開発されたデータベースの配布手段としても利用しやすいものとなったからです。

Access2007を推奨する理由としては,標準でXMLエクスポートのコマンドをサポートしている点です。また,XSLTでの整形もサポートしているため,わずか数行のコードで,綺麗に整形されたKMLを作り上げることが可能です。もちろん,クエリなどを使いこなすことが可能であるならば,より充実したKMLの作成を可能にすることでしょう。

今回は,地震の観測データをKML化するプログラムを作成したいと思います。まずは,テーブル構造を見てみましょう。

図1 今回作成するアプリのテーブル構造

図1 今回作成するアプリのテーブル構造

Accessに1つのテーブル(earthquake),1つのクエリ(earthquake_query),1つの入力フォームを用いた極めてシンプルな構造のアプリケーションを作成することとします。levelが震度表記,chimeiがその震度を観測した地名,addressが住所となります。

重要なのは,このaddressの部分であり,ここには,一般的な住所(マンション名やビル名はNG)を入力する点にだけ注意してください。そしてこのテーブルを元に全ての列を追加した形で,クエリも用意しておきます。

図2 入力用フォームの参考例

図2 入力用フォームの参考例

入力用フォームはフォームウィザードで自動生成したもので,あらかじめテーブルを元に作成したクエリをソースとして作成されています。表形式のフォームにボタンが1つだけで他に何もありません。ポイントとなる点は,このボタンに当てられているVBAのコードと,整形するために使用しているXSLファイルです。ここまでが準備となります。

著者プロフィール

郡司裕之(ぐんじひろゆき)

Google Earthを主に取り扱っているウェブサイト「GE Maniacs」の管理人。過去に2冊のGoogle Earthに関する書籍を執筆。一つはGoogle Earth全般の操作に関する書籍,もう一つはKML / COM APIのKMLに関する書籍のKML部分を担当。

無類の地図好きで,夢のツールGoogle Earthを普通に使うに飽きたらず,道具として,また新しい技術習得の土台としての利用を試みている毎日。

URLhttp://virtual.haru.gs/

コメント

コメントの記入