駅データ.jpを使ってみる

日本の鉄道駅データとして、株式会社コードプラスの提供する[駅データ.jp](https://ekidata.jp/)を使ってみたので、簡単に使い方を書いてみます。

## 概要とライセンス

データは事業者データ、路線データ、駅データ、接続駅データの4種類から構成されています。接続駅データとは隣の駅がどこの駅かというデータです。後述する並び順で大半の隣の駅はわかるのですが、分岐や環状などで並び順だけでは判別できない場合もあるためです。

ほとんどのデータは無償で利用できますが、以下のデータは有償になっています。

* 路線マスタの「路線カラー（コード）」の一部
* 路線マスタの「路線カラー(名称）」の一部
* 路線マスタの「路線区分」の全部
* 駅マスタの「駅名称(カナ)」の全部
* 駅マスタの「駅名称(ローマ字)」の全部
* 駅マスタの新幹線駅のデータすべて

無償で利用する場合も、データダウンロードのために会員登録が必要です。

[利用規約](https://ekidata.jp/information.php)はかなり緩やかで、商用利用・データ加工・再配布が可能です。ただし、禁止事項が定められていて、いくつかの用途では利用できません。

## データ仕様

データは全て CSV 形式で提供されます。文字コードは UTF-8 で、改行コードは LF のみです。詳細は[仕様書](https://ekidata.jp/doc/)に掲載されています。

ここでは実際に各データがどのようになっているかご紹介します。

### 事業者データ

| company_cd | rr_cd | company_name | company_name_k | company_name_h | company_name_r | company_url | company_type | e_status | e_sort |
|---|---|---|---|---|---|---|---|---|---|
| 1 | 11 | JR北海道 | ジェイアールホッカイドウ | 北海道旅客鉄道株式会社 | JR北海道 | http://www.jrhokkaido.co.jp/ | 1 | 0 | 1 |
| 2 | 11 | JR東日本 | ジェイアールヒガシニホン | 東日本旅客鉄道株式会社 | JR東日本 | http://www.jreast.co.jp/ | 1 | 0 | 2 |
| 3 | 11 | JR東海 | ジェイアールトウカイ | 東海旅客鉄道株式会社 | JR東海 | http://jr-central.co.jp/ | 1 | 0 | 3 |

company_cd は事業者コードで、ユニークです。

rr_cd は鉄道コードですが、このコードが何を意味するか正直よくわかりません。数字2桁で、ユニークではありません。

company_name 類は会社名、company_url は会社URLです。

company_type は事業者区分で「0:その他　1JR 2大手私鉄　3準大手私鉄」と定義されています。

e_status は状態で「0:運用中　1:運用前　2:廃止」と定義されています。

e_sort は並び順です。ユニークでは無いので、実際にソートする際には e_sort に company_cd を加える必要があります。

e_status と e_sort は他のデータでも登場し、使い方は共通です。

### 路線データ

| line_cd | company_cd | line_name | line_name_k | line_name_h | line_color_c | line_color_t | line_type | lon | lat | zoom | e_status | e_sort |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1001 | 3 | 中央新幹線 | チュウオウシンカンセン | 中央新幹線 |  |  |  | 137.49389648438 | 35.411438052435 | 8 | 1 | 1001 |
| 1002 | 3 | 東海道新幹線 | トウカイドウシンカンセン | 東海道新幹線 |  |  |  | 137.72148868199 | 35.144121935483 | 7 | 0 | 1002 |
| 1003 | 4 | 山陽新幹線 | サンヨウシンカンセン | 山陽新幹線 |  |  |  | 133.14789611678 | 34.419337699534 | 7 | 0 | 1003 |

line_cd は路線コードで、ユニークです。

company_cd は事業者データにある事業者コードです。

line_name 類は路線名です。

line_color 類は各路線の公式カラーを参考に駅データ.jpが独自に定義した路線カラーです。ウェブサイトやアプリでの表示時に利用することが出来ます。一部の路線は有料データになっています。

line_type は路線区分で「0:その他　1:新幹線 2:一般 3:地下鉄 4:市電・路面電車 5:モノレール・新交通」と定義されています。全ての路線で有料データになっています。

lon, lat は路線エリアの中心の緯度経度です。測地系は世界測地系です。

zoom はGoogle マップ表示時の倍率です。lon, lat, zoom を 600x600 の Google マップで表示させると、おおよそ路線エリアの全てが表示できます。

e_status, e_sort は事業者データと同様です。

### 駅データ

| station_cd | station_g_cd | station_name | station_name_k | station_name_r | line_cd | pref_cd | post | address | lon | lat | open_ymd | close_ymd | e_status | e_sort |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1110101 | 1110101 | 函館 |  |  | 11101 | 1 | 040-0063 | 北海道函館市若松町１２-１３ | 140.726413 | 41.773709 | 1902-12-10 | 0000-00-00 | 0 | 1110101 |
| 1110102 | 1110102 | 五稜郭 |  |  | 11101 | 1 | 041-0813 | 函館市亀田本町 | 140.733539 | 41.803557 | 0000-00-00 | 0000-00-00 | 0 | 1110102 |
| 1110103 | 1110103 | 桔梗 |  |  | 11101 | 1 | 041-0801 | 北海道函館市桔梗３丁目４１-３６ | 140.722952 | 41.846457 | 1902-12-10 | 0000-00-00 | 0 | 1110103 |

station_cd は駅コードで、ユニークです。

station_g_cd は駅グループコードです。複数路線が乗り入れている場合や、別会社の駅が近隣にあって乗換駅として利用できる場合、同一の駅グループコードが設定されています。例えば新宿駅の駅グループコード 1130208 は合計14駅あります。

station_name 類は駅名です。

line_cd は路線データにある路線コードです。

pref_cd はJIS X 0401の都道府県コードです。

post は駅のハイフン入りの郵便番号、address は駅の住所、lon, lat は駅の世界測地系での緯度経度です。住所は都道府県から始まっている場合と市区町村から始まっている場合があるので注意が必要です。

open_ymd, close_ymd は駅の開業年月日と廃止年月日です。未定義は空文字列ではなく 0000-00-00 が入っています。不明の場合も 0000-00-00 が入っているので、close_ymd を使って営業中と判断できません。e_status を使いましょう。

e_status, e_sort は事業者データと同様です。

### 接続駅データ

| line_cd | station_cd1 | station_cd2 |
|---|---|---|
| 1002 | 100201 | 100202 |
| 1002 | 100202 | 100203 |
| 1002 | 100203 | 100204 |

line_cd は路線データにある路線コードです。

station_cd1, station_cd2 は駅データにある駅コードです。station_cd1 と station_cd2 の駅が隣同士であることを表しています。

隣駅についてはデータの注意点の節で詳しく説明します。

## データの注意点

駅データ一般にまつわる注意点と、駅データ.jp固有の注意点がいくつかあります。

### 隣駅

基本的には駅コードが隣り合っている駅が隣駅になるのですが、そうでない場合もあります。新駅開業、環状路線、分岐線の各ケースがあるからです。

新駅開業として、例えばJR山手線高輪ゲートウェイ駅周辺の駅コードは以下のようになっています。

| station_cd | station_g_cd | station_name|(以降省略) |
|---|---|---|---|
|1130227|1130227|浜松町||
|1130228|1130228|田町||
|1130230|1130230|高輪ゲートウェイ||
|1130229|1130103|品川||

駅コード(station_cd)は浜松町駅(1130227)、田町駅(1130228)と連続していますが、高輪ゲートウェイ駅(1130230)で飛んで、品川駅(1130229)で戻っています。高輪ゲートウェイ駅開業前は駅コードは連続していたのですが、間に新駅が開業したことで連続しなくなってしまったわけです。連続させるためには駅コードを採番し直さなければなりませんが、駅開業ごとにコードが変わってしまっては大変ですので、駅コードは隣駅で連続することが保証されないことになっています。

環状路線の場合は、そもそも最初から隣駅のコードを連続させることは不可能です。JR山手線の大崎駅と品川駅は隣駅ですが、駅コードは連続させようがありません。

| station_cd | station_g_cd | station_name|(以降省略) |
|---|---|---|---|
|1130201|1130201|大崎||
|1130202|1130202|五反田||
|(途中省略)| | ||
|1130230|1130230|高輪ゲートウェイ||
|1130229|1130103|品川||

路線が分岐することもあります。東京メトロ丸ノ内線は中野坂上駅から本線の荻窪駅方面(隣駅は新中野駅)と、支線の方南町駅方面(隣駅は中野新橋駅)に分岐します。

| station_cd | station_g_cd | station_name | (以降省略) |
|---|---|---|---|
|2800219|2800219|西新宿||
|2800220|2800220|中野坂上||
|2800221|2800221|新中野||
|2800222|2800222|東高円寺||
|(途中省略)| | ||
|2800226|2800226|中野新橋||
|2800227|2800227|中野富士見町||

このような様々なケースにおいても正確に隣駅を判定する為に接続駅データが用意されています。ここで挙げたそれぞれの接続駅データは以下のようになっています。

JR山手線高輪ゲートウェイ駅/品川駅/大崎駅周辺(カッコ内は補記)

|line_cd | station_cd1 | station_cd2 |
|---|---|---|
|11302|1130227(浜松町駅)|1130228(田町駅)|
|11302|1130228(田町駅)|1130230(高輪ゲートウェイ駅)|
|11302|1130229(品川駅)|1130201(大崎駅)|
|11302|1130230(高輪ゲートウェイ駅)|1130229(品川駅)|

東京メトロ丸ノ内線中野坂上駅周辺

| line_cd | station_cd1 | station_cd2 |
|---|---|---|
|28002|2800219(西新宿駅)|2800220(中野坂上駅)|
|28002|2800220(中野坂上駅)|2800221(新中野駅)|
|28002|2800220(中野坂上駅)|2800226(中野新橋駅)|
|28002|2800221(新中野駅)|2800222(新高円寺駅)|
|(途中省略)|||
|28002|2800226(中野新橋駅)|2800227(中野富士見町駅)|

### ターミナル駅/乗換駅

JRの東京駅や新宿駅は多数の路線が乗り入れています。また、JR以外の鉄道駅も周辺にあり、乗換駅として利用できる場合もあります。例えばJR東京駅と乗換駅はこれだけあります。(カッコ内は補記)

| station_cd | station_g_cd | station_name | line_cd | (以降省略) |
|---|---|---|---|---|
|1130101|1130101|東京|11301(JR東海道本線)||
|1130224|1130101|東京|11302(JR山手線)||
|1130801|1130101|東京|11308(JR横須賀線)||
|1131101|1130101|東京|11311(JR中央本線)||
|1131201|1130101|東京|11312(JR中央線)||
|1131401|1130101|東京|11314(JR総武本線)||
|1132601|1130101|東京|11326(JR京葉線)||
|1132809|1130101|東京|11328(JR成田エクスプレス)||
|1133222|1130101|東京|11332(JR京浜東北線)||
|1134301|1130101|東京|11343(上野東京ライン)||
|2800209|1130101|東京|28002(東京メトロ丸ノ内線)||

では駅名が同一なら乗換駅として扱おうと考えてしまいますが、それではうまくいかないケースがあります。駅名が違っても同一駅である場合と、同じ駅名なのに地理的に離れていて乗り換えが不可能な場合があるからです。

東京メトロの日比谷線/千代田線の日比谷駅と有楽町線の有楽町駅は同一駅ですが駅名が違います。

| station_cd | station_g_cd | station_name | line_cd | (以降省略) |
|---|---|---|---|---|
|2800315|1130225|日比谷|28003(東京メトロ日比谷線)||
|2800512|1130225|日比谷|28005(東京メトロ千代田線)||
|2800618|1130225|有楽町|28006(東京メトロ有楽町線)||

駅名は同じだけれど全く違う場所にある場合もあります。元町駅は北海道札幌市と兵庫県神戸市にあります。

| station_cd | station_g_cd | station_name | line_cd | (以降省略) |
|---|---|---|---|---|
|1160314|1160314|元町|11603(JR神戸線)||
|3500133|1160314|元町|35001(阪神本線)||
|9910303|9910303|元町|99103(札幌市営地下鉄東豊線)||
|9963003|1160314|元町|99630(神戸高速東西線)||

元町駅の場合は都道府県が別なら別駅とすれば判別できますが、東武/東京メトロ/都営地下鉄の浅草駅とつくばエクスプレスの浅草駅はどちらも東京都台東区にありまずが600メートルほどの距離があり乗換駅とはなっていません。

| station_cd | station_g_cd | station_name | line_cd | (以降省略) |
|---|---|---|---|---|
|2100201|2100201|浅草|21002(東武伊勢崎線)||
|2800101|2100201|浅草|28001(東京メトロ銀座線)||
|9930218|2100201|浅草|99302(都営浅草線)||
|9930903|9930903|浅草|99309(つくばエクスプレス)||

このような様々なケースに対応して同一駅/乗換駅を判定するために用意されているのが駅グループコードです。駅コードは路線が違えば全て違うコードが割り振られていますが、同一駅/乗換駅となっている場合には駅グループコードは同一となっています。

### 路線名のカッコ

路線が複数に分割されて、はカッコで駅区間が付記されている場合があります。例えばJR東海道本線は以下の7路線にデータが分かれています。

| line_cd | company_cd | line_name | line_name_k | line_name_h | (以降省略) |
|---|---|---|---|---|---|
|11301|2|JR東海道本線(東京～熱海)|トウカイドウホンセン|JR東海道本線(東京～熱海)||
|11501|3|JR東海道本線(熱海～浜松)|トウカイドウホンセン|JR東海道本線(熱海～浜松)||
|11502|3|JR東海道本線(浜松～岐阜)|トウカイドウホンセン|JR東海道本線(浜松～岐阜)||
|11503|3|JR東海道本線(岐阜～美濃赤坂・米原)|トウカイドウホンセン|JR東海道本線(岐阜～美濃赤坂・米原)||
|11601|4|琵琶湖線|ビワコセン|JR東海道本線(米原～京都)||
|11602|4|JR京都線|キョウトセン|JR東海道本線(京都～大阪)||
|11603|4|JR神戸線(大阪～神戸)|コウベセン|JR東海道本線(大阪～神戸)||

熱海駅で分かれるのはJR東日本とJR東海で事業者が別になっているからですね。また、JR西日本区間では一部の駅間で路線愛称が付けられていますので、これも区別するために路線データが分かれています。しかし、浜松駅と岐阜駅で路線が分かれているのが何故かは分かりません。

### 路線名の事業者名

路線名の前には大抵事業者略称が付いているのですが、付いていない場合もあります。

| line_cd | company_cd | line_name | line_name_k | line_name_h | (以降省略) |
|---|---|---|---|---|---|
|11605|4|JR湖西線|コセイセン|JR湖西線||
|11607|4|大和路線|ヤマトジセン|JR関西本線(加茂～ＪＲ難波)||
|11608|4|JR神戸線(神戸～姫路)|コウベセン|JR山陽本線(神戸～姫路)||
|11618|4|奈良線|ナラセン|奈良線||

全体的には、正式路線名には事業者略称が付き、路線愛称には事業者略称が付かない傾向があるようですが、そうでない場合もあります。JR神戸線は愛称ですが事業者略称が付き、奈良線は正式路線名にも事業者略称は付いていません。どういうルールで事業者略称が付くのかは分かりません。

### 駅の住所

駅の住所は都道府県から入ってる場合と、市区町村から入っている場合の2パターンがあります。どのようなルールで都道府県が入ったり入らなかったりするのかは分かりません。

| station_cd | station_g_cd | station_name| pref_cd | post | address | (以降省略) |
|---|---|---|---|---|---|---|
| 1110101 | 1110101 | 函館 | 1 | 040-0063 | 北海道函館市若松町１２-１３ | |
| 1110102 | 1110102 | 五稜郭 | 1 | 041-0813 | 函館市亀田本町 | |