【QGIS】OpenStreetMapのデータをQuickOSMから取得して表示する

## はじめに
この記事は#30DayMapChallenge2022 5日目の記事です。
テーマはUkraineです。
QGISを使ってウクライナの行政区域とポイントデータをOpenStreetMapから取得して地図上に表示してみます。

![image](https://raw.githubusercontent.com/tjukanovt/30DayMapChallenge/main/images/flyers/30dmc-2022.png)

https://30daymapchallenge.com/

## QGISとは
フリーでオープンソースの地理情報システム
ほとんどのUnixプラットフォーム、Windows、macOS上で動作する

## OpenStreetMapとは
オープンデータの地理情報を作るプロジェクト

## 事前準備

既にインストール済みのQGIS（バージョン3.22.3）を使います。
QGISを開きます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2667439/13c801a9-4ba2-7996-cb45-16f32c999cd1.png)


### QuickOSMインストール
シンプルなインターフェースで、OpenStreetMapのデータをダウンロードすることができるプラグイン、「QuickOSM」を使います。
上のメニューバーの「プラグイン」から、「プラグインの管理とインストール」をクリックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2667439/9a96bf75-332b-8142-89c0-a6f3e59e89c0.png)

QuickOSMを検索し、「インストール」をクリックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2667439/f8829ba1-c99d-d9e1-aa88-62a113705d2a.png)

インストールが完了すると、QuickOSMのアイコンが表示されるようになります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2667439/5168321a-6983-7abd-44ef-115f658422c3.png)


### プロセシング有効化

私の環境だと、このままQuickOSMを実行すると失敗しました。
プロセシングを有効にすることで解決しました。

以下はその記録です。

QuickOSMを実行したときのエラーメッセージは以下。
```
CRITICAL    Error in the logs, in the QuickOSM panel, copy/paste it and please report it to GitHub
```

QuickOSMのログは以下。
```
2022-11-05T23:41:29     CRITICAL    A critical error occurred, this is the traceback:
2022-11-05T23:41:29     CRITICAL    
2022-11-05T23:41:29     CRITICAL    base_processing_panel.py
2022-11-05T23:41:29     CRITICAL    エラー: アルゴリズム qgis:checkvalidity が見つかりません
```

qgis:checkvalidityとやらがなくてエラーになっているようでした。
[GitHubのissue](https://github.com/3liz/QuickOSM/issues/352)を見てみると、「processing toolbox」を見てみては？とありましたが、私の環境では見つかりませんでした。（初期状態だと無効化されているのかもしれません）

上のメニューバーの「プラグイン」から、「プラグインの管理とインストール」をクリックします。
「インストール済み」をクリックして、「Processing」のチェックボックスにチェックを入れます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2667439/3a04a68b-62c4-7ab1-f84e-20d9c9bbcda4.png)

すると、上のメニューバーに「プロセシング」が表示されるようになりました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2667439/afd52681-86ce-6768-ac52-0dd458079d04.png)

「プロセシング」＞「ツールボックス」をクリックします。
ベクタジオメトリを見ると、「有効性チェック（qgis:checkvalidity）」がありました。
私の環境だと、これでQuickOSMが動作するようになりました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2667439/b3b444cd-cceb-2752-1268-8999d0d0d31a.png)


## ウクライナの行政区を表示する
以下も試行錯誤して見つけた方法です。
これであっているかは調べても分かりませんでした。ご存知の方いれば教えてください。

OpenStreetMapでウクライナのリレーションを検索し、タグのKey-Valueを確認します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2667439/c963fecf-1d90-a2fb-b145-7459bba2debe.png)

QuickOSMを開き、Quick queryタブを開きます。
上に書かれていたKey-Valueを入力します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2667439/8fe46da5-3109-eaed-46a4-dfbb261d4a8b.png)

ウクライナの行政区のレイヤを追加できました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2667439/644e2893-7d1d-2051-d406-45edd868321f.png)


## ウクライナのポイントデータを表示する
今回は、マクドナルドの店舗を表示してみます。
以下を参考に、KeyとValueを入れてみました。
レイヤの範囲は、上で作成したウクライナの行政区域を指定しました。

https://wiki.openstreetmap.org/wiki/Eo:Tag:amenity%3Dfast_food

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2667439/8f1bfae0-c505-e15b-f059-238defea945c.png)

行政区域から外れたデータも表示されてますが・・
とりあえずウクライナのマクドナルドの店舗を表示できたようです！

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2667439/aaae9138-6f4d-aa30-6ad6-4aababffd3a9.png)

OpenStreetMapと比べてみると、ばっちり合ってました（そりゃそうだ）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2667439/1a04f862-6d91-971d-ab57-18b48be88cf2.png)


## 参考文献
https://openstreetmap.jp/

https://docs.qgis.org/3.4/ja/docs/training_manual/qgis_plugins/plugin_examples.html

https://www.openstreetmap.org/

https://wiki.openstreetmap.org/wiki/Map_features

https://docs.3liz.org/QuickOSM/