みなさんこんにちは。
駅すぱあとWebサービスが扱っている日本の公共交通期間は巨大で複雑なシステムです。そのため、それらをコンピューターの世界に表現する駅すぱあとWebサービスには、一見わかりづらい独自の用語・概念が多く含まれています。
ドキュメントサイトのDictionaryページでは、そういった用語や概念についての説明を行っています。ぜひご覧ください。
とはいえ、実際に駅すぱあとWebサービスを使用する際には、それらの用語・概念を組み合わせて理解しておく必要があります。そのため今回は、Dictionaryから駅すぱあとWebサービスの頻出用語の一つ「駅」について、他の様々な用語や概念を交えながらお話しします。
駅すぱあとWebサービスにおける「駅」とは?
じつは駅すぱあとWebサービスにおける「駅」には、鉄道駅だけではなく、バスや空港、港も含まれています。
駅の情報を返す「駅情報(/station)」APIで実際に見てみましょう。 例として「函館」にマッチする「駅」を表示してみます。
https://api.ekispert.jp/v1/json/station?key=アクセスキーを入力してください&name=函館
//略 { "Yomi": "はこだて", "Type": "train", "Name": "函館", "code": "20441" }, { "Yomi": "はこだてどっくまえ", "Type": "train", "Name": "函館どつく前", "code": "20444" }, //略 { "Yomi": "はこだてばすせんたー", "Type": { "detail": "local", "text": "bus" }, "Name": "函館バスセンター/函館バス", "code": "1053501" } { "Yomi": "はこだてこう", "Type": "ship", "Name": "函館港(七重浜)", "code": "29442" } //略
JSONPathで表現すると $.ResultSet.Point[*].Station.Type
で取得される箇所に、train/local/shipのような文字列が入っています。これは「交通種別」と呼ばれる要素で、その名の通り、その「駅」がどの交通種別に属する「駅」なのかを表しています。
例えばtrainは鉄道を、localは路線バスを、shipは船を表しています。
交通種別を絞って検索するには?
API呼び出し時にこの交通種別を指定することで、バスや空港といった交通種別を絞った状態でのデータ取得が可能になります。 例えば以下のようなリクエストを投げると、「函館」にマッチする駅のうち、鉄道駅のみが返ります。
https://api.ekispert.jp/v1/json/station?key=アクセスキーを入力してください&name=函館&type=train
駅情報と同様に、交通種別が指定可能なAPIは以下の通りです。
いずれのAPIも、typeパラメータを使用して type=train
の形で絞り込みたい交通種別を指定できます。また、 {type=train:ship` のように、複数の交通種別を指定することもできます。
経路探索で、利用する交通種別を絞るには?
駅の情報を取得するAPIでは、type=train
のような形で交通種別を指定することができました。
経路探索ではどうかというと...typeパラメータではなく、「探索条件生成」という機能で得られる文字列を、conditionDetailパラメータを指定することで、利用交通手段を絞った経路探索ができます。 探索条件生成では交通種別だけでなく、様々な条件(発時刻・着時刻のどちらで探索するか、定期券の種別をどうするかetc...)を指定した文字列が作成できます。
探索条件生成を使った経路探索については、また別の記事でご紹介できればと思います。
まとめ
今回は駅すぱあとWebサービスにおける、「駅」の概念について紹介させていただきました。 駅すぱあとWebサービスにおける「駅」は、一般的に「駅」という言葉から連想される鉄道駅だけでなく、バスや空港、港といった、駅すぱあとでの探索経路に含められる概念上の「駅」も含まれています。 (とは言っても、「出発駅にXXバスの停留所を指定して...」のような、口頭で話すような場面でないと一般的なイメージとの差異を感じることは少ないかもしれません) ご留意のうえ駅すぱあとWebサービスをご活用ください。
また、交通種別における「バス」は、高速バスや連絡バスといった、さらに細分化した指定が可能になっていますが、こちらも別の記事で紹介できればと思います。