QGIS 3.34 3D Tiles をとりあえず試してみる

# はじめに
QGIS 3.34では3D Tilesが読み込めるようになったとのことなので、「とりあえず表示できればおｋ👍」というところまで試してみました。

https://www.mierune.co.jp/blog/posts/7mnywf1jkz?lang=ja

https://plugins.qgis.org/planet/tag/3d%20tiles/

# 試す
以下の解説が非常に参考になりました。

https://www.lutraconsulting.co.uk/blog/2023/11/16/3d-tiles-in-QGIS/

## PLATEAUを表示してみる
PLATEAU配信サービス（試験運用）でPLATEAUの3D都市モデルが配信されているので、それをまずは表示してみます。

以下のリポジトリに掲載されている中から今回は`建物モデル（渋谷区）　テクスチャなし`を利用します。
対象のモデルのURLをコピペしておきます。

https://github.com/Project-PLATEAU/plateau-streaming-tutorial/blob/e4f5708633d0a62233b8b02a6f9340f50e120556/3d-tiles/plateau-3dtiles-streaming.md

![PLATEAU配信ページリンク.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2930990/e56a0aa9-e742-7a43-b6fc-bb0561bebb0a.png)


※最新は下記リンクのものですが、[shi-worksさんのポスト](https://twitter.com/shi__works/status/1721823889079284040)で言及されているように、現時点ではQGISでうまく表示ができません。

https://github.com/Project-PLATEAU/plateau-streaming-tutorial/blob/main/3d-tiles/plateau-3dtiles-streaming.md

<br>

まず、データソースマネージャーを開き、`Scene`のタブを選びます。

![データソースマネージャー開くボタン.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2930990/8449c9ce-a97b-510a-5b7f-458b6d2dc63a.png)

![データソースマネージャ_—_Scene.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2930990/5bb7a72e-2228-c53c-e452-79946a97f458.png)

<br>

次に、`新規`ボタンをクリックして建物モデルのURLを登録します。
キャプチャのように、先程コピペしておい建物モデルのURLを貼り付けます。

![タイル化シーンの接続_と_データソースマネージャ_—_Scene-2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2930990/69e19666-0788-600d-71d9-c4f8a6cc46b2.png)


接続を`OK`して、`追加`をクリックすると下のキャプチャのようにレイヤとして追加されます。
画面右側の`ブラウザ`の`Scene`にも追加され、登録した建物モデルはこちらから利用できます。

![スクリーンショット 2023-12-11 20.03.40.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2930990/ed7dbd4b-5894-c2ec-877b-f3cafac24f2f.png)

`ビュー`→`3Dマップビュー`から3D表示してみます。
表示できましたー👏　（3Dでリッチな感じを出したかったので、テクスチャありで試せばよかった…）

![スクリーンショット 2023-12-11 20.25.55.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2930990/551be339-b770-0111-c316-60c188dc9fe5.png)


## Google Photorealistic 3D tilesを表示してみる
Google Photorealistic 3D tilesはコレ↓のことです！

https://cloud.google.com/blog/ja/products/maps-platform/create-immersive-3d-map-experiences-photorealistic-3d-tiles

<br>

:::note warn
後述の方法でCesium ionプラグインとAPIを利用した方法を両方試しましたが、どちらも表示できませんでした…。
以下、「試したけどできなかった」記録となります…。
（こうやればできるよ！のコメントいただけると嬉しいです🥹）
:::

<br>

[Cesium ion](https://cesium.com/platform/cesium-ion/)（3D Tilesデータ配信等のサービス）を通じて表示できるとのことなので、Cesium ionに登録＆QGISに[Cesium ionプラグイン](https://plugins.qgis.org/plugins/cesium_ion/)を入れます。

Cesium ionプラグインをインストールする際、初回はCesium ionの認証等が必要になります。下記のYouTubeわかりやすかったです！

<iframe width="560" height="315" src="https://www.youtube.com/embed/7ipjZ8_LCMk?si=HZfAv01nkJSKsG6W&amp;start=304" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe>

<br>

次に、３Dタイルを表示する前に、２つ追加で設定を行います。
１つ目はQGIS自体の設定を変更し、ネットワークキャッシュサイズを増やします。
QGISの設定を開き、ネットワークタブを選択、キャッシュ設定の`サイズ`の数値について、デフォルトでは`262144`となっていたものを桁を増やして`2621440`とします。（268MBから2.68GBに変更された）

![オプション_—_ネットワーク.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2930990/4da5c18e-940a-ff39-0487-ba632af668b9.png)

<br>

２つ目はプロジェクトの表示範囲を設定します。これを設定して、3Dタイルの読み込み範囲を制限します。
プロジェクトのプロパティを開き、表示設定タブを選択、プロジェクト範囲を設定のチェックを入れ、`キャンバスの領域ボタン`をクリックすればOKです。

![プロジェクトのプロパティ_—_表示設定.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2930990/2beb2c04-028e-127e-d875-b6b565fb8328.png)

<br>

それでは、Cesium ionプラグインからGoogle Photorealistic 3D tilesを表示してみましょう。
レイヤに追加する際に以下の表示が出ますが、デフォルトトークンでよいです。

![トークン.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2930990/9b46e606-1330-b14a-5b64-244bfd02ba23.png)

<br>

「そうすると、こんな感じで表示できました！」という画像を貼りたかったのですが、読み込みが終わらずに表示できませんでした…。「とりあえず表示できればおｋ👍」まで行けませんでした😢
※とりあえず、Cesium OSM Buildingsは表示できたのでそのキャプチャを貼っておきます…。こうみると、PLATEAUの建物モデルはリッチですね。

![Cesium OSM Buildings.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2930990/cd8b5957-3776-9950-0d1f-cb4ace0b2645.png)

<br>

ちなみに、Google Maps PlatformのAPI KEYを取得して、PLATEAUタイルのようにSceneから登録することで表示させることも可能です。（こちらも、結局表示できずでした…。）

![APIの利用.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2930990/acc0c3f5-e620-7189-1693-d391fedd22cd.png)


# おわりに

Google Photorealistic 3D tilesが結局表示できずの記事になってしまっているのがすごく悲しい！
(悲しいので、[サンプルコード](https://developers.google.com/maps/documentation/tile/3d-tiles?hl=ja)で表示して動かして気を紛らわせました…。）

とは言うものの、試すのは楽しかったので問題なしです！
表現の幅（次元？）が広がりそう！