5分でGIS開発(GIS 5 ミニッツ)


はじめに

ここではExcelのVBAを使ってGISマチルダを使ってレイヤー図形を検索する表示を行います。超簡単です。スムーズにいけば5分で完成します。プロジェクトは既に作って設定されてて、マチルダで表示できるという状態からのスタートです。


早速作ってみる

点の密度の設定はポイント(マーカー)の点のサイズによります。
ポイントのサイズを変更することでGISウィンドウ内で描画される数を増減させることによって処理速度の向上や、描画精度に変化をつけることが可能です。

とりあえずExcelで空シートを開いて、メニューバーで開発のタブから挿入を押してボタンを配置します(ボタンの大きさは適当です)


配置するときにダイアログで何か聞かれるけど、そのまま[OK]をクリックします。この時マクロ名が「ボタン1_Click」となっていることを覚えておきましょう。


配置したらその左側にコマンドを書いて置くのでこれも適当にセルを調整して大きくしておきます。


その大きさを調整したセルにコマンドを書き込みます。
例えば以下のような感じにします。

@SEARCH_MAIN@筆界@地番='2-1'@SCALE:200
@SEARCH_MAIN@筆界@地番='15-2'@SCALE:1500
@SEARCH_MAIN@筆界@地番='102'@SCALE:2500

使えるコマンドの一覧はこちら


次に[Visual Basic]のボタンを押すか、キーボードで[Alt]+[F11]を押してエディタを起動します。

エディタを起動したら「標準モジュール」を挿入します。



次にその標準モジュールに以下の9行を追加します。
Function ボタン1_Click()
  Dim matilda As String
  Dim project As String
  Dim com As String
  matilda = "c:\sample\matilda64.exe"
  project = "c:\sample\city.ttkproject"
  com = ActiveCell.Value
  Shell (matilda & " " & project & " " & com)
End Function
赤色部分のパスは自分の保存している環境に合わせる。


あとは、カーソルを実行したいコマンドのセルに合わせて「ボタン1」をクリックします。


実行したら数秒でサッと検索場所が表示されます。

これらを繰り返すことでGISのシステム検索チックな動作が出来上がります。
表示が不要になったらマチルダを閉じます。



ワンポイントとコツ

ここではExcel(2019)のVBAを使いましたが、基本的にAccessやPythonやPerl等どの言語でも同じ考えで実行できます。(もっと言えばVBScriptやバッチファイルとかでも)
既存のアプリやシステムからもパラメータ付き起動コマンドを送るだけで使えます。

マチルダ自身は起動速度が高速なので、プロジェクトの内容や上記コマンドを、少し改良するだけでGISシステムの様な動きを簡単に再現することができます。

用途に合わせて送信側のアプリなどの種類を増やすことでもっと応用的な使い方が可能になります。
また、SQLレイヤーにした図形の場合はさらに高速に開いて動作をさせることができますのでチャレンジしてみてください。きっと皆さんの業務の助けになるものがたくさん生まれると思います。