本記事はヴァル研究所の支援として作成された記事です
駅すぱあとはAPIを公開しており、駅情報や経路探索などをAPI経由で行えます。メソッドはすべてGETメソッドで、情報取得系のみです。レスポンスはJSONまたはXMLで返ってきます。
この駅すぱあと APIを利用しやすくするSDKを開発しはじめました。SDKはVBAで作っており、Excelなどから利用できます(Windowsのみ、macOSでは利用できません)。
まずは駅情報取得APIができたので、その使い方を解説します。
必要な情報
SDKを利用する際にはAPIキーが必要です。無料トライアルがあるので、こちらから取得してください。
注意点
- SDKはWindowsでのみ動作します
- SDKは非公式です。公式サポートへの問い合わせはご遠慮ください
ソースコード
SDKのコードは以下のリポジトリにて公開しています。ライセンスはMIT Licenseです。
EkispertAPIMania/VBA-SDK: Excel VBAなどで動作する駅すぱあと VBA SDKです(Windowsのみ)
ファイルのインポート
こちらのリポジトリにある *.cls
と *.bas
ファイルをすべてインポートします。これらは以下のライブラリを含んでいます。
初期化
先ほど取得したAPIキーを使ってSDKを初期化します。
Dim client As Ekispert
Set client = New Ekispert
client.ApiKey = "YOUR_API_KEY"
駅情報検索条件の設定
駅情報検索は StationQuery
を使います。このオブジェクトを取得し、検索条件を設定します。
Dim Query As StationQuery
Set Query = client.StationQuery()
Query.Name = "東京" ' 駅名で検索
検索条件は 駅情報 - 駅すぱあと API Documents 駅データ・経路検索のWebAPI にあるものを指定できます。なお、駅情報取得には簡易版(無料版)と有料版があります。現在は有料版のインタフェースのみ対応しています(フラグで無料版にも対応できる形にする予定です)。
検索の実行
検索条件を設定したら、検索処理を実行します。結果は 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
(位置情報) 、 Prefecture
(都道府県) プロパティなどがあります。
Debug.Print Result.Max ' 200(検索結果数)
Debug.Print Result.Points(0).Station.Code ' 22828
Debug.Print Result.Points(0).GeoPoint.Latitude_DD ' 35.678083
Debug.Print Result.Points(0).GeoPoint.Longitude_DD ' 139.770444
Debug.Print Result.Points(0).Prefecture.Name ' 東京都
Dim i As Long
For i = 0 To UBound(Result.Points)
Debug.Print i & " " & Result.Points(i).Station.Code
Next i
まとめ
駅情報は、経路探索の基本になります。まだ経路探索はできませんが、これから徐々に機能を追加していきます。ぜひお試しください。
何か不具合があれば、Issueにて連絡いただければ対応します(macOSでは動かないので注意してください)。
EkispertAPIMania/VBA-SDK: Excel VBAなどで動作する駅すぱあと VBA SDKです(Windowsのみ)