本日はツールの調査枠です。
MicrosoftからはMixedRealityToolkit以外にも多くの開発者向けのSDKが公開されています。
その一例として[Microsoft Map-SDK for Unity(以下Map-SDK)]を調査しています。
第一回ではMap-SDKを導入しました。
第二回からExamplesを読み解いています。
〇Exampleを読み解く
Map-SDKにはExamplesとしてサンプルシーンが同梱されており、Map-SDKを用いたデモを体験できます。
各シーンごとに[Map]オブジェクト内の[Map Session]コンポーネントの[Developer Key]を入力する必要があります。
この[Developer Key]はその1の導入の記事で紹介しています。
前回の記事では[City Tour]を見ていきました。
[City Tour]では立体的なマップを使ってシアトルの各所を巡る旅を体験できます。
その2では[HubExample]を見ていきました。
[HubExample]では航空写真と地図の表示の切り替え、気象データの表示、ジェスチャーを用いての地図のスクロールを見ることができます。
今回は[MapPinExample]を調査します。
〇MapPinExample
このシーンでは、カリフォルニアの魚に関する5,363点のデータセットを使用して、水域にある魚の回遊を制御するすべてのバリアーの位置を表示しています。
地図上にピン付けされてデータが表示されています。 AirTapで任意のピンを選択するとピン付近の地域へズームします。
地図上にはデータのピンだけではなく、川や入り江の名称が四角形のピンとして表示されます。
どちらのピンも地図上の緯度と経度に依存しており、地図とともに移動します。
マップ上のピンは[MapPinLayer]コンポーネントによって実現されています。 このコンポーネントはマップの現在のビュー内の[MapPins]またはクラスタを取得するために[MapRenderer] から照会され、表示されるすべての MapPinは、[MapPinLayer(Clone)] として[MapRenderer]のオブジェクトの子オブジェクトとして生成されます。
ピンに相当する[SmallMapPin]を指定しているのが[MapPinProvider]コンポーネントです。
[MapPinProvider]の[MapPinLayer]には[MapPinLayer]コンポーネントをアタッチします。
[MapPinPrefab]には表示するピンのプレファブを指定します。
[MapPinLocationsCsv]にはcsvファイルを指定します。 csvファイルの中身には[緯度],[経度],[地名],[数値データ]が記述されます。
これがピンの位置と表示されるデータになります。
[hierarchy]ウィンドウにはすべてのピンが配置され、地図上でレンダリングされている場所のピンのみアクティブな状態になっています。
ピンには[MapPin]コンポーネント[AlignToMap]コンポーネント、[ZoomToClusterMapPin]コンポーネントがアタッチされています。
[AlignToMap]コンポーネントは[Map]オブジェクトをシーンから取得しトランスフォームを自身のトランスフォームと同期させます。
[ZoomToClusterMapPin]コンポーネントはAirTapするとsee cref="ClusterMapPin"で指定されている向きにズーム、移動します。
以上がMapPinExampleでした。