2015年10月16日金曜日

DotSpatialでGISアプリを作る (1)とりあえず作ってみる

【2015/10/25改変】
DotSpatial1.8では、1.7以前と異なるやり方でアプリケーションを作るようになったようですので(このページのコメント参照)、1.8のやり方で書き直しました。

----

DotSpatialは、.NET Frameworkを使ってGISアプリを作るためのライブラリです。
QGISやArcGISなどの素晴らしいアプリケーションがすでにあるので、もちろんそちらを使っても良いとは思いますが、特定の目的に特化したアプリを作りたいときなんかは、こういうライブラリを使って自分でアプリを作るのもありかと。そんなわけで、DotSpatialをちょっと試してみます。


ここでは、次の環境を使うことにします。
  • Visual Studio Express 2013 for Windows Desktop
  • DotSpatial 1.8
  • .NET Framework 4.5(DotSpatialは.NET Framework 4以降で動作します)
  • Visual C#

DotSpatialの入手


DotSpatialのサイトにいき、「download」をクリックすると、最新版のzipファイルが入手できます。これを任意の場所に展開します。


プロジェクトの作成と準備


C#のWindows Formsアプリケーションでプロジェクトを作成します。

参照設定で、DotSpatialのライブラリの中から、DotSpatial.Controls.dll, DotSpatial.Data.dll, DotSpatial.Data.Forms.dll, DotSpatial.Symbology.dllの4つを追加します。



「ツールボックス」を開き、右クリックして「タブの追加」を選択します。タブ名には、「DotSpatial」などの任意の名前を付けておきます。


追加したタブを右クリックし、「アイテムの選択」を選択します。「ツールボックスアイテムの選択」画面の中で、「.Net Framework」タブで「参照」をクリックし、DotSpatial.Controls.dllを選択します。そうすると、下図のようにコンポーネントが自動選択されるので、この状態で「OK」を押します。これで、ツールバーにDotSpatialのフォームが追加されます。


デザイン


まず、フォームにAppManagerを貼り付けます。ツールバーからAppManagerを選択し、フォーム上の任意の位置をクリックすると、AppManagerが貼り付けられます。

フォームの編集はこれだけです。


コーディング


Form1のコードを開き、次のようにコーディングします。

ビルド

上記までできたら、一度ビルドします。まだデバッグ起動はしません。
ビルドが完了したら、プログラムができたフォルダー(プロジェクトファイルのbin\Debug)に、ダウンロードしたDotSpatialのファイルの中から、"Plugins", "Tools", "Windows Extensions"の3つのフォルダーを、フォルダーごとコピーします。

動作確認


デバッグで起動します。起動すると、次のような画面が表示されます。


ツールバーの左端にある"Add Layer..."ボタンを押すと、ファイル選択ダイアログが出るので、たとえばshapefileを指定すると、shapefileが地図上に表示されます(下図は、DotSpatialのチュートリアルについているstates.zipというファイルを表示させています)。この地図エリアは、マウスドラッグでスクロールしたり、マウスホイールでズームイン・ズームアウトも可能です。

また、レイヤーの表示・非表示切替ができたり、凡例の色の部分をダブルクリックして下図にように表示設定を変更することもできます。


さらに、こんな感じで属性値による色分けの設定なんかもできます。
この設定をすると、先ほどのレイヤーはこんな表示になります。

属性テーブルも標準でついてきます。


そのほか、地物の追加とか頂点の編集なんかもできてしまいます。

こんな感じで、そこそこ高機能のアプリをたった数行のコーディングで作れてしまうのが、DotSpatialのおもしろいところではないかと思います。

0 件のコメント:

コメントを投稿