世界中で発生する地震活動を3D地球儀上でリアルタイムに可視化する「QuakeViewer3D」。USGS(アメリカ地質調査所)の公式オープンデータを統合したリアルタイム処理パイプラインの仕組みを解説します。
1. USGS GeoJSON APIのリアルタイムフェッチ
USGSは、過去1時間・過去24時間・過去7日間の地震データをGeoJSON形式で毎分更新・配信しています。
QuakeViewer3Dでは、Service Workerまたはバックグラウンドタイマーを用いて60秒ごとに自動ポーリングを行い、新着地震の検知差分(Diff)のみを抽出して通知音やポップアップアラートを発火させます。
2. 震源球体の3D配置とマグニチュード色相マッピング
取得したGeoJSONの座標(経度・緯度・深さkm)を、WGS84楕円体モデルに基づく三次元デカルト座標(X, Y, Z)に変換。
マグニチュードの大きさに応じて球体の半径を対数スケールでスケーリングし、震源の深さ(0〜700km)に応じて赤(浅い)〜黄〜青(深い)のグラデーションカラーを動的に割り当てています。
3. 現在地からの距離順ソート(Haversine大円距離)
端末のGPS位置情報から、全地震の震央までの距離をHaversine公式を用いて瞬時に計算・ソートし、ユーザーの身近で起きた揺れを直感的に把握できるように設計しました。