鉄骨に含まれる磁力をセンサーで読み取って現在地を推定 Yahoo!地図アプリは、以前から全国各地の主要な駅の構内や地下街の屋内マップを収録していたが、屋内での測位精度が良くないため、それらのマップ上ではナビゲーションを行うことはできなかった。今回、地磁気による屋内測位を導入したことにより、従来よりも高精度な測位が実現し、それにともなってナビゲーションも提供開始した。 同アプリの企画を担当している西田克己氏（メディアカンパニー生活メディア事業本部事業開発2部開発1チームリーダー）によると、地磁気測位を搭載するプロジェクトがスタートしたのは2015年の3月だという。 「地磁気を利用した屋内測位は、フィンランドのIndoorAtlas（IA）社の技術をもとにしたものです。ただし、すでに完成した技術をそのまま使ったわけではなく、IA側と協議しながら駅などの複雑な場所で測位精度を高めたり、きちんとしたSDK（ソフトウェア開発キット）の形にしたりする作業を、両社で協力しながら開発を進めました。」（西田氏） 地下空間の構造物を支える鉄骨から発生する磁力をスマートフォンの磁気センサーによって読み取り、現在地を推定するためには、あらかじめどのような磁場が発生しているのかを測定して、クラウドのデータベースに登録しておく必要がある。このような場所に紐付く磁気情報データは一般的に「フィンガープリント」と呼ばれている。このフィンガープリントの計測を行ったのが、森川宗氏（メディアカンパニー生活メディア事業本部事業開発2部開発4チームリーダー）だ。 「今回のプロジェクトをスタートするにあたって、事前にIAでどのようにデータを取って、どのように測位できるのかをテストしてみたところ、予想以上に簡単にデータを取得することができて、しかも測位の精度も良いという結果になりました。これなら駅構内や地下街などの広いエリアにおいても、それなりの正確性を持ってサービスを提供できるのではないかという期待感を持ち、『これはやるしかない』ということでプロジェクトがスタートしました。」（森川氏） 屋内測位を実現する技術としては、最近はBLEビーコンによる測位も注目されているが、ビーコンを設置するには施設管理者に依頼する必要があり、設置の工事費用なども必要となってしまう。IAの技術は基本的にインフラの設置が不要のため、導入が早いというメリットもある。

フィンガープリントのデータを測定してクラウドに登録 フィンガープリントの取得方法は、まず事前準備として、計測する屋内地図の画像をクラウドに登録する。登録の際には、画像と緯度経度の紐付けをあわせて行う。 その上で、現地に行って計測アプリを起動し、計測対象の屋内地図を表示させる。地図上をタップしてスタート地点およびゴール地点を指定してから、指定したスタート地点に移動する。次に、計測開始ボタンをタップしてから、すぐに歩き出す。指定したコース上を、一定速度を保ちながら歩くと、歩行中に地磁気やWi-Fiなどの情報が記録される。 ゴール地点に到達したら計測終了ボタンをタップして、記録されたデータをクラウドにアップロードすれば計測は完了だ。 「計測中は端末の高さを一定に保ち、できるだけ姿勢を固定してまっすぐに歩くようにしています。基本的に計測は1回だけで済みますが、まれに失敗することもあり、その場合は同じところを計測し直すこともあります。以前、実験的にWi-Fi測位用のフィンガープリントを取得したときは、1地点に1分間くらい立ち止まる必要があり、人が多いエリアで立ち止まることは難しかったのですが、地磁気を使った今回の場合は立ち止まる必要がないので、こちらのほうがずっと計測がしやすいです。」（森川氏） 道幅が広い場合は約1mおきに、端から端までまんべんなく計測する。例えば幅が7～8mくらいの通路の場合は、8回ほど行ったり来たりしてデータを取る。 今回、地磁気による屋内測位とナビを提供するのは、東京駅、新宿駅、渋谷駅の3駅の構内（改札外）と地下街。世界でも有数の巨大な屋内空間を持つこれらの駅において、すみずみまで歩き回って計測するのはかなり大変だったそうだ。 「特に工事中のところが大変で、計測した翌週には工事が終わってしまったというケースもあり、その場合は再計測に行きました。ただ、Wi-Fi測位の場合は、店舗の入れ替わりとともにアクセスポイント（AP）の無線LANルーターが変更されたり、APそのものが無くなってしまったりするケースがありましたが、地磁気の場合は一度計測してしまえば経年変化は小さいので、メンテナンスの手間は減ると思います。」（森川氏）

電車の通過による磁場の乱れが測位精度に影響 このように森川氏が計測したデータを活用してアプリ開発を行ったのが、野田祐希氏と前坂岳氏（両氏ともスマートデバイス推進本部大阪開発室開発2部開発2チーム）だ。野田氏と前坂氏は、IA社のエンジニアと密に連携を取りながら屋内測位の精度を高めるとともに、アプリに地磁気測位の機能を組み込む作業を行った。測位エンジンそのものはIA側がチューニングするが、それを具体的に形にするには、ヤフーのエンジニアもさまざまな試行錯誤を行う必要があった。 「もともとIAはショッピングモールなど、比較的狭いエリアで使うことを想定して開発された技術で、本来は処理速度の関係で1のマップ上に磁場の情報をすべて登録する仕様になっています。しかし、東京駅や新宿駅などの地下はショッピングモールに比べるとかなり広いため、今回は複数のマップに分けざるをえませんでした。この場合、あるマップから隣のマップに切り替わるときに正確な測位ができるまでに時間がかかる場合があり、精度が悪くなる原因となってしまいます。私たちは、それがスムーズに切り替わるようなチューニングを行いました。」（前坂氏） もう1つ苦労したのが、屋内のある地点において、磁場が乱れるスポットが発生したことだった。 「磁場が乱れる主な原因は電車の通過です。あるマップから隣のマップに切り替わるときに正確な測位ができるまでに時間がかかる場合があり、精度が悪くなる原因となってしまいます。このような地点では、GPSやWi-Fi測位の使用に切り替えるようにしたのですが、どの程度の誤差で切り替わるようにするか、その辺のチューニングが難しかったですね。IA側の担当者も、このような巨大な地下空間でサービスを提供するのはこれまであまり例がなく、『チャレンジングだ』と言っていましたし、今回の事例をどんどんPRしていきたいと話していました。」（野田氏） このほか、Androidアプリということで、端末ごとに応じたチューニングも苦労したという。 「Androidの場合、『この機種を押えておけばいい』という端末がなく、さらに各端末のセンサーの性能はそれぞれ大きな差があり、中にはジャイロセンサーがない端末もあります。このように端末ごとにセンサーから得られる値が異なる中で、均質な測位結果が得られるようにチューニングするのも難しかったです。」（野田氏） ちなみにIA側では、推奨機種としてGoogleの「Nexus 6」や「Nexus 5」を挙げている。また、野田氏によると、IAで屋内測位の精度を上げるコツとしては、立ち止まるよりも屋内をできるだけ歩いたほうが、磁気データが多く取得できるので精度が良くなるとのこと。 なお、現在のところ、iOS版では地磁気による屋内ナビは提供開始されていないが、こちらについても開発中とのことだ。