本日はツールの調査枠です。
HoloLensのアプリ開発ではMRTKだけではなく多くのツールを使用することができます。
Microsoftから提供されている[Microsoft Map-SDK for Unity(以下Map-SDK)]を調査していきます。
前回はMap-SDKでスクリプトから任意の場所を表示させました。
〇Map-SDKでピン止め
Map-SDKにはUnity座標ではなく表示しているマップと同様の座標(緯度・経度)に沿ってオブジェクトを表示しピン止めを行うことができます。
これはMap-SDKのExamples内[MapPinExamles]でデモシーンが提供されています。
デモシーンではアメリカの魚に関する障壁に関するデータでしたが、今回はこれを用いて任意の座標にピン表示を行います。
今回はMap-SDKの導入が完了しDevloperKeyなどの入力が終了している状態から始めます。
ここまでの構築は過去の記事を参考にしてください。
①[Map]オブジェクトの[Inspector]から[MapPinProvider]コンポーネント、[MapPinLayer]コンポーネントを追加します。
[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]にアタッチします。
これでピンを表示させるデータを指定できました。
④[MapPinLayer]コンポーネントを[MapPinProvider]コンポーネントの[Map Pin Layer]にアタッチします。
⑤プロジェクトウィンドウから[SmallMapPin]プレファブを[MapPinProvider]コンポーネントの[Map Pin Prefab]にアタッチします。
[SmallMapPin]プレファブはAssets/Microsoft.Map.Unity.Examples/MapPinExample/Prefabsにあります。
以上で準備が整いました。 Unityを実行します。
九州にピンが立ち文字が表示されるようになりました。
マップを拡大すると[Hakata]の文字が確認できます。
もっと拡大すると確かに九州新幹線博多駅にピン止めされていることが確認できました。
九州新幹線ほかの停車駅に関しても同様にピン止めが行われています。
以上で任意の場所にピン止めを行えました。
csvのデータを変えれば別のタイプの表示も行えます。