定期券利用時の運賃計算

定期券利用時の運賃計算を行います。

※API利用時のイメージ図 (駅すぱあとWebサービス HTML5 インターフェースサンプル)

50a8767d-c475-4460-a699-b068bd151a4e.png (92.3 kB)

attention!

定期として割り当てることができる経路は鉄道のみです。

関連URL

手順

1. 定期経路の文字列を作成する

平均待ち時間による探索を行います。ダイヤによる探索では定期経路の文字列を作成することはできません。 リクエスト例では経路探索/search/course/extreme を利用していますが、 平均待ち時間による探索を行うことができるAPI(経路簡易探索平均待ち時間探索)でも可能です。

※リクエスト例では日本語で記述しておりますが、リクエストパラメータに日本語が含まれる場合には、日本語の部分をUTF8でURLエンコード(パーセントエンコード)してください。

GET /v1/xml/search/course/extreme?key=アクセスキーを入力してください&viaList=高円寺:渋谷&searchType=plain
<ResultSet apiVersion="1.27.0.0" engineVersion="201704_01a">
<Course searchType="plain" dataType="plain">
<Route timeOther="9" timeOnBoard="13" exhaustCO2="202" index="1" exhaustCO2atPassengerCar="1545" distance="92" timeWalk="0" transferCount="1">
<Point index="1">
<Station code="22671">
<Name>高円寺</Name>
:
<Line direction="Up" stopStationCount="1" teiki3Index="1" teiki6Index="1" timeOnBoard="6" exhaustCO2="127" fareIndex="1" index="1" exhaustCO2atPassengerCar="974" distance="58" teiki1Index="1">
<Name>JR中央線快速</Name>
:
<Point index="2">
<Station code="22741">
<Name>新宿</Name>
:
<Line direction="Down" stopStationCount="2" teiki3Index="1" teiki6Index="1" timeOnBoard="7" exhaustCO2="74" fareIndex="1" index="2" exhaustCO2atPassengerCar="571" distance="34" teiki1Index="1">
<Name>JR山手線内回り</Name>
:
<Point index="3">
<Station code="22715">
<Name>渋谷</Name>
:

駅の名称 ResultSet/Course/Route/Point/Station/Name と、平均路線 ResultSet/Course/Route/Line/Name と、平均路線の方向 ResultSet/Course/Route/Line/direction の文字列を : でつなげて、 高円寺:JR中央線快速:Up:新宿:JR山手線内回り:Down:渋谷 という定期経路文字列を作成します。 2で利用するassignDetailRouteパラメータの値となります。

2. 経路探索を行う

1で作成した定期経路文字列を用いて、経路探索 /search/course/extreme を行います。 リクエスト例では経路探索/search/course/extreme を利用していますが、 再現もしくは定期・列車割り当てでも可能です。 bringAssignmentErrorパラメータを利用すると、割り当てされていない場合にエラーを出力します。

※リクエスト例では日本語で記述しておりますが、リクエストパラメータに日本語が含まれる場合には、日本語の部分をUTF8でURLエンコード(パーセントエンコード)してください。

GET /v1/xml/search/course/extreme?key=アクセスキーを入力してください&viaList=新宿:恵比寿&assignDetailRoute=高円寺:JR中央線快速:Up:新宿:JR山手線内回り:Down:渋谷&bringAssignmentError=true
<ResultSet apiVersion="1.27.0.0" engineVersion="201705_02a">
<Course searchType="departure" dataType="onTimetable">
<Route timeOther="6" timeOnBoard="45" exhaustCO2="708" index="1" exhaustCO2atPassengerCar="5409" distance="322" timeWalk="0" transferCount="1">
<Point index="1">
<Station code="22799">
<Name>立川</Name>
:
<Line stopStationCount="11" teiki3Index="1" teiki6Index="1" timeOnBoard="29" track="railway" exhaustCO2="470" fareIndex="1" index="1" exhaustCO2atPassengerCar="3595" distance="214" teiki1Index="1">
<Name>JR中央線快速・東京行</Name>
<Type>train</Type>
<ArrivalState no="4">
<Type>extension</Type>
<Datetime operation="today">2017-04-27T17:29:00+09:00</Datetime>
</ArrivalState>
<Destination>東京</Destination>
<TimeReliability>onTimetable</TimeReliability>
<DepartureState no="4">
<Type>normal</Type>
<Datetime operation="today">2017-04-27T17:00:00+09:00</Datetime>
</DepartureState>
<Color>250060002</Color>
</Line>
<Point index="2">
<Station code="22671">
<Name>高円寺</Name>
:
<Line stopStationCount="1" teiki3Index="1" teiki6Index="1" timeOnBoard="7" track="railway" exhaustCO2="127" fareIndex="2" index="2" exhaustCO2atPassengerCar="974" distance="58" teiki1Index="1">
<Name>JR中央線快速・東京行</Name>
<Type>train</Type>
<ArrivalState no="8">
<Type>normal</Type>
<Datetime operation="today">2017-04-27T17:36:00+09:00</Datetime>
</ArrivalState>
<Destination>東京</Destination>
<TimeReliability>onTimetable</TimeReliability>
<DepartureState no="4">
<Type>extension</Type>
<Datetime operation="today">2017-04-27T17:29:00+09:00</Datetime>
</DepartureState>
<Color>250060002</Color>
</Line>
<Point index="3">
<Station code="22741">
<Name>新宿</Name>
:
<Line stopStationCount="2" teiki3Index="1" teiki6Index="1" timeOnBoard="7" track="railway" exhaustCO2="74" fareIndex="2" index="3" exhaustCO2atPassengerCar="571" distance="34" teiki1Index="1">
<Name>JR山手線内回り・渋谷・品川方面</Name>
<Type>train</Type>
<ArrivalState no="2">
<Type>extension</Type>
<Datetime operation="today">2017-04-27T17:49:00+09:00</Datetime>
</ArrivalState>
<Destination>大崎</Destination>
<TimeReliability>onTimetable</TimeReliability>
<DepartureState no="14">
<Type>normal</Type>
<Datetime operation="today">2017-04-27T17:42:00+09:00</Datetime>
</DepartureState>
<Color>045232013</Color>
</Line>
<Point index="4">
<Station code="22715">
<Name>渋谷</Name>
:
<Line stopStationCount="0" teiki3Index="1" teiki6Index="1" timeOnBoard="2" track="railway" exhaustCO2="35" fareIndex="3" index="4" exhaustCO2atPassengerCar="268" distance="16" teiki1Index="1">
<Name>JR山手線内回り・渋谷・品川方面</Name>
<Type>train</Type>
<ArrivalState no="2">
<Type>normal</Type>
<Datetime operation="today">2017-04-27T17:51:00+09:00</Datetime>
</ArrivalState>
<Destination>大崎</Destination>
<TimeReliability>onTimetable</TimeReliability>
<DepartureState no="2">
<Type>extension</Type>
<Datetime operation="today">2017-04-27T17:49:00+09:00</Datetime>
</DepartureState>
<Color>045232013</Color>
</Line>
<Point index="5">
<Station code="22548">
<Name>恵比寿</Name>
:
<Price kind="FareSummary">
<Oneway>530</Oneway>
<Round>1060</Round>
:

レスポンスを見ると、定期券を考慮した場合の片道運賃は530円(2017/04現在、普通乗車券)となっています。 定期券を考慮しない場合の片道運賃は550円(2017/04現在、普通乗車券)なので、定期券を利用して運賃が計算されていることがわかります。

note

新宿~恵比寿はJR山手線が通っており、乗り換えせずに行くことができますが、 レスポンスでは渋谷駅で区間が途切れています。

スクリーンショット 2017-04-27 23.13.14.png (104.8 kB)

これは、駅の状態(ResultSet/Course/Route/Line/DepartureState/Typeまたは ResultSet/Course/Route/Line/ArrivalState/Type)の値を見ることで、駅に乗り入れているのかそうでないのか判断することができます。 新宿〜渋谷間のResultSet/Course/Route/Line/ArrivalState/Typeと、 渋谷〜恵比寿間のResultSet/Course/Route/Line/DepartureState/Typeextensionという値となっています。 つまり、渋谷を通過する、という情報を表しているだけで、乗り換えは不要であることが分かります。

attention!

定期券利用時の運賃計算を行う際にassignRouteパラメータを利用することも出来ますが、一部の環状線は逆方向も控除されてしまう事があるため、経路の厳密性を担保するために、路線の方向を考慮するassignDetailRouteパラメータの利用を推奨しています。 方向(上り・下り)の要素も付加したassignDetailRouteパラメータを指定することで、より正確に区間控除を行うことが可能となります。