Project Plateau
Project Plateau: four glass plates, one living valley, and the road back to camp.
翻訳待ち
No updates detected yet. GitHub releases will appear here.
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full README ↗Infinite Flight Live API を使った軽量なライブフライトトラッカー。デザインは design.md(Flightradar24 の design.md 解析に準拠)。
# .env.local
INFINITE_FLIGHT_API_KEY=xxxx
# 任意: 写真の照合先(既定 https://ifspotters.com)
# IFSPOTTERS_BASE_URL=https://ifspotters.com
npm install
npm run dev # http://localhost:3000
npm run build # public/app.js と dist/server.js を生成
| ファイル | 役割 |
|---|---|
src/server.ts | Express。API キーを秘匿したプロキシ、短命キャッシュ、フライト一覧の圧縮、IFSpotters 照合 |
src/client/main.ts | 地図(Leaflet)、ポーリング、選択・追従、検索 |
src/client/aircraft-layer.ts | 全機体を 1 枚の canvas に描画するレイヤー(当たり判定込み) |
src/client/panel.ts | フライト詳細パネル(写真・ルート・統計・高度プロファイル) |
src/client/stats.ts | フライト統計(全履歴から空港・機種・航空会社・路線を集計) |
src/client/globe.ts | 統計の地球儀。MapLibre の globe 投影(public/vendor に置き、統計を開いたときだけ読み込む) |
src/client/top.ts | トップパイロット(いまオンラインの人を通算の飛行時間・着陸回数で並べる) |
src/client/data.ts | API 型、デッドレコニング、距離計算、フォーマット |
GET /api/sessions — サーバー一覧GET /api/flights?sessionId= — 全機体(列を絞った配列形式。types に機種/リバリー名を重複排除)GET /api/flights/:id?sessionId= — 飛行計画・出発/到着空港・航跡GET /api/photos?aircraft=&livery= — IFSpotters の承認済み写真(機種名 + リバリー名の完全一致)GET /api/history?user=<IFC ユーザー名>&page= — フライト履歴を 100 便ずつ(最大 100 ページ)。集計はブラウザで行う。Live API の 429 を避けるため、履歴の取得だけはサーバー全体で同時 2 本・200ms 間隔に絞るGET /api/top-pilots?sessionId= — オンラインの人の通算飛行時間・着陸回数の上位。/users は 1 回 25 人までで API 全体の上限が約 100 回/分なので、誰かが開いている間だけ 2.5 秒に 1 回ずつ集める(Expert で 5〜6 分)。記録はメモリに 3 時間だけ持つ