はじめに
Tips一覧
定期券
探索(運賃)
探索(探索結果)
探索(探索条件)
探索(地点)
探索(路線)
路線図

探索結果から前後のダイヤを取得する

ダイヤによる探索での経路探索結果を用いて、前後のダイヤを取得します。

※ API利用時のイメージ図 駅すぱあと for web

関連URL

手順

京都(駅コード:25647) -> 大阪(駅コード:25853)の1区間目の前後ダイヤ取得を例に解説します。

1. 経路探索を行う

ダイヤによる探索を行います。 下記に示す4つの値を取得します。

  • 列車名        : ResultSet / Course / Route / Line / Name
  • 区間の出発時刻    : ResultSet / Course / Route / Line / DepartureState / Datetime
  • 区間の到着時刻    : ResultSet / Course / Route / Line / ArrivalState / Datetime
  • 区間インデックス   : ResultSet / Course / Route / Line / index
  • 経路シリアライズデータ: ResultSet / Course / SerializeData

リクエスト例では、2018年6月1日午前9時出発、京都駅(駅コード: 25647)-> 大阪駅(駅コード: 25853)という条件で、ダイヤによる探索を行います。

リクエスト例では、経路探索 /search/course/extreme を利用していますが、 ダイヤでの探索を行うことができる他のAPI(経路簡易探索 /search/course)でも利用することができます。

GET /v1/xml/search/course/extreme?key=アクセスキーを入力してください&viaList=25647:25853&date=20180601&time=0900&answerCount=1&searchType=departure
<ResultSet apiVersion="1.27.0.0" engineVersion="201805_02a">
  <Course searchType="departure" dataType="onTimetable">
    <Route index="1" transferCount="1">
      <Point index="1">
        <Station code="25647">
          <Name>京都</Name>
          <Type>train</Type>
          <Yomi>きょうと</Yomi>
        </Station>
          :
      </Point>
      <!-- 区間インデックス(1区間目。今回の例ではこちらを利用) -->
      <Line stopStationCount="0" track="railway" index="1" ...>
        <!-- 列車名 -->
        <Name>JR新幹線のぞみ</Name>
        <Type detail="shinkansen">train</Type>
        <ArrivalState no="22">
          <Type>normal</Type>
          <!-- 区間の到着時刻 -->
          <Datetime operation="today">2018-06-01T09:13:00+09:00</Datetime>
        </ArrivalState>
        <Destination>新大阪</Destination>
        <Number>201</Number>
        <TimeReliability>onTimetable</TimeReliability>
        <DepartureState no="13">
          <Type>normal</Type>
          <!-- 区間の出発時刻 -->
          <Datetime operation="today">2018-06-01T09:00:00+09:00</Datetime>
        </DepartureState>
        <Color>051102255</Color>
      </Line>
      <Point index="2">
        <Station code="25978">
          <Name>新大阪</Name>
          <Type>train</Type>
          <Yomi>しんおおさか</Yomi>
        </Station>
          :
      </Point>
      <!-- 区間インデックス(2区間目。今回の例ではこちらは利用しません) -->
      <Line stopStationCount="0" track="railway" index="2" ...>
        :
      </Line>
        :
    </Route>
      :
    <!-- 経路シリアライズデータ -->
    <SerializeData>VkV4QaEByALDAqYBM|4WA6YBM|4WBJHCAUMAAAACpgEz7hYDyQEBAgEDAQQBBwEIAQoCD0L_fxCl__cFlsECpWQvwQKlZXrBAqVk_cECpVkswQKlZ27BAqVj3QaSwwEBAgEDyQGlK|ICBQMGBKTJBQ8GRDIwMUEHAwgBCQbDAQECAQPHAaUbAgIdAx4FAwZENzM1VAcFCAQHksYBpgEz7nkDpQIcBKUCKQUABgIIAMYBpgEz7nkCAQOlAi8EpQIzBQAIAAiSxQQBBQEGAQekhggBxgIBBAIFAQYBB6SxCAIJkcICAQMBD5HFAZMAAQICksMBAAIAAwDDAQECAQMBA5LDAQACAAMAwwEBAgEDAQSRAAWRAA**--T3221233232319:F332112212000:A23121141:--24580c099d679f9421ade5ce2300dd28070eebbb--0--0--0--277</SerializeData>
  </Course>
</ResultSet>

2. 前後のダイヤの取得

1の経路探索結果を利用して、平均路線情報から区間ごとに前後のダイヤを取得します。 まず、1で取得した経路探索結果を以下のパラメータに代入して、リクエストを送信します。

前後のダイヤを取得するには、探索結果と合致する、基準のダイヤが必要となります。
平均路線情報で取得した結果から、1で取得した列車名、及び出発時刻と合致する/ResultSet/Lineを探します。

  • 出発時刻: / ResultSet / Line / DepartureState / Datetime
  • 列車名 : / ResultSet / Line / Name

例では、/ResultSet/Line/codeBoth:81となっている路線情報が合致しました。
/ResultSet/Line/codeの値のBoth以下の数値は、/ResultSet/Line/DepartureState/Datetimeの昇順となっています。
従って、前後の5つの発着時刻を取得したい場合は、以下の要素下を参照します。

  • 前のダイヤ: / ResultSet / Line / code の値がBoth:76 ~ Both:80となっている要素
  • 後のダイヤ: / ResultSet / Line / code の値がBoth:82 ~ Both:86となっている要素

以上の操作で、前後のダイヤを取得できます。 sectionIndexの値を変更することで、他の区間を指定することが可能です。

GET /rail?key=アクセスキーを入力してください&sectionIndex=1&serializeData=VkV4QaEByALDAqYBM|4WA6YBM|4WBJHCAUMAAAACpgEz7hYDyQEBAgEDAQQBBwEIAQoCD0L_fxCl__cFlsECpWQvwQKlZXrBAqVk_cECpVkswQKlZ27BAqVj3QaSwwEBAgEDyQGlK|ICBQMGBKTJBQ8GRDIwMUEHAwgBCQbDAQECAQPHAaUbAgIdAx4FAwZENzM1VAcFCAQHksYBpgEz7nkDpQIcBKUCKQUABgIIAMYBpgEz7nkCAQOlAi8EpQIzBQAIAAiSxQQBBQEGAQekhggBxgIBBAIFAQYBB6SxCAIJkcICAQMBD5HFAZMAAQICksMBAAIAAwDDAQECAQMBA5LDAQACAAMAwwEBAgEDAQSRAAWRAA**--T3221233232319:F332112212000:A23121141:--24580c099d679f9421ade5ce2300dd28070eebbb--0--0--0--277
<ResultSet apiVersion="1.27.0.0" engineVersion="201805_02a">
    :
  <Line code="Both:81">
    <!-- 列車名 -->
    <Name>JR新幹線のぞみ</Name>
    <Type detail="shinkansen">train</Type>
    <ArrivalState no="22">
      <Datetime operation="today">09:13:00+09:00</Datetime>
    </ArrivalState>
    <Number>201</Number>
    <DepartureState no="13">
      <!-- 出発時刻 -->
      <Datetime operation="today">09:00:00+09:00</Datetime>
    </DepartureState>
    <Color>051102255</Color>
  </Line>
    :
</ResultSet>