定期券利用時の運賃計算

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

attention!

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

関連URL

手順

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

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

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

GET /v1/xml/search/course/extreme?viaList=高円寺:立川&searchType=plain
<ResultSet apiVersion="1.26.0.0" engineVersion="201512_04a">
<Course searchType="plain" dataType="plain">
<Route timeOther="6" timeOnBoard="28" exhaustCO2="406" index="1" exhaustCO2atPassengerCar="3595" distance="214" timeWalk="0" transferCount="0">
<Point index="1">
<Station code="22671">
<Name>高円寺</Name>
:
<Line direction="Down" stopStationCount="11" teiki3Index="1" teiki6Index="1" timeOnBoard="28" exhaustCO2="406" fareIndex="1" index="1" exhaustCO2atPassengerCar="3595" distance="214" teiki1Index="1">
<Name>JR中央線快速</Name>
:
<Point index="2">
<Station code="22799">
<Name>立川</Name>
:

駅名称 ResultSet/Course/Route/Point/Station/Name と、 ResultSet/Course/Route/Line/Name と、 ResultSet/Course/Route/Line/direction の文字列を : でつなげて、 高円寺:JR中央線快速:Down:立川 という定期経路文字列を作成します。2で利用するassignDetailRouteパラメータの値となります。

2. 経路探索を行う

1で作成した定期経路文字列を用いて、経路探索 /search/course/extreme を行います。 bringAssignmentErrorパラメータを利用すると、割り当てされていない場合にエラーを出力します。

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

GET /v1/xml/search/course/extreme?viaList=新宿:八王子&assignDetailRoute=高円寺:JR中央線快速:Down:立川&bringAssignmentError=true
<ResultSet apiVersion="1.26.0.0" engineVersion="201512_04a">
<Course searchType="departure" dataType="onTimetable">
:
<Price kind="FareSummary">
<Oneway>330</Oneway>
<Round>660</Round>
</Price>
:

定期券を考慮しない場合の運賃は480円(2015/12/18現在、普通乗車券)なので、定期券を利用して運賃が計算されていることがわかります。

attention!

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