ヤフー株式会社は、日本最大級のポータルサイトであるYahoo! JAPANを始め、eコマース、検索、ニュース、会員サービス事業など約100のサービスを提供し、約8,000万人が利用する日本最大級のインターネットサービスプロバイダ―です。Yahoo! JAPANの多くのサービスは、地図データを使用してさまざまな便利な情報をユーザーに提供しています。その中でも、天気予報と防災情報を提供するYahoo!天気・災害(https://weather.yahoo.co.jp/)では、正確な気象防災情報をユーザーに分かりやすく提供するために、精度が高く使いやすい地図データに対する需要が高まっていました。
取材:Yahoo!天気・災害、企画・ディレクション 諸岡 達也様、開発リーダー 梶原 章弘様
導入の目的
Yahoo!天気・災害は、スマートフォンアプリとWebで利用できます。「Yahoo!天気」アプリでは、全国各地の天気予報や雨雲レーダー、台風の進路などの気象予報を提供することによってユーザーの快適な日常生活に貢献しています。「Yahoo!防災速報」アプリは、地震や豪雨などの災害情報をプッシュ通知でいち早く知らせることでユーザーが身の安全を守る行動を支援しています。災害マップでは、アプリユーザーの投稿やSNS投稿を地図上に表示することで、どこでどのような災害が迫っているかをリアルタイムで把握するとともに、災害の種類に応じた避難場所も表示しているため避難行動の手助けになります。
従来、Yahoo!天気・災害の基盤となる地図データは、自社運用のタイルサーバーで配信され、地図画像はスタティック画像配信サーバーで配信されていました。しかし、その運用および保守コストは増大の一途をたどり、何かしらの対策が必要とされていました。
「Yahoo!天気・災害は、それぞれ専用のアプリとWebで利用できます。サービス配信にあたっては、まず、基盤となる地図データを配信するためのタイルサーバーが必要です。これは、地図全体をタイル単位に分割してREST APIでデータを取得し、クライアント側にデータを地図として表示するためのものです。そして、雨雲を表現するためにタイルサーバーから配信された雨雲データを地図上に投影します。プライベートクラウドで管理していたこの2つのサーバーの保守作業と運用コスト、特にピーク時のコストとトラフィック管理は大きなボトルネックでした」梶原 章弘 氏(Yahoo!天気・災害、開発リーダー )
また、地図データは、Yahoo! JAPAN全体で共通のデータとして社内の専任マップチームによって管理されていました。全社共通の標準地図データにより、サービス間での高い統一性が確立されていましたが、新規開発や変更・カスタマイズが必要な際はマップチームへの依頼やスケジュールなどの調整が必要になり、開発の効率性と生産性に歯止めがかかっている状態でした。
「ベースマップのスタイルはマップチームの管理下にあったので、天気・災害コンテンツに適した地図を用意することが困難でした。また、従来のスタイルシートはExcelファイルベースで作成されていたので、膨大な量のレイヤーを英数字や符号で記述する必要がありました。当然、その読み方を習得しないと最終的な仕上がりをイメージできませんでしたし、地図上のどのデータがどのレイヤーを指しているかをすぐに判別することも困難でした。Excelの設定ファイルを地図に反映するのにも時間がかかっていました」諸岡 達也 氏(Yahoo!天気・災害、企画・ディレクション)
導入の経緯
そのような中、マップチーム主導でYahoo! JAPANの地図プラットフォームをMapboxに切り替えるという方針が決定されました。この移行において、今までプライベートクラウドで管理されていた大規模な配信サーバーはMapboxTiling Service(MTS)で置き換えられ、Yahoo! JAPANが社内で管理するサーバーの数はゼロになり、インフラストラクチャの保守コストも実質ゼロになりました。MTSは地理空間データをベクタータイルに変換し、データの変化と共にマップを更新します。また、地理的冗長性を維持し、高速かつ低遅延のキャッシュネットワークを提供して、あらゆる地域でのスケーリングを可能にします。
「MTSの実装は私たちバックエンドチームが担当しました。これは、白地図の上に雨雲のベクターデータを重ねるといった処理です。平行して、アプリとWebをそれぞれ更新する必要があったので、アプリチームがYahoo! JAPANの内製ライブラリをMapbox SDKに置き換え、WebチームがYahoo!JAPANの内製ライブラリをMapbox GL JSで置き換えるという作業を行いました。プロジェクト開始からMapboxプラットフォームでの地図配信開始までの期間は、約6か月でした。その後、3か月ほどかけて各種サービスの統合を五月雨式に行って作業が完了しました」梶原 氏
「MTSは高度なスケーリングに対応しているので、災害時に地図を局所的にズームして詳細な情報を表示するといった処理も負荷なくこなすことができます。災害時にはトラフィックが急増するので、この機能は非常に頼りになります。」梶原 氏
「また、Mapbox StudioのUIは非常に直観的なので、今までExcelで行っていた作業が大幅に効率化され、最終的な仕上がりを把握するのも容易になりました」諸岡 氏
導入の効果
前述のとおり、Mapboxへの移行の最大のメリットは、非常に高かったタイルサーバーの運用コストがゼロになったことです。また、同様にコストの高いスタティック画像配信のコストもほぼゼロになりました。地図データの最適な保持と配信はMapbox側ですべて行われるので、Yahoo!天気・災害チームは、より優れたサービスと各サービスにより適した表現の開発に注力できるようになりました。2021年10月のInternet Explorer 11のサポート終了に伴い、地図データがラスターデータからベクターデータに切り替えられたことも大きな追い風になりました。GISのデータモデルでは、ベクターデータはオブジェクトを点、線、面(ポリゴン)の3つの要素で表現されます。ベクターデータを使用することにより、同じ地形でも利用目的によって図形の表現を柔軟に変更することができます。そして、ベクターデータは明瞭な境界を持つ地物の表現に適しています。
「地図データを表示する上での基幹サービスはMapbox側ですべて処理されるので、私たちはユーザーにより適した表現を深く検討することができるようになりました。例えば、今までは雨雲を表示するときに海岸線の表示が雨雲の画像で隠れてしまうことがあったのですが、ベクターデータへの切り替えが行われた結果、沿岸部の境界をはっきりと表示することができるようになりました。明瞭な海岸線と雨雲の正確な位置を表示できるようになったので、沖縄など島嶼部のユーザーにさらに正確な情報を届けることという長年の悲願を達成できました」梶原 氏
将来の展望
「Yahoo!天気」アプリは5,400万ダウンロードを誇る人気のアプリです。Mapboxに移行したことにより、膨大な数のユーザーにリアルタイムで正確な気象データを従来よりも安定して提供することが可能になりました。災害サービスでは、ピーク時のトラフィックに関する懸念が払拭されました。従来のサービス配信の安定性が増したことにより、Mapbox上での新たなサービス提供に向けた可能性が大きく開かれました。
「最近、Yahoo!天気アプリ内で『みんなの天気』に地図を追加しました。このサービスでは、アプリユーザーからの投稿を通して、天気や季節に関する現地のリアルタイムの状況を詳しく知ることができます。また、停電情報(https://typhoon.yahoo.co. jp/weather/poweroutage/)サービスも新たに追加されました。今後は3Dのハザードマップを始めとして、ARによる浸水シミュレーションや避難ナビゲーションといった新しい表現とサービスを提供できればと思っています」諸岡 氏
Mapboxを利用することで現在地に基づいたARコンテンツを表示することが可能になります。例えば、Mapboxが提供する現在位置周辺の標高データを利用して、AR KitやARCoreを用いて災害時の浸水状況をARで表示することが可能になります。また、航空機の飛行ルートなど、さまざまなアニメーション表現も可能なので、表示対象のポイントを事前にタイル化することによって、より複雑なアニメーションを各プラットフォーム共通で滑らかに表示できるようになると考えられます。まさにMapboxとYahoo! JAPANの組み合わせがもたらす可能性は無限大です。
「優れた機能向上が実現すると新しい欲求が生まれます。現在、MTSのパブリッシュ処理に1.5分から2分かかりますが、Yahoo!天気・災害では5分間隔でデータ表示を更新しています。雨雲コンテンツを今より30秒でも早く反映できれば、ユーザーに提供できる安心と安全のレベルが向上します。将来的には、MTSサーバーが日本国内にも配置されると聞いているので、サーバーへのアップロードやパブリッシュ処理に要する時間が短縮され、冗長化による信頼性が向上することを強く期待しています」梶原 氏