Flight Monitor

指定した監視拠点(自宅等)の上空を通過する航空機データをリアルタイムに取得し、Side Panel上のダークテーマ地図とフライトカード型一覧に表示するChrome拡張機能です。サーバーレス設計により、OpenSky APIおよび公開Googleスプレッドシートからブラウザ上で直接データを同期・結合します。

Flight Monitor 動作イメージ

Features

特徴

リアルタイムなデータ取得

OpenSky Network APIを利用し、10〜15秒ごとの定期通信で航空機の位置・高度・速度を正確に取得します。

コックピット風ダークテーマ

Leaflet.jsとEsriダークタイルを採用。ステータス発光バッジを備えたレーダー風UIで視認性を高めています。

独自データの自動結合

公開Googleスプレッドシートと連携し、便名から路線、発着時刻、IATAコードを動的にタイムテーブルへ付加します。

安全なサーバーレス設計

独自の外部サーバーを経由せず、APIやシートからブラウザへ直接データを取得。設定はローカルにのみ安全に保存されます。

Architecture & Flow

構成要素と処理の流れ

1. 設定のロードとマップ初期化

サイドパネルの起動時にローカルストレージからユーザー設定を取得し、ダークテーママップ上にHomeマーカーや監視エリアを描画して表示基盤を初期化します。

2. 外部データソースとの同期 (api.js)

10〜15秒間隔のポーリング処理により、OpenSky APIから航空機生データを取得します。同時にGoogleスプレッドシートから便名に紐づく付加情報(路線・時刻等)を読み込みます。

3. データの統合・変換処理 (utils.js)

現在位置からの距離計算(ハバーサイン公式)やコールサインの抽出を実行し、複数のデータソースから得た情報を拡張機能内で扱いやすい形式に統合・変換します。

4. UIの動的更新と多言語化

最新のデータをもとに地図上のマーカー位置を更新します。同時に航空会社ロゴを動的取得してフライトカードを再構築し、画面に反映させます。

Requirements

必要なもの

複雑なバックエンドサーバーの構築は不要です。上記のアカウントとデータソースを用意し、拡張機能のOptionsページから設定するだけで動作を開始します。

OpenSkyアカウント(無料登録可)

OpenSky Network APIを利用し、10〜15秒ごとの定期通信で航空機の位置・高度・速度を正確に取得するために必要です。

公開設定のGoogleスプレッドシート

便名、出発地、到着地、出発時刻、到着時刻、IATAコードを含むCSVファイル。(当ラボで毎月1回程度自動更新・提供予定)