本記事はヴァル研究所の支援として作成された記事です
駅すぱあとはAPIを公開しており、駅情報や経路探索などをAPI経由で行えます。メソッドはすべてGETメソッドで、情報取得系のみです。レスポンスはJSONまたはXMLで返ってきます。
この駅すぱあと APIを利用しやすくするSDKを開発しはじめました。SDKはVBAで作っており、Excelなどから利用できます(Windowsのみ、macOSでは利用できません)。
今回は、スタンダードプランで提供されている緯度経度からの周辺駅検索APIに対応しましたので、その使い方を紹介します。
範囲探索機能はN分以内で行ける駅を探す機能ですが、例えば不動産サイトやバイト探しサイトの「通勤時間から探す」機能や、通勤時間から配置できる店舗を探す「人員配置」などによく採用される機能です。
それでは、SDKの使い方について解説します。
必要な情報
SDKを利用する際にはAPIキーが必要です。無料トライアルがあるので、こちらから取得してください。
注意点
- SDKはWindowsでのみ動作します
- SDKは非公式です。公式サポートへの問い合わせはご遠慮ください
ファイルのインポート
こちらのリポジトリにある *.cls
と *.bas
ファイルをすべてインポートします。これらは以下のライブラリを含んでいます。
初期化
先ほど取得したAPIキーを使ってSDKを初期化します。
Dim client As Ekispert
Set client = New Ekispert
client.ApiKey = "YOUR_API_KEY"
範囲探索の探索条件の設定
範囲探索は SearchMultipleRangeQuery
を使います。このオブジェクトを取得し、検索条件を設定します。
Dim Query As SearchMultipleRangeQuery
Set Query = Client.SearchMultipleRangeQuery()
' 探索条件の設定
Query.BaseList(0) = "有楽町"
Query.UpperMinute(0) = 15
探索条件は 範囲探索 - 駅すぱあと API Documents 駅データ・経路検索のWebAPI にあるものを指定できます。 date
は予約語なので、 DateProp
プロパティを利用してください。
検索の実行
探索条件を設定したら、探索処理を実行します。結果は 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.Points
の中に地点情報が入っています。各地点情報には Station
(駅情報) や GeoPoint
(位置情報) 、 Cost
(起点駅毎の所要時間や乗換回数を表す情報)プロパティなどがあります。
Dim i As Long
For i = 0 To UBound(Result.Points)
Debug.Print Result.Points(i).Station.Name
Debug.Print Result.Points(i).Cost.Minute
Next
また、 Result.Bases
には起点を表す配列が入ります。
For i = 0 To UBound(Result.Bases)
Debug.Print Result.Bases(i).Point.Station.Name
Debug.Print Result.Bases(i).Point.Prefecture.Name
Next
ソースコード
SDKのコードは以下のリポジトリにて公開しています。ライセンスはMIT Licenseです。
EkispertAPIMania/VBA-SDK: Excel VBAなどで動作する駅すぱあと VBA SDKです(Windowsのみ)
まとめ
範囲探索は複数の駅情報を起点として、周囲にある駅情報を取得できます。所要時間や乗換回数など、さまざまな条件で探索できるので、ぜひ試してください。
何か不具合があれば、Issueにて連絡いただければ対応します(macOSでは動かないので注意してください)。
EkispertAPIMania/VBA-SDK: Excel VBAなどで動作する駅すぱあと VBA SDKです(Windowsのみ)