waigani's diary

QGISを中心にFOSS4Gをいじくる

QGISを利用して地図教材(KML)を作ろう

地図教材コンテスト 2013

NPO法人伊能社中様主催の地図教材コンテスト 2013に参加していました。おまけに賞までいただいたようで大変恐縮でございます。せっかくなので、どうやって作成したかを公開しておこうと思います。
実際はプログラム処理で一部やっていますが、手作業で行う手順で書いていきます。

応募したKMLはそんなに凝ったものではなくて、他の地域でも比較的簡単に真似出来るんじゃないかと思って作成したものです。本物はそのうちopentextmapに公開されると思いますので、GoogleEarthの画面キャプチャだけ。

旭川市姉妹都市・関係都市間に線を引いてある&旭川市に在住している方の国に色を塗っているだけです。

用意するもの

QGIS

オープンソースのデスクトップGISであるQGISを利用しましょう。
QGISのホームページにしたがってインストールしてください。

テキストエディタ

なんでもいいのですが、文字コード"UTF-8"で保存出来る物を用意します。
サクラエディタあたりをインストールしておきましょう。

国の塗り潰し

natural earthのデータを使用します。Public Domainであるというところが重要です。使用するデータに関しては、そのライセンスを必ず確認するようにしましょう。
1:50m Cultural Vectorsの"Admin 0 – Countries"をダウンロードし解凍しておきます。

国籍別外国人人口

各市町村のホームページで調べると、いろいろな統計情報が出ていると思います。
旭川市の場合、統計で見る旭川があります。平成24年度版を利用しました。

姉妹都市の情報

こちらも各市町村のホームページで見つけられると思います。旭川市の場合、旭川市国際交流センターあたりで情報収集出来ます。

国の塗り潰し+国籍別外国人人口からKMLまで

QGISを起動して、ダウンロード後に解凍しておいたデータから"ne_50m_admin_0_countries.shp"をドラッグ&ドロップで開きましょう。


左側に表示されている"レイヤ"一覧の"ne_50m_admin_0_countries"を右クリックします。メニューが表示されますので、"編集モード切り替え"を選択してください。


図形データの編集が出来るモードになり、各図形の頂点が赤く表示されます。


この状態で、もう一度左側に表示されている"レイヤ"一覧の"ne_50m_admin_0_countries"を右クリックし"プロパティ"を選択します。出てきたレイヤプロパティダイアログから"フィールド"を選択します。


名称が"name"以外のフィールドは使用しませんので、削除してしまいます。
Ctrlを押しながら複数フィールドを選択出来ます。選択後、下図で赤丸で囲んだ"カラムを削除"ボタンを押して削除します。


国籍別外国人人口のデータを入れるフィールドを作成します。
下図で赤丸で囲んだ"新規カラムを追加"ボタンを押します。出てきたフォームに
 名称:H24
 タイプ:テキスト(string) #数字しか入れないとわかっている場合は、integerでもかまいません
 幅:10 #入れる文字数に応じて適当に
を入れてカラムを追加します。同様に、H23、H22、H21、H20を追加しておきます。
追加後、レイヤプロパティダイアログの"OK"を押して、ダイアログを閉じます。


再び左側に表示されている"レイヤ"一覧の"ne_50m_admin_0_countries"を右クリックし"今度は、"属性テーブルを開く"を選択します。


ここは地道な作業になります。"name"フィールドを見ながら、統計情報から情報を書き写します。フィールド名をクリックするとソート出来ますので、ソートして行うのがいいと思います。


統計情報からの書き写しが終わったら、必要ない図形の削除を行います。"Hxx"フィールドをクリックしてソートすると、情報が入っていない"NULL"になっているレコードを選択しやすくなります。Ctrlを押しながら複数フィールドを選択出来ますので、選択後に下図で赤丸で囲んだ"選択地物を削除する"ボタンを押して削除します。
削除が終わったら、"属性テーブル"ダイアログを閉じてください。


左側に表示されている"レイヤ"一覧の"ne_50m_admin_0_countries"を右クリックし"今度は、"編集モード切り替え"を選択します。"レイヤの変更を保存しますか?"と聞かれますので、"保存"を選択します。


最後に、もう一度左側に表示されている"レイヤ"一覧の"ne_50m_admin_0_countries"を右クリックし"名前を付けて保存"を選択します。
下記情報を入力後、"OK"を押してKMLを保存します。
 形式:Keyhole Markup Language[KML]
 名前をつけて保存:適当な名前をつけてください
  #ブラウズから保存先のディレクトリを選択します


お疲れ様でした。ここまでで、元となるKMLを作成出来たことになります。
ただこの段階のKMLですが、塗りがなされていなくて線だけ表示されたものになります。
この先はテキストエディタ等を使って、このKMLに各種情報を足していきます。

その2につづく。