2024/3/10 追記
2024年1月9日から運行情報ページがリニューアルされたため、Kitacaエリア(札幌近郊)列車運転状況は廃止されたため、この方法は使えなくなっています。
JR北海道の運行情報の種類
JR北海道の運行情報ページは、jsonを使用して表示しています。
また、3種類に分かれています。
列車運行情報
今日と明日の運行情報をエリア(路線)ごとに示してくれます。
事前に決まっている運行状況(大雪による減便等)や大幅な遅れ(30分以上)、運休(故障・事故等)でない限り更新されません。
各駅運行情報
今日と明日の運行情報を駅ごとに示してくれます。
運休・部分運休を示してくれますが、列車の遅れは反映されません。
Kitacaエリア(札幌近郊)列車運転状況
路線ごとではなく各列車ごとの運転状況を示してくれます。
ただし、Kitacaエリア(小樽〜苫小牧・岩見沢間、学園都市線の札幌近郊地域)のみと限られています。
Kitacaエリア(札幌近郊)列車運転状況 jsonの仕様
運転状況ページでは3種類のjsonを組み合わせて表示しているようです。
独自研究を含んでおり、内容が正確ではない可能性があります。
誤りがありましたら、コメント等で報告をお願いします。
station_numbering.json
kitacaエリア内全駅の、駅番号(station_numbering)が格納されています。
key | value | 例(札幌) |
---|---|---|
ID | 駅番号 | 091 |
value | 駅名 | 札幌 |
areaKey | 路線コード | (空白) |
areaNo | 路線内での駅番号 | 01 |
color | 路線カラー | 030000 |
jsonの形は以下の通りです。
{
"station_numbering" :
[
{
"ID" : "091",
"value" : "札幌",
"areaKey" : "",
"areaNo" : "01",
"color" : "030000"
},
]
}
stationlist.json
kitakaエリア内全駅の、駅名などが格納されています。
key | value | 例(札幌) |
---|---|---|
ID | 駅番号 | 091 |
value | 駅名 | 札幌 |
hira | ふりがな | さっぽろ |
kata | フリガナ | サッポロ |
en | 英語表記 | Sapporo |
lat | 緯度 | 43.068701 |
lng | 経度 | 141.350738 |
tid | 運行情報表示装置? | true |
tw | 台湾語表記 | 札幌 |
cn | 中国語表記 | 札幌 |
kr | 韓国語表記 | 삿포로 |
area | エリア | (省略) |
tidは、運行情報表示装置 (Traffic Information Display)だと思われます。
jsonの形は以下の通りです。
{
"stations" : [
{
"ID" : "091",
"value" : "札幌",
"hira" : "さっぽろ",
"kata" : "サッポロ",
"en" : "Sapporo",
"lat" : "43.068701",
"lng" : "141.350738",
"tid" : "true",
"tw" : "札幌",
"cn" : "札幌",
"ko" : "삿포로",
"area" : [
true,
true,
false,
false,
false,
false
]
},
]
}
service(駅番号).json
札幌駅(駅番号:091)の場合
各駅運転状況データの本体です。
駅ごとにURLが異なり、駅番号が必要です。
https://www3.jrhokkaido.co.jp/monitor/unkou_info/json/services(駅番号).json
となっています。
駅番号は3桁の半角数字で、先程紹介した2つのjsonで取得できます。
そのため、札幌駅の場合(駅番号:091)は
https://www3.jrhokkaido.co.jp/monitor/unkou_info/json/services091.json
となっています。
key | value | 例(札幌) |
---|---|---|
services | 駅番号 | 091 |
departures_datetime | 出発時刻 | 202308100600 |
departures | 出発方面 | 函館線[小樽方面へ]@1 函館線[岩見沢方面へ]@1 千歳線[千歳方面へ]@1 千歳線[(快速)新千歳空港へ]@1 学園都市線[当別方面へ]@1 |
arrivals_datetime | 到着時刻 | 202308100600 |
arrivals | 到着方面 | 函館線[小樽方面から]@1 函館線[岩見沢方面から]@1 千歳線[千歳方面から]@1 千歳線[(快速)新千歳空港から]@1 学園都市線[当別方面から]@1 |
駅ごとに出発・到着方面の項目数は異なります。
出発・到着時刻、方面ごとに分かれているため注意が必要です。
departures・arrivalsの中に方面ごとに分かれている列車運転状況は以下のように分類されています。
key | value | 例(函館線[小樽方面へ]@1) |
---|---|---|
class | 列車種別 | 快速 |
name | 列車名 | エアポート〇〇号 |
time | 出発(到着)時刻 | 12:34 |
to | 終着駅 | 小樽 |
status | 運行状況コード | 2 |
add | 運休区間 | 運休(小樽-手稲間) |
now | 遅れ時間 (運行中の現在位置) |
約10~15分遅れ(新札幌駅) |
dest | 終着駅と行先が違う場合の行先 | (空白) |
jsonの構造は以下の通りです。
{
"services" : {
"091" : {
"departures_datetime" : "202308100800",
"departures" : {
"函館線[小樽方面へ]@1" : [
{
"class" : "普通",
"name" : "普通",
"time" : "09:03",
"to": "手稲",
"status": 0,
"add" : "",
"now" : "(厚別-森林公園間)",
"dest" : ""
},
],
"千歳線[千歳方面へ]@1": [
],
},
"arrivals_datetime": "202308100800",
"arrivals": {
"函館線[小樽方面から]@1": [
],
}
}
【参考】運行状況コードの分類
code | 運行状況 |
---|---|
0 | 通常運行 |
1 | 列車遅延 |
2 | 部分運休 |
3 | 全区間運休 |
4 | 空(empty) |
5 | 発車前 |
6 | 発車前 |
7 | 表示区間外 |
編集後記
今回紹介したjsonだけでは編成両数が分かりません。そのため、他のjsonを組み合わせることで両数表示が可能です。
ちなみに、札幌市営地下鉄は列車ごとの運転状況を公開していないようです。しかし、札幌市内のバスはバスロケーションシステムを導入しており、バスの現在位置が分かります。それについての取得方法も今度書こうと思います。