0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

駅すぱあと VBA SDKを使って、経路探索の条件を設定する

Last updated at Posted at 2024-10-16

本記事はヴァル研究所の支援として作成された記事です

駅すぱあとはAPIを公開しており、駅情報や経路探索などをAPI経由で行えます。メソッドはすべてGETメソッドで、情報取得系のみです。レスポンスはJSONまたはXMLで返ってきます。

この駅すぱあと APIを利用しやすくするSDKを開発しはじめました。SDKはVBAで作っており、Excelなどから利用できます(Windowsのみ、macOSでは利用できません)。

今回は、スタンダードプランで提供されている探索条件生成APIに対応しました。

探索条件とは、経路探索において設定する条件のことです。例えば乗り換え時間を「せかせか歩く」と設定したり、会社の交通費精算では「有料特急を使う経路を出さない」など、状況に応じた探索条件を設定できます。

image1.png

では、使い方を紹介します。

必要な情報

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のみ)

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?