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

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回程度自動更新・提供予定)
e-Shikumi-labo