夜風のMixedReality

xRと出会って変わった人生と出会った技術を書き残すためのGeekなHoloRangerの居場所

Microsoft Map-SDK for Unity その9 任意の場所にピン止めを行う

本日はツールの調査枠です。

HoloLensのアプリ開発ではMRTKだけではなく多くのツールを使用することができます。

Microsoftから提供されている[Microsoft Map-SDK for Unity(以下Map-SDK]を調査していきます。

前回はMap-SDKスクリプトから任意の場所を表示させました。

redhologerbera.hatenablog.com

〇Map-SDKでピン止め

 Map-SDKにはUnity座標ではなく表示しているマップと同様の座標(緯度・経度)に沿ってオブジェクトを表示しピン止めを行うことができます。

 これはMap-SDKのExamples内[MapPinExamles]でデモシーンが提供されています。

redhologerbera.hatenablog.com

f:id:Holomoto-Sumire:20200905100849g:plain

 デモシーンではアメリカの魚に関する障壁に関するデータでしたが、今回はこれを用いて任意の座標にピン表示を行います。

 今回はMap-SDKの導入が完了しDevloperKeyなどの入力が終了している状態から始めます。

 ここまでの構築は過去の記事を参考にしてください。

  redhologerbera.hatenablog.com

f:id:Holomoto-Sumire:20201005083317j:plain

 ①[Map]オブジェクトの[Inspector]から[MapPinProvider]コンポーネント、[MapPinLayer]コンポーネントを追加します。

f:id:Holomoto-Sumire:20201005083636j:plain

[MapPinProvider]コンポーネントはMap-SDKのコアコンポーネントではなくExamplesで提供されているコンポーネントです。csvファイルを基にMapPinを表示させるコンポーネントです。 MapPinを表示させるためのデータを挿入するコンポーネントの例と言えます。

[MapPinLayer]コンポーネントは[MapPin]のコレクションを保持します。[MapRenderer]によって照会され[MapPin]を表示します。

 ②UnityのProjectウィンドウ内に[ShinkansenStation]という名のcsvファイルを作成し次のように入力します。

33.590049,130.419461,Hakata,0
33.370454,130.491013,Shintosu,0
33.320389,130.501227,Kurume,0
33.177722,130.492419,Chikugogunagoya,0
33.071283,130.488760,Shinomuta,0
32.942505,130.573614,Shintamana,0
32.790372,130.688370,Kumamoto,0
32.517601,130.634897,Shinyatsusiro,0
32.210518,130.428528,Shinminamata,0
32.089621,130.358238,Izumi,0
31.813573,130.312281,Sendai,0
31.583790,130.540709,KagosimaChuo,0

今回はデータとして九州新幹線の各停車駅を用います。 [緯度],[経度],[駅名],[属性]というようにデータを入力します。

例えば、博多駅の場合緯度33.590049、経度130.410461の位置に[Hakata]という名前で属性0であるとして指定しています。

③作成した[ShinkansenStations]csvファイルを[MapPinProvider]コンポーネントの[Map Pin Locations Csv]にアタッチします。

f:id:Holomoto-Sumire:20201005085241j:plain

これでピンを表示させるデータを指定できました。

④[MapPinLayer]コンポーネントを[MapPinProvider]コンポーネントの[Map Pin Layer]にアタッチします。

f:id:Holomoto-Sumire:20201005085622j:plain

⑤プロジェクトウィンドウから[SmallMapPin]プレファブを[MapPinProvider]コンポーネントの[Map Pin Prefab]にアタッチします。

[SmallMapPin]プレファブはAssets/Microsoft.Map.Unity.Examples/MapPinExample/Prefabsにあります。

f:id:Holomoto-Sumire:20201005090158j:plain

以上で準備が整いました。 Unityを実行します。

f:id:Holomoto-Sumire:20201005090638j:plain

九州にピンが立ち文字が表示されるようになりました。

f:id:Holomoto-Sumire:20201005090825j:plain

マップを拡大すると[Hakata]の文字が確認できます。

f:id:Holomoto-Sumire:20201005090936j:plain

もっと拡大すると確かに九州新幹線博多駅にピン止めされていることが確認できました。

f:id:Holomoto-Sumire:20201005091048j:plain

f:id:Holomoto-Sumire:20201005091137j:plain

f:id:Holomoto-Sumire:20201005091219j:plain

f:id:Holomoto-Sumire:20201005091303j:plain

f:id:Holomoto-Sumire:20201005091342j:plain

f:id:Holomoto-Sumire:20201005091430j:plain

f:id:Holomoto-Sumire:20201005091509j:plain

f:id:Holomoto-Sumire:20201005091547j:plain

f:id:Holomoto-Sumire:20201005091625j:plain

f:id:Holomoto-Sumire:20201005091700j:plain

f:id:Holomoto-Sumire:20201005091744j:plain

九州新幹線ほかの停車駅に関しても同様にピン止めが行われています。

以上で任意の場所にピン止めを行えました。

csvのデータを変えれば別のタイプの表示も行えます。