本記事はヴァル研究所の支援として作成された記事です
駅すぱあとはAPIを公開しており、駅情報や経路探索などをAPI経由で行えます。メソッドはすべてGETメソッドで、情報取得系のみです。レスポンスはJSONまたはXMLで返ってきます。
この駅すぱあと APIを利用しやすくするSDKを開発しはじめました。SDKはVBAで作っており、Excelなどから利用できます(Windowsのみ、macOSでは利用できません)。
今回は、スタンダードプランで提供されている探索条件生成APIに対応しました。
探索条件とは、経路探索において設定する条件のことです。例えば乗り換え時間を「せかせか歩く」と設定したり、会社の交通費精算では「有料特急を使う経路を出さない」など、状況に応じた探索条件を設定できます。
では、使い方を紹介します。
必要な情報
SDKを利用する際にはAPIキーが必要です。無料トライアルがあるので、こちらから取得してください。
注意点
- SDKはWindowsでのみ動作します
- SDKは非公式です。公式サポートへの問い合わせはご遠慮ください
ファイルのインポート
こちらのリポジトリにある *.cls
と *.bas
ファイルをすべてインポートします。これらは以下のライブラリを含んでいます。
初期化
先ほど取得したAPIキーを使ってSDKを初期化します。
Dim client As Ekispert
Set client = New Ekispert
client.ApiKey = "YOUR_API_KEY"
探索条件生成の設定
探索条件生成を行う際には、 ToolboxCourseConditionQuery
を使います。各種探索条件を指定したら、 Find
メソッドを使って探索条件を取得できます。
この探索条件はテンプレートのように利用でき、さらに別な探索条件を指定して異なる探索条件を生成することもできます。この他の探索条件は探索条件生成 - 駅すぱあと API Documents 駅データ・経路検索のWebAPIを参照してください。条件は文字列、または真偽値で指定します。
Dim Query As ToolboxCourseConditionQuery
Set Query = Client.ToolboxCourseConditionQuery()
Query.Plane = "normal" ' 飛行機の利用について
Query.Walk = "little" ' 駅間徒歩について
処理の実行
探索条件を設定したら、条件作成処理を実行します。結果は ResultSet
クラスになります。処理がうまくいったかどうかは ResultSet.Success
の値で判定してください。
Dim Result As ResultSet
Result = Query.Find()
Debug.Print Result.Success ' True または False
エラーだった場合
もし探索がエラーだった場合は ResultSet.Error
の中にエラー情報があります(駅すぱあと APIからのエラーの場合)。
If Not Result.Success Then
MsgBox Result.Error.Message
Exit Sub
End If
成功した場合
処理が成功した場合、 ResultSet.Condition
に探索条件が入っています。
Debug.Print Result.Condition
探索条件は 経路探索 - 駅すぱあと API Documents 駅データ・経路検索のWebAPI にて conditionDetail
へ適用できます。
Dim Query1 As CourseExtremeQuery
Set Query1 = Client.CourseExtremeQuery()
' 探索条件を設定
Query1.ConditionDetail = Result.Condition
Dim Result1 As ResultSet
' 探索実行
Result1 = Query1.Find()
ソースコード
SDKのコードは以下のリポジトリにて公開しています。ライセンスはMIT Licenseです。
EkispertAPIMania/VBA-SDK: Excel VBAなどで動作する駅すぱあと VBA SDKです(Windowsのみ)
まとめ
探索条件生成はさまざまな条件を指定できます。日付などはないので、汎用的な探索条件を生成して再利用するのに便利です。SDKを使って、Excelなどから駅すぱあと APIを利用してみてください。
何か不具合があれば、Issueにて連絡いただければ対応します(macOSでは動かないので注意してください)。
EkispertAPIMania/VBA-SDK: Excel VBAなどで動作する駅すぱあと VBA SDKです(Windowsのみ)