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を使って平均待ち時間探索を行う

Posted at

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

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

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

今回は、スタンダードプランで提供されている平均待ち時間探索APIに対応したので、その使い方を解説します。

平均待ち時間探索とは

平均待ち時間探索は、時刻表を加味しないで目的地への色々な経路を探索します。平均待ち時間とは、1日に運行されている列車の本数などから割り出した、平均的に考えられる待ち時間になります。

詳細は平均待ち時間による探索 - 駅すぱあと API Documents 駅データ・経路検索のWebAPIを参照してください。

必要な情報

SDKを利用する際にはAPIキーが必要です。無料トライアルがあるので、こちらから取得してください。

注意点

  • SDKはWindowsでのみ動作します
  • SDKは非公式です。公式サポートへの問い合わせはご遠慮ください

ファイルのインポート

こちらのリポジトリにある *.cls*.bas ファイルをすべてインポートします。これらは以下のライブラリを含んでいます。

初期化

先ほど取得したAPIキーを使ってSDKを初期化します。

Dim client As Ekispert
Set client = New Ekispert
client.ApiKey = "YOUR_API_KEY"

平均待ち時間の検索条件設定

平均待ち時間検索は CoursePlainQuery を使います。このオブジェクトを取得し、検索条件を設定します。

Dim Query As CoursePlainQuery
Set Query = client.CoursePlainQuery()
' From/Toは必須
Query.FromProp = "吉祥寺" ' 出発地
Query.ToProp = "札幌" ' 目的地

' 日付の設定
Query.DateProp = Now

検索条件は 平均待ち時間探索 - 駅すぱあと API Documents 駅データ・経路検索のWebAPI にあるものを指定できます。

以下のプロパティは予約語が関係するため、名前を変更していますので注意してください。

検索条件 プロパティ
date DateProp
from FromProp
to ToProp

検索の実行

検索条件を設定したら、検索処理を実行します。結果は 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.Courses の中に経路情報が入っています。各経路には Price (金額情報) や Route (経路) プロパティなどがあります。

Debug.Print Result.Courses(0).Route.Lines(1).stopStationCount ' 途中駅数 4など

ソースコード

SDKのコードは以下のリポジトリにて公開しています。ライセンスはMIT Licenseです。

EkispertAPIMania/VBA-SDK: Excel VBAなどで動作する駅すぱあと VBA SDKです(Windowsのみ)

まとめ

経路探索は今回紹介したものの他、前後のダイヤ探索や時刻表を加味した経路探索などさまざまな種類があります。今後のSDKのアップデートにて対応する予定なので、ぜひご利用ください。

何か不具合があれば、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?