CrossRoad

XRを中心とした技術ブログ。 Check also "English" category.

マップ機能をレーダー表示するスマートフォンアプリを作ってみた

最近紹介しているEven Realities G2は、メガネに情報を表示できます。

公式アプリではNavigateという機能が入っており、自分の進行方向に合わせてドット絵みたいに表示された地図が回転します。

以下は公式HPの紹介画像ですが、実際の動作もこんな感じです。

Navigate feature on Even Realities G2 (引用:ディスプレイ搭載スマートグラス&AI|Even G2)

実際に使ってみたところ、Navigate機能の表示は自分の向いている方向と局所表示される道路が一致しないため、少し使いづらいという問題があります。

ところで、ドラゴンボールの「ドラゴンレーダー」名探偵コナンの「追跡メガネ」では、自分がレーダの中心、対象場所である光点を中心に移動させるという仕掛けがあります。

An Example of Dragon Rader (引用:https://x.gd/e34om)

Even G2にもこの仕組みが合いそうです。ただ、Even G2に画像やセンサ情報を渡す方法がわからないため、G2の公式SDKが出てから対応しようと思います。

今回は完成系のイメージを固めるため、Androidスマートフォンでレーダアプリを作ってみました。GitHub Copilotで構成を伝えて何度か調整することで動かすことができたので、作成方針や地図情報取得に使ったAzure Maps SDKについて解説します。

使用した環境
- Android Studio 2025.2.3
- Nothing Phone 3a (Android 16)

1. レーダアプリの基本構成

このような構成にしました。

  • 初期画面はレーダー
  • 目的地設定で地図を表示し、地図から目的を選ぶとレーダに光点がマッピングされる
  • レーダの縮尺は変更可能。100m~20km四方まで切り替え
  • スマートフォンの向きによって光点が動く (=レーダーの上側に光点が表示されるように進めば、光点である目的地に到着できる)
  • 位置を決めるための地図はAzure Maps SDKを使う

AzureクレジットがあったのでAzure Maps SDKを選択しましたが、Google Maps APIでも同様の構築は可能です。

2. Azure Maps SDKの設定

Azure Portalを開いて、検索バーで「Azure Maps」と検索すると、サービスの中で「Azure Mapsアカウント」が表示されます。

これを選択して、リソースグループを指定して設定していきます。

リージョンはEast USしか選択できなかったです。また、価格はGen2にしました。

こちらの記事によると、Gen2が推奨されているようです。

Azure Maps の料金体系は、利用した分だけ課金される従量課金制となっています。 Azure Maps Gen1 と Azure Maps Gen2 の 2 つの価格レベルが設定されていますが、 Gen1 は旧世代の価格体系であり、サービスに制限や、コストが劣る場合があるため、 Gen2 を選択することが強く推奨されています。

全部設定してリソースをデプロイすると、このような画面が表示されます。ここで「認証の表示」を選択すると、API Keyを確認できます。これを開発するアプリに組み込みます。

Azure Maps SDK

なお、Azure Maps SDKはPython, C#, Java, Webで使うことができて、それぞれの言語による使い方が書いてあります。  

今回はAndroidアプリですが、Android SDKは廃止されているようなので、WebViewで取得、レーダのリアルタイム描画をしやすくするためにAndroid nativeのJavaで実装しました。

learn.microsoft.com

3. 動作確認

こんな形で、場所を指定すると光る球が表示されます。縮尺を拡大すると光る球が中心に近づき、縮尺を小さくすると光る球が中心から遠ざかります。


光る球が自分の現在位置から500mにある場合: - 縮尺1km表示であれば、円の真ん中付近に移動 - 縮尺10km付近であれば円の中心に近づく - 縮尺が300m表示だと、円の外周についたままになる

具体的な地図を提示できないので説明が難しいですが、現在位置から東、南、北西付近に適当な座標を設定して3つの光の球を表示し、それらが実際の地図の方角、距離が概ね合っていることを確認しました。

こんな感じで動きます。

Rader app example on Android

4. おわりに

今回作ったアプリについてです。実際に使ってみると、地図の道路上を現在位置が移動するという、Google mapのような一般的表示の方がわかりやすいです。

ただ、ドラゴンレーダーや追跡メガネのように方角と距離を頼りに目的地にたどり着くという面白さがあります。

冒頭に書いたように、グラス向けにはこういう表示がよい気がするので、あとはSDKが使えるようになったらEven G2に移植して試してみたいと思います。