on12/10/2012MapWinGISのちょっとした話題提供MapWinGISのちょっとした話題提供なんてお題ですが。ここまで、いろいろとMapWInGIS.ocxをつかったGISプログラムのExample作成を行ってきました。GISアプリケーションとしては頭一つ抜き出ているようですが、私のように標高データを使った土石流や河床変動数値計算を行うプログラムに組み込んで、プリポスト処理をするには、どうしても使いにくいのです。(そう考えているのは、知らないだけかも。)確かにQGISは多数のOS上で動く非常に優れたGISアプリケーションであることには変わりないです。私もArcGISと併用して使っています。私自身がまだまだPythonの使い方を理解していない部分もありますが。StudioでGUIを作成すると言う仕様の縛りもあるため、どうしてもMapWinGISを使うことが多くなります。Programerなものでして、かつGISに関しては独学でありますので、いい加減な理解でしかないところもあります。3.0くらいから注目していたのですが、そのころは、とても実用に耐えうるものではなかったように記憶しています。4.6、4.7から十分な機能と安定した動作ができるようになっています。4.8.6となっています。MapWinGISのマニュアルについても使用例も含めてまとめられているので、非常に重宝してます。Engineとして使われています。詳しくは、MapWindowのHPをご覧ください。Tutorialでも書いていますが、MapWInGIS.ocxを単体でinstallしてGUIアプリケーションを作成することもできるのですが、いろいろと便利なdll類を使うためにMapwindowをinstallしてプログラムの作成をすることをお勧めします。codeもsvnで管理されているので、downloadして利用することができますし、私自身も利用しています。http://mapwindow4.codeplex.com/をご覧ください。MapWinGISを使った基本的なprogramについては、MapwingisのTutorialを見ていただくとして、ここではMapWindowのdllを使いながら、ちょいと便利かな???なProjectionViewerを作成してみます。64bitでも大丈夫です。32Bitをdownloadしてきて、installします。64bit版については、検証していませんので、注意してください。MapWindowのinstall先はdefaultのfolderとして、以下説明します。今回は、vb.netを使っていきます。studio起動後に、適当なprojectを作って下さい。formアプリケーションを作成します。modeでビルドして保存しておきます。今回は特に使わないのですが、MapWinGIS.ocxの登録を行います。Controlが登録されます。登録するdllはMapWinInterfaces.dllMapWindow.Controls.dllの2つをMapWinGIS.ocxと同様にツールボックスに登録します。コンポーネントのtab→参照ボタンをクリックして、MapWinInterfaces.dllを登録します。Files¥MapWindowにあります。MapWinInterfaces.dllを登録すると、名前がLegend、名前空間がLegendControlが下記のように表示されます。Legendが追加されているはずです。続いて、MapWindow.Controls.dllをMapWinInterfaces.dllと同じように登録します。こんな感じで登録できます。MapWinControlタブに登録6個のツールが登録されているはずです。ここまで準備OKです。designをして、Codingします。eventを利用するには、必ずSendMouse~~をtrueにしてください。falseではeventを捕まえることができません。次に、ProjectionTreeViewも配置します。後は、TextBoxやもろもろを配置していきます。studioの操作ができると言う前提で端折ってます。Designが配置できれば、codingを始めていきます。作成時の処理まずは、ImportsとPrivate宣言しておきます。4612次に、参照の追加で必要なdll類を追加しておきます。Files¥MapWindow¥内のdllを追加します。追加すると、な感じになると思います。Subprogramの詳細については、commnetを見て下さい。重要なことは、測地・座標系のDatabaseはSQLiteでProjections.db3となっています。Databaseの読み込みやTreeViewの表示などは、すべてMapWindow.Controls.Projections内のmethodとpropertyを設定するだけで使うことができます。上記のcodeだけでも使えますが、もうちょっと手を加えてみます。ProjectionTreeViewの座標系を変更した時のeventを使ってProjectionMapも指定した座標系を表示するようにします。Subつぎに、ProjectionMapのCodingをします。Region最後に、の部分をCodingします。MessageBox.Show("Linkが開けません。MessageBox.Show("座標系コードが見つかりません。CODEを書き込んで、Databaseを検索して、その結果を表示しています。LinkLabelでspatialreference.orgのEPSG情報を表示します。Codingはここまでです。ここで重要なfolderをcopyしておきます。studioのprojectを作ったfolderのBin¥Debug¥にcopyします。保存して実行してみましょう。実行時の初期画面です。ProjectionTreeViewのJapanを展開しています。4612を表示しています。次に、ProjectionTreeViewの移動をしてみましょう。JapanのJDG2000平面直角座標IX系を選択します。ProjectionMapも同時に変更されます。Tabが表示されます。JapanのJDG2000平面直角座標IX系の詳細情報が表示されます。Tabを表示した場合、JapanのJDG2000平面直角座標IX系の詳細情報が表示されます。Tabを表示した場合、JapanのJDG2000平面直角座標IX系の詳細情報が表示されます。操作してみて下さい・。最後にMapWinGISのちょっとした話題提供として、MapWindowのdll類を使って、サクッとProjectionViewerを作成してみました。(「なんだよ、そんなの知っているよ」な方には申し訳ないですが。)事前にdllで必要なMethodやPropertyが設定されているので、Codingは非常に少なくてすみます。MapWindowをインストールすることで、LegendControl、MapWinGeoProcやMapUtilityのdllを使うことができますので、非常に強力なGISアプリケーションを作成することができます。MapWinGISについては情報量も多いのですが、その他のdllについては情報が少ないのが難点です。Sourceはあるので、なんとか解読していけますね。studio2008でも動作することができます。簡単に自前のソフトウェアにちょっとしたGIS機能を付け加えるには良いと思います。その他のexampleについては、MapWinGISのTutorialを見て下さい。sampleをアップしておきます。自分用のサンプルですので、バグなどがある可能性が高いので、原文のままの使用は避けてください。サンプルコードを使って、お使いのPCの不具合が生じても一切責任は持てませんので、あくまでも自己責任にて使用してください。upしたGISアプリケーションを作成することができます。Pluginで機能追加していけば良いようですが、日本語の情報が全くないんですね。現状では、機能がてんこ盛りで使いこなすには時間がかかりそうです。「だれかチャレンジしないかぁ?」と他力本願したとろで、本日のblogを終わります。水文水理解析ソフトウェアの販売セール後1日です。水文水理解析ソフトウェアの販売PythonでMySQLを使ってみる。4]PythonでGUIを試してみる。第1弾ExcelでPythonを使ってみる。ExcelでPythonを動かす。3]PythonでExcelを読み書きする。PythonでGeocodingする。2]Pythonで水文水理解析をやってみる。AB-WebLog.com.。