cvx0017と申します。
以前、国土地理院タイルを使用した地形表示プログラム(OpenGLで3D)について投稿させていただきました。
国土地理院タイルとWindowsフォームとOpenGLで地形表示
今回は、同じく国土地理院タイルを使用した2D地図プログラムを紹介させていただきます。3D版とほぼ並行して作成していたものです。
WebでもJavaScriptでもない、C#でWindowsフォーム(NET6.0)なので使い道はちょっとアレですが、見ていただけると幸いです。
プログラムの実行方法を含む詳細は、後述するソース(プロジェクト)のフォルダにある「MapViewer_sample_github.pdf」をご覧ください。
ここでは、本プログラムの概要を紹介させていただきます。可能であれば、ソースもご覧いただき、ご意見等をいただけると幸いです。
プログラムの概要・動作環境
本プログラムは、設定ファイルに指定した地域の地図画像タイル(地図画像及び衛星画像)を国土地理院HPから自動的にダウンロードして表示します。
動作環境等はWindows11、Windowsフォーム(.NET6.0)です。Windows10(64bit)でも動作確認済みです。
本プログラムの実行には、.NET6.0の他、MSVCランタイムが必要です。この後の項目「ソース(C#プロジェクト)」の解説に従ってインストールしてください。
本プログラムは、国土地理院が公開している以下のデータを使用します。
- 国土地理院タイル
標準地図(任意のズームレベル)
写真(任意のズームレベル)
(必要なタイルが自動的にダウンロードされます。)
出典:国土地理院タイル(https://maps.gsi.go.jp/development/ichiran.html)
本プログラムは、国土地理院タイルを自動的にダウンロードしてローカルディスクに保存するため、インターネットを使用し、ディスク(プロジェクトフォルダの「bin/Debug/net6.0-windows/gsi」フォルダ)に書き込みを行います。本プログラムの実行により生じた損害に対しては責任を負いかねますのでご了承ください。
国土地理院が提供する各種データの使用にあたっては、国土地理院の定める使用条件に従ってください。
ソース(C#プロジェクト)
下記のGitHubからプロジェクトを取得してください。Visual Studio 2022のC#プロジェクトです。Visual Studio Community 2022(Version 17.2.0)で開発しています。
C++で作成した.NETクラスライブラリを使用しますので、Visual Studio Installerのワークロードで「.NET デスクトップ開発」の他に「C++によるデスクトップ開発」をインストールしておいてください。(実行のみの場合でもランタイムが必要です。)
プログラムの概要
設定ファイル(XML)で指定した地域を表示します。マウス操作で地図のスクロールとズームが可能です。
地図上には、経緯度とUTMのグリッドと、グリッド座標値をグリッドの交点と地図の端の両方に表示しています。また、地図の中心とマウス座標の情報を表示しています。(サンプルですので全部表示してゴチャゴチャしてますが。)
メニューから、座標グリッドの表示の有無と地図画像/衛星画像を切り替えることができます。下の画像は衛星画像を表示したものです。
C#で地図上に図形等を描画することもできます。
終わりに
ここまでお読みいただき、ありがとうございました。
サンプルプログラムでは、設定ファイルで任意の地域の表示が可能ですので、お試しいただけると幸いです。
失礼いたします。