「MapWinGIS」を使ってC#でshpファイル表示する

はじめに

「MapWinGIS」はオープンソースで、C++ベースで開発された、地理情報システムのctiveXコントロールおよびアプリケーションプログラマインターフェイス (API) です。「MapWinGIS」は、WindowsフォームベースのアプリケーションにGIS およびマッピング機能を提供するために使用されます。

「MapWinGIS」を利用して、Visual Basic、C#、Delphi、または ActiveX をサポートするその他の言語で Windows フォームに追加して、地理情報システムが開発できます。

以前より、MapWinGISの存在は知っていましたが、C++ベースで開発されていることから、開発対象から外していましたが、C#ベースで開発されている「Dotspatial」や「SharpMap」の処理の遅さより、改めて「MapWinGIS」試してみようと考えました。

「MapWinGIS」のインストール

「MapWinGIS」を使用するには、「MapWinGIS」のインストールが必要ですが、C#で開発するには、Visual Studioが、64bit版ActiveXコントロールに対応していないとのことなので、32bit版をインストールします。

MapWinGISのサイトにVisual Studioが、64bit版ActiveXコントロールに対応していないとのこと

なので、MapWinGIS-only-v5.3.0.0-Win32-VS2017.exeファイルをダウンロードします。

ダウンロードしたファイルをPCにインストールします。

ツールボックスにActiveXコントロールに参照の追加

フォーム画面を作成し、ツールボックスのメニューからアイテム選択をクリックします。COMコンポーネントから、「MapWinGIS」のActiveXコントロールを選択します。
※表示されていない場合は、参照ボタンをクリックし、「MapWinGIS」がインストールされたフォルダから、「MapWinGIS.ocx」ファイルを選択します。

Mapコントロールの追加

フォーム画面に、Mapコントロールの追加を貼り付けます。

コントロールの追加を貼り付けと同時に、ソリューションエクスプローラーの参照に、「AxMapWinGIS」、「MapWinGIS」が追加されます。

shp取り込み画面

shp取り込み画面イメージです。基盤地図情報からダウンロードした坂出市の建築物の図形データ(約22万5000ポリゴン)ですが、感覚的に読み込み速度は1秒くらいでした。「QGIS」でも試したところ2秒~3秒なので、以下に速いかが分かります。

まとめ

「MapWinGIS」でshpファイルを読み込みましたが、メチャメチャ速いです。
youtubeでも「MapWinGIS」と「QGIS」の比較動画が上がっていましたが、「QGIS」よりも早い結果でした。やはり、これがC++とC#の違いでしょうか…

GISで処理速度の速さは、GISエンジンの選択の重要な要素のひとつなので、今後も「MapWinGIS」いついて引き続き、開発検証していきたいと思います。

Print Friendly, PDF & Email

シェアする

  • このエントリーをはてなブックマークに追加

フォローする