駅すぱあと Python SDKを使って経路探索を行う
本記事はヴァル研究所の支援として作成された記事です
駅すぱあとはAPIを公開しており、駅情報や経路探索などをAPI経由で行えます。メソッドはすべてGETメソッドで、情報取得系のみです。レスポンスはJSONまたはXMLで返ってきます。
この駅すぱあと APIを利用しやすくするSDKを開発しはじめました。SDKはPythonで作っており、CLIやWebサービスなどから利用できます。
今回は、スタンダードプランで提供されている経路探索APIに対応したので、その使い方を解説します。
必要な情報
SDKを利用する際にはAPIキーが必要です。無料トライアルがあるので、こちらから取得してください。
注意点
- SDKは非公式です。公式サポートへの問い合わせはご遠慮ください
インストール
インストールは pip
コマンドで行います。
pip install ekispert
初期化
先ほど取得したAPIキーを使ってSDKを初期化します。
from ekispert.client import Ekispert
client = Ekispert("YOUR_API_KEY")
経路探索の探索条件の設定
経路探索は CourseExtremeQuery
を使います。このオブジェクトを取得し、探索条件を設定します。
query = client.courseExtremeQuery()
query.via_list = ['22671', '22741']
query.answer_count = 1
探索条件は 経路探索 - 駅すぱあと API Documents 駅データ・経路探索のWebAPI にあるものを指定できます。
探索の実行
探索条件を設定したら、探索処理を実行します。結果は Course
クラスの配列になります。探索が失敗した場合は例外処理を行います。
try:
courses = query.execute()
except Exception as e:
print(e)
成功した場合
処理が成功した場合、 courses
の中に経路情報が入っています。各経路には prices
(金額情報) や route
(ルート) プロパティなどがあります。
len(courses) // 1
courses[0].prices[0].kind // "ChargeSummary"
courses(0).prices(0).one_way ' 片道運賃。460など
courses[0].routes[0].distance // 58
courses[0].routes[0].exhaust_co2 // 116
ソースコード
SDKのコードは以下のリポジトリにて公開しています。ライセンスはMIT Licenseです。
まとめ
経路探索は今回紹介したものの他、前後のダイヤ探索や平均待ち時間探索などさまざまな種類があります。今後のSDKのアップデートにて対応する予定なので、ぜひご利用ください。
何か不具合があれば、Issueにて連絡いただければ対応します。
Discussion