QGISで地球儀を作成してみた 🌏

:::note info
これは [MIERUNE Advent Calendar 2022](https://qiita.com/advent-calendar/2022/mierune) 2日目の記事です。
昨日は@Yfuruchin さんによる[「都道府県をぶりぶり膨らませてみた」](https://qiita.com/Yfuruchin/items/122e8c3b6f5547e48050)でした。
:::
# 1.  概要
2022年11月Twitterで [#30DayMapChallenge](https://twitter.com/hashtag/30DayMapChallenge) が流行ってました。
毎日テーマによる地図を作ってました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/168196/e6c68b37-2d8c-bee7-2c69-3f7bde4acd50.png)
5日のテーマが:flag_ua:ウクライナでしたけど、ウクライナ地図ではなく、ウクライナ色の地球儀を作ろうと思いました。
しかし、QGISでの地球儀関係のCRSを見たこと無くて、どうやって作ればいいのかを調べまして、方法の2つで試しました。



# 2. 方法① : Custom座標系を作る
地球儀系のCRSがQGISに元々ないので基本的に自分で座標系を設定するというの案。
作り方をこれに参考して日本語で簡単に説明する
https://bnhr.xyz/2018/09/21/create-a-globe-in-QGIS.html


### 2.1. 手順
　1. 世界国データをQGISをImport
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/168196/c7fc3a9b-5cc4-bf88-c4d9-5a2e29b20e6e.png)

　2. `Settings -> Custom Projections` で座標系を設定できる
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/168196/282f80d2-5038-1883-23cc-92a3878915b1.png)

　3. 座標系を以下のコードで設定できる。見た目的に地球儀の中心点を座標を記入しなきゃいけないので、札幌にしましょう
```python
# 札幌座標: lat = 43.066666 lon = 141.350006
+proj=ortho +lat_0=43.066666 +lon_0=141.350006 +x_0=0 +y_0=0 +a=6371000 +b=6371000 +units=m +no_defs
```
　4. Custom座標設定画面➕ボタンで座標系を追加し、以下の画像で設定する

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/168196/458e90a6-0a6e-e4fd-9219-64810f32e89d.png)

　5. OKにするとQGIS地図画面に戻りまして、右下のEPSG ボタンをクリックすると座標系を変更
　![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/168196/c7e29496-13bd-dd52-8e47-1a3bd927ab74.png)

　6. 座標系名を検索したら作った座標系を見つけられて、それを選択してOK
　![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/168196/7a911ed7-52f9-7caf-3876-8baff5c97555.png)

### 2.2. 結果
地図が無事に丸になりました :earth_asia:
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/168196/0a0ef73b-d448-682f-2f08-ed096e70dac3.png)

### 2.3. 課題
- 海の色を追加すると丸い地図しにくい…
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/168196/9fe32616-7b82-9aa6-f677-afbaf5db0e7d.png)

- 毎回座標系設定コードをコピペーすると面倒になって、Pluginで自動で作ればいい…
    - …検索したらPlugin ありそう！:arrow_down:

# 3. 方法② : Globe Builder Plugin
これに参考して日本語で簡単に説明する
https://github.com/GispoCoding/GlobeBuilder

基本的に方法①にベースして自動化で座標系を設定し、スタイルされる


### 3.1. 手順
1. Globe Builder PluginをQGISにインストール
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/168196/d987919b-fb40-1e15-7257-f5bd879b2534.png)

2. QGISのMenu -> Plugins -> Globe Builder -> Build Globe View にするGlobe Builderのパネルが表示されてます
![Capture d’écran 2022-11-21 à 13.50.14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/168196/f6bcfc81-b9ed-a08c-63a2-d2958cf73e6a.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/168196/2cfe76b5-64db-ccc9-177f-fe17055fe3ed.png)

3. 地球儀パラメーターをこれで設定する
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/168196/1c65b3f8-be94-1f9d-3a5b-96552c2fc29b.png)


4. 設定画面に続いて、下に行くと地球儀のスタイルを設定できる
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/168196/96aba76d-9ef7-5d72-4e22-da9e57a89a3c.png)

### 3.2. 結果
作られました！
国データがダウンロードされたみたいで、元にインポートしたの`ｗorld_countries_2020`レイヤーが不要になる
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/168196/c0c363c1-e261-10f8-b2a2-040b7c89a150.png)

### 3.3. 課題、調査点

キーウ(ウクライナの首都)を中心点にすると南米のポリゴンがへんな形になる
こちらの[Python Script](https://polemic.nz/2014/11/21/nz-azimuth-orthographic/)で解決できそうですけど、確認しないと。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/168196/1d116a4a-8f32-0b92-9afe-778c4b0eef5a.png)

とりあえず南部の問題を逃げるため中心点を西へ少しずらす

ブダペストに中心すると南米がチョウチョウになる…
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/168196/ba22d616-7957-96ba-947b-962eb2deedb8.png)

結局リヨンに中心点を設定するといけました
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/168196/b252d394-69cb-63f4-dbf0-eb1a1fca6513.png)


# 4. おわりに

MapをExportした後少し美調整して5日目のマップチャレンジが完了しました

<blockquote class="twitter-tweet"><p lang="en" dir="ltr"><a href="https://twitter.com/hashtag/30DayMapChallenge?src=hash&amp;ref_src=twsrc%5Etfw">#30DayMapChallenge</a> Day 5 - 🇺🇦Ukraine<br><br>No matters borders,<br>The world should unite people. <a href="https://t.co/Vp09R2bBkj">pic.twitter.com/Vp09R2bBkj</a></p>&mdash; bordoray (@bordoray) <a href="https://twitter.com/bordoray/status/1588789963646271490?ref_src=twsrc%5Etfw">November 5, 2022</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>


:flag_ua: :flag_ua: :flag_ua: **FIN** :flag_ua: :flag_ua: :flag_ua:

:::note info
明日の[MIERUNE Advent Calendar 2022](https://qiita.com/advent-calendar/2022/mierune)は@yuskesuzki@githubさんの番です！楽しみです
:::