はじめに
定期券
交通費精算(定期区間控除)
通勤費管理(定期代支給)
探索
運賃
探索結果
探索条件
地点
路線
路線図

二区間定期券などの特殊な定期券の定期代を調べる

探索経路に定期券の種類として、複数の選択肢が存在する場合があります。
例えば、「一般定期」と「だぶるーと」がある場合、「一般定期」と「全線定期」がある場合、等です。

ここでは、二区間定期券が存在する経路の場合に、二区間定期券として定期代を取得する方法を記載します。


 Attention!

経路探索結果に定期券の種類での定期代を出力できるのは、経路探索 (/search/course/extreme) のみとなります。 それ以外の経路探索(経路簡易探索平均待ち時間探索)は、 条件設定を行うconditionDetailパラメータを付加することができません。

関連URL

手順

1. 経路探索に用いる条件を生成する

二区間定期券は、デフォルトでは経路探索結果に返りません。
二区間定期券の利用を有効にするには、探索条件生成のnikukanteikiパラメータに、二区間定期券の利用フラグを指定します。
なお、定期券の種類のうち、二区間定期券に分類されるもの以外は、探索条件での利用フラグの指定によらず、経路探索結果から取得できます。

GET /v1/xml/toolbox/course/condition?key=アクセスキーを入力してください&nikukanteiki=true
<?xml version="1.0" encoding="UTF-8"?>
<ResultSet apiVersion="1.27.0.0" engineVersion="202010_02a">
  <Condition>T3221233232319:F3321122220000:A23121141:</Condition>
</ResultSet>

2. 経路探索を行う

1で生成した詳細探索条件を用いて経路探索 /search/course/extreme を行います。

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

GET /v1/xml/search/course/extreme?key=アクセスキーを入力してください&viaList=和光市:池袋:飯田橋&conditionDetail=T3221233232319:F3321122220000:A23121141:&searchType=plain
<?xml version="1.0" encoding="UTF-8"?>
<ResultSet apiVersion="1.27.0.0" engineVersion="202206_04a">
  <Course searchType="plain" dataType="plain">
      :
    <!-- 金額は一般定期の定期代になっている -->
    <Price kind="Teiki1Summary">
      <Oneway>16960</Oneway>
    </Price>
    <Price passClassIndex="1" kind="Teiki1" index="1" selected="true" nikukanteikiIndex="1" ...>
      <Type>Teiki1</Type>
      <Oneway>16960</Oneway>
      <RevisionStatus>latest</RevisionStatus>
    </Price>
    <Price kind="Teiki3Summary">
      <Oneway>48340</Oneway>
    </Price>
    <Price passClassIndex="1" kind="Teiki3" index="1" selected="true" nikukanteikiIndex="1" ...>
      <Type>Teiki3</Type>
      <Oneway>48340</Oneway>
      <RevisionStatus>latest</RevisionStatus>
    </Price>
    <Price kind="Teiki6Summary">
      <Oneway>91590</Oneway>
    </Price>
    <Price passClassIndex="1" kind="Teiki6" index="1" selected="true" nikukanteikiIndex="1" ...>
      <Type>Teiki6</Type>
      <Oneway>91590</Oneway>
      <RevisionStatus>latest</RevisionStatus>
    </Price>
    <!-- 一般定期の PassStatus/selected が true になっている -->
    <PassStatus kind="nikukanteiki" index="1" selected="true" ...>
      <Name>一般定期</Name>
      <Type>Normal</Type>
      <Comment />
    </PassStatus>
    <PassStatus kind="nikukanteiki" index="2" selected="false" ...>
      <Name>二区間定期券</Name>
      <Type>ToubuTwoRoute</Type>
      <Comment />
    </PassStatus>
  </Course>
     :
</ResultSet>

この時点では、 ResultSet/Course/PassStatus/selected が一般定期券の方がtrueになっているので、定期代は一般定期として計算されています。

ResultSet/Course/PassStatus/selected をtrueにすることで、二区間定期券としての定期代が算出されます。

3. 経路の運賃を切り替える

探索結果の運賃切り替えを行います。

2のレスポンスのResultSet/Course/PassStatusのうち、二区間定期券を表しているPassStatus(kind="nikukanteiki")のindexの値を、passClassIndexパラメータの値に指定して、定期券の種類を切り替えることで、二区間定期としての定期代が取得できます。


 Attention!

※二区間定期券への運賃切り替えにおいて、nikukanteikiIndexは非推奨としています。これから開発を始める方は、passClassIndexをご利用ください。

GET /v1/xml/course/recalculate?key=アクセスキーを入力してください&passClassIndex=2&serializeData=2で取得できる経路シリアライズデータを入れてください
<?xml version="1.0" encoding="UTF-8"?>
<ResultSet apiVersion="1.27.0.0" engineVersion="202206_04a">
  <Course dataType="plain">
      :
    <!-- 金額が二区間定期券の定期代に切り替わっている -->
    <Price kind="Teiki1Summary">
      <Oneway>18790</Oneway>
    </Price>
    <Price passClassIndex="2" kind="Teiki1" index="1" selected="true" nikukanteikiIndex="2" ...>
      <Type>Teiki1</Type>
      <Oneway>18790</Oneway>
      <RevisionStatus>latest</RevisionStatus>
    </Price>
    <Price kind="Teiki3Summary">
      <Oneway>53560</Oneway>
    </Price>
    <Price passClassIndex="2" kind="Teiki3" index="1" selected="true" nikukanteikiIndex="2" ...>
      <Type>Teiki3</Type>
      <Oneway>53560</Oneway>
      <RevisionStatus>latest</RevisionStatus>
    </Price>
    <Price kind="Teiki6Summary">
      <Oneway>101480</Oneway>
    </Price>
    <Price passClassIndex="2" kind="Teiki6" index="1" selected="true" nikukanteikiIndex="2" ...>
      <Type>Teiki6</Type>
      <Oneway>101480</Oneway>
      <RevisionStatus>latest</RevisionStatus>
    </Price>
    <PassStatus kind="nikukanteiki" index="1" selected="false" ...>
      <Name>一般定期</Name>
      <Type>Normal</Type>
      <Comment />
    </PassStatus>
    <!-- 二区間定期券の PassStatus/selected が true に切り替わっている -->
    <PassStatus kind="nikukanteiki" index="2" selected="true" ...>
      <Name>二区間定期券</Name>
      <Type>ToubuTwoRoute</Type>
      <Comment />
    </PassStatus>
  </Course>
</ResultSet>
ページ上部へ