ANAの国内線Wi-Fiでフライト情報を取得する

先日ANA国内線のWi-Fiを利用しようとしたら、認証はなかなか通らなかったのですが、フライト情報が取得できるREST APIを見つけたので紹介します。

機内Wi-Fiに接続した状態(メールアドレスの登録前でも取得可能なようです)で下記URLにGETリクエストを送ると、下記のようなJSONが返ってきます。 URL: http://services.inflightpanasonic.aero/inflight/services/flightdata/v1/flightdata

このAPIを見つけた契機ですが、Captive Portal方式の認証ページがうまく表示されず、ブラウザの開発者ツールを使って原因を探っていたらJavaScriptからこのAPIへ定期的にリクエストを送っていたので見つけました。

{
"td_id_decompression":"0",
"td_id_weight_on_wheels":"0",
"td_id_all_doors_closed":"1",
"td_id_x2_pa_state":"0",
"td_id_fltdata_ground_speed":"0478",
"td_id_fltdata_time_to_destination":"0072",
"td_id_fltdata_wind_speed":"0019",
"td_id_fltdata_mach":"",
"td_id_fltdata_true_heading":"0049",
"td_id_fltdata_gmt":"0901",
"td_id_fltdata_outside_air_temp":"8028",
"td_id_fltdata_head_wind_speed":"0019",
"td_id_fltdata_date":"00260618",
"td_id_fltdata_distance_to_destination":"00000548",
"td_id_fltdata_altitude":"00029001",
"td_id_fltdata_present_position_latitude":"00029539",
"td_id_fltdata_present_position_longitude":"00132254",
"td_id_fltdata_destination_latitude":"00035330",
"td_id_fltdata_destination_longitude":"00139455",
"td_id_fltdata_destination_id":"RJTT",
"td_id_fltdata_departure_id":"ROAH",
"td_id_fltdata_flight_number":"ANA472    ",
"td_id_fltdata_destination_baggage_id":"HND",
"td_id_fltdata_departure_baggage_id":"OKA",
"td_id_airframe_tail_number":"ja753a",
"td_id_flight_phase":"",
"td_id_gmt_offset_departure":"00009.00",
"td_id_gmt_offset_destination":"00009.00",
"td_id_route_id":"1",
"td_id_fltdata_time_at_origin":"1801",
"td_id_fltdata_time_at_destination":"1801",
"td_id_fltdata_distance_from_origin":"337.16",
"td_id_fltdata_estimated_arrival_time":"1913",
"td_id_fltdata_time_at_takeoff":"002606180813",
"td_id_fltdata_departure_latitude":"00026114",
"td_id_fltdata_departure_longitude":"00127384",
"td_id_pdi_fltdata_departure_iata":"",
"td_id_pdi_fltdata_departure_time_scheduled":"",
"td_id_pdi_fltdata_arrival_iata":"",
"td_id_fltdata_wind_direction":"0039",
"td_id_media_date":"20180601",
"td_id_extv_channel_listing_version":"1302"
}

項目の意味を推測してみました。地図画像を別途用意すれば自機の位置を表示するFlightradar24のようなページが作れそうですね。

項目名(td_id_は略) 実際の値 意味
airframe_tail_number ja753a 機体番号、いわゆるレジ番
all_doors_closed 1 全ドアが閉じている(地上でもSSIDは取れるので、そのときは0になるのでしょうか)
decompression 0
extv_channel_listing_version 1302 衛星放送のチャンネルのバージョン?
flight_phase
fltdata_altitude 00029001
fltdata_date 00260618 フライトデータの日付, DDMMYY形式
fltdata_departure_baggage_id OKA 出発地のIATA空港コード
fltdata_departure_id ROAH 出発地のICAO空港コード
fltdata_departure_latitude 00026114 出発地の緯度
fltdata_departure_longitude 00127384 出発地の経度
fltdata_destination_baggage_id HND 到着地のIATA空港コード
fltdata_destination_id RJTT 到着地のICAO空港コード
fltdata_destination_latitude 00035330 到着地の緯度
fltdata_destination_longitude 00139455 到着地の経度
fltdata_distance_from_origin 337.16 出発地からの距離
fltdata_distance_to_destination 00000548 目的地への距離(マイル単位)
fltdata_estimated_arrival_time 1913 推定到着時刻(HHMM形式)
fltdata_flight_number ANA472 フライト番号
fltdata_gmt 0901 フライトデータの時刻(GMT), HHMM形式
fltdata_ground_speed 0478 対地速度(ノット単位)
fltdata_head_wind_speed 0019 対気速度
fltdata_mach
fltdata_outside_air_temp 8028 外気温(単位?)
fltdata_present_position_latitude 00029539 現在の緯度
fltdata_present_position_longitude 00132254 現在の経度
fltdata_time_at_destination 1801 現在時刻(到着地のタイムゾーン
fltdata_time_at_origin 1801 現在時刻(出発地のタイムゾーン
fltdata_time_at_takeoff 002606180813 離陸時刻(00DDMMYYHHMM形式, UTC
fltdata_time_to_destination 0072 到着までの時間(分単位)
fltdata_true_heading 0049
fltdata_wind_direction 0039 風向
fltdata_wind_speed 0019 風速
gmt_offset_departure 00009.00 出発地の時差(UTC+ 000HH.MM)
gmt_offset_destination 00009.00 到着地の時差(UTC+ 000HH.MM)
media_date 20180601 動画コンテンツ等の更新日?
pdi_fltdata_arrival_iata
pdi_fltdata_departure_iata
pdi_fltdata_departure_time_scheduled
route_id 1
weight_on_wheels 0
x2_pa_state 0 機内アナウンス実施中フラグ?アナウンス実施中はコンテンツの再生が止まるので、それに利用されている?