コンテンツにスキップ

運賃 v1


Fares v1 は、fare_attributes.txtfare_rules.txt で構成され、歴史的に GTFS における運賃情報の公式記述方法となっています。しかし、この2つのファイルは効率的に記述できる要素の幅に限界があり、実装も曖昧なものでした。Fares v2は、Fares v1 の制限を解消することを目的として、現在活発に開発が進められている拡張プロジェクトです。

ある機関の運賃規則を定義する

Toronto Transit Commissionの地下鉄ネットワークの旅は、ライダーがPRESTOカードで支払う場合、$3.20 CADです。また、2時間以内であれば、TTCが運営する他の地下鉄、路面電車、バス路線に乗り換えることができます。

このサービスはfare_attributes.txt, fare_rules.txt, transfers.txt というファイルを使って表現することができる.最初のファイル、fare_attributes.txtは代理店の運賃を記述し、以下はpresto運賃の例である。

fare_attributes.txt

fare_id,price,currency_type,payment_method,transfers,transfer_duration
presto_fare,3.2,CAD,1,,7200
  • 運賃の価格は、価格とcurrency_typeに記載されています。
  • ライダーは、地下鉄に乗る前に駅の運賃ゲートで運賃を支払わなければならない。これは、payment_method=1で表される。
  • transfersは無制限の乗り換えを表すため、空欄になっています。
  • transfer_durationは、2時間の乗り換え時間(秒)です。

2つ目のファイル、fare_rules.txtは、運賃を路線とその路線の出発地/目的地に関連付けることで、旅に運賃を割り当てるものです。

そのために、以下のように2つの地下鉄路線をroutes.txtで定義しています。

routes.txt

agency_id,route_id,route_type
TTC,Line1,1
TTC,Line2,1

この例では、Bloor-Yonge駅での乗り換えがモデル化されています。そのために、この駅は2つの別々の駅としてモデル化されています。1つ目はBloor駅、これは1号線が通っており、2つ目はYonge駅、これは2号線が通っている駅です。地下鉄の駅を1つの運賃ゾーンにまとめるために、どちらもzone_id=ttc_subway_stationsとしています。

stops.txt

stop_id,stop_name,stop_lat,stop_lon,zone_id
Bloor,Bloor Station,,43.670049,-79.385389,ttc_subway_stations
Yonge,Yonge Station,,43.671049,-79.386789,ttc_subway_stations

fare_rules.txtでは、さきがけの運賃は地下鉄の路線と駅に以下のような関係で関連づけられています。

  • fare_id=presto_fareの場合,ライダーはLine 1の任意の2駅間(route_id=line1)を移動でき,origin_id=ttc_subway_stationsdestination_id=ttc_subway_stations である.

fare_rules.txt

fare_id,route_id,origin_id,destination_id
presto_fare,line1,ttc_subway_stations,ttc_subway_stations
presto_fare,line2,ttc_subway_stations,ttc_subway_stations

3番目のファイルtransfers.txt、は異なるルート間の乗り換えポイントを定義しています。Bloor-Yonge駅での乗り換えをモデル化するには、2つのエントリーが必要です。

transfers.txt

from_stop_id,to_stop_id,from_route_id,to_route_id,transfer_type
Bloor,Yonge,line1,line2,0
Yonge,Bloor,line2,line1,0
  • 最初のモデルは、Bloor駅からYonge駅までのとfrom_route_id to_route_id、を使ってLine 1からLine 2への乗り換えを行うものです。
  • 2つ目は、Yonge駅からBloor駅までのfrom_route_idto_route_idを使って、2号線から1号線への乗り換えをモデル化したものです。
  • 乗り換えに関する特別な要件や考慮事項がないため、transfer_typeの値は0になっています。

ソース例