SecondaryUse開発日記

データベース参照ツールを開発しています。そのツールの開発、利用方法秘話などなどの紹介

SimpleUse の駅データの連携について

日本全国の駅や路線のCSVデータを無料で利用できる駅データサイト

ekidata.jp

がありましたので、何か面白いことが出来ないか試してみました
CSVデータをダウンロードするのに会員登録(無料)が必要です。
また、有料会員であれば全てのデータ(カナ、ローマ字、新幹線のデータ)が利用できるようです

とりあえず、CSVデータをSQLiteに取り込みます
下記の内容でダウンロードしたCSVデータファイルをリネームします
company20180424.csv → company.csv
line20191227free.csv → line.csv
station20191227free.csv → station.csv
join20191227.csv → join.csv
pref.csv → pref.csv

f:id:syskobo:20200214114340p:plain

ここでは、SQLiteのファイル名は「駅データ.sqlite3」にします
取込方法は過去の記事を参照してください
最新バージョンではCSVファイルの文字コードを自動判別して読み込みますのでS-JISで保存しなくとも大丈夫になりました

事業者データ
事業者のWebサイトへ連携します

f:id:syskobo:20200214120033p:plain

select

company_cd 事業者コード
,rr_cd 鉄道コード
,company_name "事業者名"
,company_name_k "事業者名カナ"
,company_name_h "事業者名正式名称"
,company_name_r "事業者名略称"
,company_url Webサイト

,case company_type
when 0 then '0:その他'
when 1 then '1:JR'
when 2 then '2:大手私鉄'
when 3 then '3:準大手私鉄'
end 事業者区分

,case e_status
when 0 then '0:運用中'
when 1 then '1:運用前'
when 2 then '2:廃止'
end 状態
,e_sort + 0 並び順

from [company]

 

路線データ

f:id:syskobo:20200214130216p:plain

路線データに緯度、経度及びGoogleMapの倍率のデータがあり路線全体の地図表示が可能です

f:id:syskobo:20200214132000p:plain


select

--<HIDE>経度,緯度,GoogleMap倍率</HIDE>

a.line_cd 路線コード
,b.company_name "事業者名"
,a.line_name "路線名称"
,a.line_name_k "路線名称カナ"
,a.line_name_h "路線名称正式名称"

,a.lon 経度
,a.lat 緯度
,a.zoom GoogleMap倍率

,case a.e_status
when 0 then '0:運用中'
when 1 then '1:運用前'
when 2 then '2:廃止'
end 状態

,a.e_sort 並び順

from [line] a
left join [company] b on b.company_cd = a.company_cd


駅データ

f:id:syskobo:20200214133847p:plain

駅データに緯度、経度及び住所のデータがあり駅の地図表示が可能です

 
select

--<HIDE>経度,緯度</HIDE>

a.station_cd 駅コード
,a.station_g_cd 駅グループコード
,a.station_name 駅名称

,b.line_name "路線名称"
,d.pref_name 都道府県名
,a.post 駅郵便番号
,a.address 住所
,a.lon 経度
,a.lat 緯度
,a.open_ymd 開業年月日
,a.close_ymd 廃止年月日

,case a.e_status
when 0 then '0:運用中'
when 1 then '1:運用前'
when 2 then '2:廃止'
end 状態
,a.e_sort 並び順

from [station] a

left join [line] b on b.line_cd = a.line_cd
left join [company] c on c.company_cd = b.company_cd
left join [pref] d on d.pref_cd = a.pref_cd


接続データ

接続データに路線データ、駅データを外部結合すれば路線ごとの駅データ一覧が取得できます

また、2点の緯度、経度が分かるため距離も求められます(求めていません)

f:id:syskobo:20200214135233p:plain

select

--<HIDE>経度,緯度</HIDE>

a.line_cd 路線コード
,b.line_name "路線名称"

,a.station_cd1 駅コード
,c1.station_name 駅名称

,c1.post 駅郵便番号
,c1.address 住所
,c1.lon 経度
,c1.lat 緯度

,a.station_cd2 隣駅コード
,c2.station_name 隣駅名称

from [join] a

left join [line] b on b.line_cd = a.line_cd
left join [station] c1 on c1.station_cd = a.station_cd1
left join [station] c2 on c2.station_cd = a.station_cd2

 

全然面白くないですね。基本形しか思い付きませんでした

 駅データもサンプルデータとして組み込みたいと思っています