駅すぱあと Python SDKを使って、N分以内で行ける駅を探す
本記事はヴァル研究所の支援として作成された記事です
駅すぱあとはAPIを公開しており、駅情報や経路探索などをAPI経由で行えます。メソッドはすべてGETメソッドで、情報取得系のみです。レスポンスはJSONまたはXMLで返ってきます。
この駅すぱあと APIを利用しやすくするSDKを開発しはじめました。SDKはPythonで作っており、CLIやWebサービスなどから利用できます。
今回は、スタンダードプランで提供されている範囲探索APIに対応しましたので、その使い方を紹介します。
範囲探索機能はN分以内で行ける駅を探す機能ですが、例えば不動産サイトやバイト探しサイトの「通勤時間から探す」機能や、通勤時間から配置できる店舗を探す「人員配置」などによく採用される機能です。
それでは、SDKの使い方について解説します。
必要な情報
SDKを利用する際にはAPIキーが必要です。無料トライアルがあるので、こちらから取得してください。
注意点
- SDKは非公式です。公式サポートへの問い合わせはご遠慮ください
インストール
インストールは pip コマンドで行います。
pip install ekispert
初期化
先ほど取得したAPIキーを使ってSDKを初期化します。
from ekispert.client import Ekispert
client = Ekispert("YOUR_API_KEY")
範囲探索の探索条件の設定
範囲探索は MultipleRangeQuery を使います。このオブジェクトを取得し、検索条件を設定します。
query = client.multipleRangeQuery()
# 探索条件の設定
query.base_list = ["有楽町"]
query.upper_minute = [15]
探索条件は 範囲探索 - 駅すぱあと API Documents 駅データ・経路検索のWebAPI にあるものを指定できます。
検索の実行
探索条件を設定したら、探索処理を実行します。結果は base と points キーを持ったdictになります。
try:
response = query.execute()
except Exception as e:
print(f"Error: {e}")
成功した場合
処理が成功した場合、 base キーに起点を表すリスト、 points キーに地点情報が入っています。各地点情報には station (駅情報) や geo_point (位置情報) 、 cost (起点駅毎の所要時間や乗換回数を表す情報)プロパティなどがあります。
print(len(response['points'])) # 3
print(response['points'][0].station.name) # 有楽町
print(response['points'][0].prefecture.name) # 東京都
print(response['points'][0].prefecture.code) # 13
ソースコード
SDKのコードは以下のリポジトリにて公開しています。ライセンスはMIT Licenseです。
ソースコード
SDKのコードは以下のリポジトリにて公開しています。ライセンスはMIT Licenseです。
まとめ
経路探索は今回紹介したものの他、前後のダイヤ探索や平均待ち時間探索などさまざまな種類があります。今後のSDKのアップデートにて対応する予定なので、ぜひご利用ください。
何か不具合があれば、Issueにて連絡いただければ対応します。
Discussion