鉄道情報APIをロケタッチでリリースしましたのお知らせ

カテゴリ
ブックマーク数
このエントリーを含むはてなブックマーク はてなブックマーク - 鉄道情報APIをロケタッチでリリースしましたのお知らせ
このエントリーをはてなブックマークに追加
にどめまして!前回の住所正規化 APIが好評なようで花粉症が吹き飛んでいた Yappo です。
さて、今回は表題の通り鉄道情報 APIをリリースしたのお知らせです。

鉄道情報 API ってなに?

日本国内の鉄道路線や鉄道駅を検索する事が出来る API です。
例えば、路線一覧山手線の駅一覧を JSON 形式で簡単に取得出来ます。

基本的にはデータソースとして駅データ様のデータを利用しているため、基本的には駅データの仕様に準拠していますが、ロケタッチ独自の情報を付与したデータを返しています。

使い方

使い方は簡単で、前回の住所正規化 API のように単純に GET リクエストを飛ばすだけで良いです。

例えば山手線の全駅リストを Perl で書きたい場合には以下のように書きます。
use strict;
use warnings;
use 5.016;
use JSON;
use LWP::Simple;
use URI;
binmode STDOUT => 'utf8';

my $uri = URI->new('https://api.loctouch.com/v1/railway/stations?line_cd=11302');
my $json = get($uri);
my $data = decode_json($json);
for my $station (@{ $data->{stations} }) {
    say "$station->{spot_line_name} $station->{spot_station_name}";
}
レスポンスデータとしては、基本的には駅データの仕様通りのものが入っていますが、以下のロケタッチ独自のデータも付与されています。
spot_line_name ロケタッチ独自ルールの路線名
spot_station_name ロケタッチ独自ルールの駅名
spot_id この駅に対応するロケタッチの駅カテゴリのスポットID
station_spot_id この駅に対応するロケタッチの路線別駅カテゴリのスポットID
geohash lon lat を geohash 化した文字列
元のデータソースの場合は、駅名の suffix (駅、電停)などが入っていなかったり、路線名が一般的ではない(例えばりんかい線が東京臨海高速鉄道になっている)ものがあったり、駅名の表記が厳密に正しくないものがあったり、ロケタッチの駅スポット名のポリシーと相違があるルールになっていた為、 spot_line_name と spot_station_name という key に独自ルールの名称を入れています。

この他には元のデータソースには無い新幹線のデータが下記のように入っています。 これ以外にも複数 API を用意してありますので、その他の詳細はドキュメントをご覧下さい。

API 実装の背景

鉄道駅というものは、日本の社会において重要拠点といって良いスポットです。ロケタッチで保有/メンテナンスしている大量のスポットを、どう社会に還元しようかを考えた結果、駅を拠点として周辺案内をする駅前案内というサービスをβリリースしました。
また、それらと平行して何かとご意見を頂いていたロケタッチの駅スポットの整備を進めていて、駅情報のノウハウが高まりました。

こうした駅関連の整備が一段落したので、データソースである駅データ様の駅データ仕様共通化のため無料でデータを公開しているという理念に共感したため、区切りが良いので API 公開に踏み切りました。
と、カッコいい事を書いてみたんですが実際は社内の別プロジェクトで「駅情報あつかういい方法無い?」って言ってる人が居たので作っただけですすいません。

まとめ

最後にまとめると

  • 鉄道情報 API をリリースしました
  • 実装の背景を説明しました
  • レスポンスに含まれるロケタッチ独自データの説明をしました
  • 駅データを利用しているサービスさんは、ロケタッチとマッシュアップしやすくなりました
  • 今回の件もたぶんYAPC::Asia Tokyo 2012 で Open&Share すると思います
といった内容のエントリを書かせて頂きました。

もし利用したときに気になった事、ご意見等がございましたらロケタッチ Developers Forumまで feedback をお寄せいただければ幸いです。


どうぞご利用下さい。