LoginSignup
0
0

駅すぱあと VBA SDKを使って駅情報を取得する

Posted at

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

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

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