iRIC上で地理院タイルをダウンロードして結合するソルバーを作ったはなし

# はじめに
これはiRICソフトウェア上で動くプログラムです。
iRICをインストールしていない方はHPからダウンロードしてインストールしてください。

https://i-ric.org/

# どんなソルバー

iRICでは背景画像としてインターネットから[地理院タイル](https://maps.gsi.go.jp/development/ichiran.html)を取得して表示することができますが、インターネット環境が無い場合や速度が遅い場合、セキュリティで弾かれている場合はうまく使えません。

これはそんな問題を解決すべく作成したソルバーで、地理院タイルをiRIC上でダウンロード・結合、位置情報ファイルも作成することで、**オフライン環境などでも表示できる背景画像を作成することができます。**

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2626673/7a58e4ca-9780-0d90-4958-e21a031077b8.png)

# インストール方法

## 1.ソルバー一式をダウンロード

以下のリポジトリで配布しています。

https://github.com/starfieldKt/GSITileStitcher/tree/main

ページ右側の[Releases](https://github.com/starfieldKt/GSITileStitcher/releases)から最新バージョンを選択し、`GSITileStitcher_vx.x.xxxxxxxx.zip`をダウンロードしてください。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2626673/3df449eb-437c-046b-1064-0ba22cfc1599.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2626673/8e6c7b4a-be5d-1bd7-71ad-0c4f59307b7f.png)

ダウンロードしたzipファイルは解答しておきます。

## 2.iRICのフォルダにソルバー一式を移動する

解答した`GSITileStitcher_vx.x.xxxxxxxx.zip`を以下のディレクトリにフォルダごと入れてください。
`IRICROOT`はiRICをインストールしたフォルダ（デフォルトで`C:\Users\user1\iRIC_v4`） です。

```
IRICROOT\\private\solvers
```

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2626673/ed34c4ee-a138-99a1-eacd-fa6b70a5a8ee.png)

インストールはこれで完了です。

iRICを起動してソルバー選択画面に「地理院タイル(写真)取得結合ツール」があれば成功です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2626673/76c266e3-08cd-a13e-ba1a-7aed370c114f.png)

# 使い方
使い方は簡単で4ステップで画像を生成することができます。

1. iRICに座標系を設定
1. ダウンロードしたい範囲に格子を作成
1. 計算条件を設定
1. 実行

## 1.iRICに座標系を設定

まずはiRICを起動して「地理院タイル(写真)取得結合ツール」を選択し新規プロジェクトを立ち上げてください。
プロジェクトを立ち上げたらウィンドウ右下の「座標系:(未設定)」をクリックして座標系設定ウィンドウを開きます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2626673/e23be4ae-298e-7844-b42d-e8995d5bf414.png)

画像をダウンロードしたい範囲に適した座標系を選択します。
現在はJGD2011の平面直角座標系の1～１９系のみ対応しています。

検索欄に`jgd2011`と入力すると探しやすいです。
今回は例とし12系を選択します。

選択したらOKを押してください。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2626673/e2afd97a-1e59-72e8-c25c-fc86c431be4c.png)

問題なく設定できていれば右下の座標系が選択したものになっているはずです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2626673/dc11137e-fc5e-f44f-f4e5-2cc2eb2e55d1.png)

## 2.ダウンロードしたい範囲に格子を作成
このソルバーは格子のある範囲をカバーするようにタイルをダウンロードするので、ダウンロードしたい範囲に格子を作成します。

:::note
**Tips**
* 新規プロジェクトは非常に大きい縮尺で座標(0,0)付近を表示しています、背景画像(インターネット)を表示してもどこにいるかわかりにくいのでまずは縮尺を1/3,000,000くらいにすると見つけやすいです
* 格子を作る際は「[矩形領域の格子を作成](https://iric-gui-user-manual.readthedocs.io/ja/v4_jp/04/05/01_05_rectangular_region.html)」機能を使うとやりやすいです
* 格子点の数は少なくて問題ありません(最悪4つあればいいです)
* 逆に細かい格子を作ると処理が重くなるので非推奨です
* すこし大きめの範囲に格子を作るのがコツです
:::

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2626673/d604a25f-84d9-86f6-8df2-eb3772bc6efd.png)

## 計算条件を設定
メニューバーの「計算条件」>「設定」から計算条件ウィンドウを開き計算条件を入力します。

| 計算条件 | 説明 |
|:-|:-|
| EPSG(座標系)  | ステップ1で選択した座標系と同じものを選択してください。  |
| zoomレベル  | ダウンロードするタイル画像のzoomレベルを指定します。<br>値が大きいと細かい解像度の画像です。  |
| タイル画像の出力先  | ダウンロードしたタイル画像を保存するフォルダを指定します。<br>ソルバ実行時に中身を一度削除するので大事なファイルが入っているフォルダは絶対に選択しないでください。  |
| 結合した画像の出力名  | タイルを結合した画像のファイル名と保存先を指定します。<br>拡張子は不要です。  |

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2626673/3a49ad8e-59f1-3070-49ff-73c79b33b52f.png)

## 4. 実行
プロジェクトを適当な場所に保存して、計算を実行します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2626673/f4f87c9c-f0dc-b735-d6c0-3322437f717a.png)

計算が無事終了すると指定した場所に画像と位置情報ファイル(jgw)が出力されています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2626673/2756d2c8-35a1-0071-8dc4-cb1c93cdb165.png)

この画像を背景画像として読み込めばオフラインでも以下のように表示することができます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2626673/297adb91-99c6-fd96-6889-8ecd872b7895.png)

# あとがき
短期間でぱっと作ったのでおそらくバグがあると思います。
（例えば画像が無い箇所がある場合に結合がどうなるか考慮してないなど）

現在は地理院タイルの写真のみ対応していますが、pythonコード中のURLを変更すれば標準地図などのタイルにも対応可能なはずです。

コメントやissueでご指摘お願いします。

MITライセンスなので改変等はご自由にお願いいたします。
ただし、ダウンロードする地理院タイル自体は国土地理院様のものなので[国土地理院コンテンツ利用規約](https://www.gsi.go.jp/kikakuchousei/kikakuchousei40182.html)に従ってご利用ください。


# 出典等
この記事で使用している航空写真は国土地理院の地理院タイルを加工したものになります。