1
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を使って、N分以内で行ける駅を探す

Posted at

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

駅すぱあとは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のみ)

1
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
1
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?