コンテンツにスキップ

デマンド型サービス

GTFS Flex は GTFS 拡張プロジェクトであり、2024年3月に GTFS 仕様へ正式に採用されました。その目的は、デマンド型交通(DRT)サービスの発見可能性を促進することです。 デマンド型サービスには、世界の地域によって異なる用語が存在することに注意してください。詳細は用語集を参照してください。

以下の例では、Flex を使用してさまざまなデマンド型サービスのユースケースをモデル化する方法を示します。以下の例は、必ずしも事業者のサービスを正確または完全に表現したものではないことに注意してください。

単一ゾーン内のオンデマンドサービス

デマンド型サービスは特定のゾーン内で運行でき、乗客はゾーン内の任意の地点Aでの乗車と、同じゾーン内の任意の地点Bでの降車を予約できます。この例として、米国ミネソタ州のHeartland Express Transitサービスがあります。

Heartland Express のデータセット例をダウンロード

便(trips)の定義

Heartland Express の運行時間は以下の通りです。

  • 平日:
  • 午前8:00 - 午後5:00
  • 午前6:15 – 午後5:45(New Ulm zone のみ)
  • 日曜日: 午前8:00 - 正午(New Ulm zone のみ)

New Ulm city zone は Brown County zone 内に含まれています。"zone overlap constraint" の問題を回避するため、Heartland Express は4つの便(trip)で定義することができます。

  • 平日の午前6:15から午前8:00までの New Ulm zone 内のサービス。
  • 平日の午前8:00から午後5:00までの郡全域のサービス。
  • 平日の午後5:00から午後5:45までの New Ulm zone 内のサービス。
  • 日曜日の午前8:00から午後12:00までの New Ulm zone 内のサービス。

trips.txt

route_id service_id trip_id
74362 c_67295_b_77497_d_31 t_5374945_b_77497_tn_0
74362 c_67295_b_77497_d_31 t_5374946_b_77497_tn_0
74362 c_67295_b_77497_d_31 t_5374944_b_77497_tn_0
74362 c_67295_b_77497_d_64 t_5374947_b_77497_tn_0

service_id = c_67295_b_77497_d_31 は平日を指し、service_id = c_67295_b_77497_d_64 は日曜日を指します。

ゾーンの定義(GeoJSON locations)

Heartland Express サービスの運行ゾーンを定義するために locations.geojson を使用する場合、Brown County と New Ulm City にはそれぞれ別個のゾーンを定義しなければなりません。以下は、Brown County のゾーンを定義する簡略化された GeoJSON です。

{
  "type": "FeatureCollection",
  "features": [
    {
      "id": "area_708",
      "type": "Feature",
      "geometry": {
        "type": "Polygon",
        # 簡略化のため、ここでは 3 つの座標のみを示しています。
        "coordinates": [
          [
            [
              -94.7805702,
              44.4560958
            ],
            [
              -94.7805608,
              44.4559928
            ],
            [
              -94.7805218,
              44.4559649
            ]
          ]
        ]
      },
      "properties": {}
    }
  ]

予約ルールを定義する

以下は、すべてのHeartland Expressサービスに適用される予約ルールです。

  • 乗車リクエストは、平日の午前8時から午後3時までに行うべきです。
  • 乗車は、乗車日の1営業日前までにリクエストしなければなりません。
  • 乗車リクエストは、最大14日前から行うことができます。

booking_type = 2 を使用すると、サービスに前日までの予約が必要であることを示します。prior_notice_last_day = 1 および prior_notice_start_day = 14 は、サービスを14日前から前日まで予約できることを示します。

booking_rules.txt

booking_rule_id booking_type prior_notice_start_day prior_notice_start_time prior_notice_last_day prior_notice_last_time message phone_number info_url
booking_route_74362 2 14 8:00:00 1 15:00:00 Brown County Heartland Expressは、ドアツードアのオンデマンド交通を提供しています。乗車をリクエストするには、旅行の少なくとも1営業日前の午後3時までに、1-507-359-2717または1-800-707-2717へお電話ください。 (507) 359-2717 https://www.co.brown.mn.us/heartland-express-transit

停車時刻(stop_times)を定義する

運行時間は、start_pickup_drop_off_window および end_pickup_drop_off_window フィールドを使用して定義されます。同一ゾーン内の移動には、同じ location_id を持つ stop_times.txt 内の2つのレコードが必要です。

  • pickup_type = 2 および drop_off_type = 1 を持つ最初のレコードは、そのゾーンで予約乗車が許可されていることを示します。
  • pickup_type = 1 および drop_off_type = 2 を持つ2番目のレコードは、そのゾーンで予約降車が許可されていることを示します。

stop_times.txt

trip_id location_id stop_sequence start_pickup_drop_off_window end_pickup_drop_off_window pickup_type drop_off_type pickup_booking_rule_id drop_off_booking_rule_id
t_5374944_b_77497_tn_0 area_715 1 06:15:00 08:00:00 2 1 booking_route_74362 booking_route_74362
t_5374944_b_77497_tn_0 area_715 2 06:15:00 08:00:00 1 2 booking_route_74362 booking_route_74362
t_5374945_b_77497_tn_0 area_708 1 08:00:00 17:00:00 2 1 booking_route_74362 booking_route_74362
t_5374945_b_77497_tn_0 area_708 2 08:00:00 17:00:00 1 2 booking_route_74362 booking_route_74362
t_5374946_b_77497_tn_0 area_715 1 17:00:00 17:45:00 2 1 booking_route_74362 booking_route_74362
t_5374946_b_77497_tn_0 area_715 2 17:00:00 17:45:00 1 2 booking_route_74362 booking_route_74362
t_5374947_b_77497_tn_0 area_715 1 08:00:00 12:00:00 2 1 booking_route_74362 booking_route_74362
t_5374947_b_77497_tn_0 area_715 2 08:00:00 12:45:00 1 2 booking_route_74362 booking_route_74362

area_715 は New Ulm City ゾーンを、area_708 は Brown County ゾーンを指します。

複数ゾーンにまたがるオンデマンドサービス

一部のデマンド型サービスは、複数の異なるゾーンにまたがって運行されており、乗客はあるエリア内の任意の場所Aでの乗車と、別のエリア内の任意の場所での降車を予約できます。例えば、Minnesota River Valley Transit は、Saint Peter市とKasota市の間でオンデマンドサービスを提供しています。

River Valley Transitのデータセット例をダウンロード

便(trips)を定義する

前の例と同様に、運行時間は曜日によって異なるため、平日と土曜日について便(trips)を別々に定義する必要があります。

trips.txt

route_id service_id trip_id
74375 weekdays t_5298036_b_77503_tn_0
74375 saturdays t_5298041_b_77503_tn_0

(前の例と同じ方法で、booking_rules.txt および locations.geojson を使用して予約ルールとゾーンを定義します)

停車時刻(stop_time)を定義する

以下のデータは、乗車は一方のゾーンでのみ許可され、降車は別のゾーンでのみ許可されることを示しています。同じゾーンでの乗車および降車は許可されません。

stop_times.txt

trip_id location_id stop_sequence start_pickup_drop_off_window end_pickup_drop_off_window pickup_type drop_off_type pickup_booking_rule_id drop_off_booking_rule_id
t_5298036_b_77503_tn_0 area_713 1 06:30:00 20:00:00 2 1 booking_route_74375 booking_route_74375
t_5298036_b_77503_tn_0 area_714 2 06:30:00 20:00:00 1 2 booking_route_74375 booking_route_74375
t_5298041_b_77503_tn_0 area_713 1 09:00:00 19:00:00 2 1 booking_route_74375 booking_route_74375
t_5298041_b_77503_tn_0 area_714 2 09:00:00 19:00:00 1 2 booking_route_74375 booking_route_74375

乗客が特定の場所で乗車・降車しなければならないデマンド型サービス

一部のデマンド型サービスでは、乗客はゾーン内の任意の場所での乗車および降車を指定できません。代わりに、乗客は特定の指定された停留所等(stop)(集合地点/仮想停留所)で乗車および降車するようにのみ予約できます。この例として、ドイツのAngermündeおよびGartzにおけるRufBus serviceがあります。

便(trip)の定義

ルート・路線系統(route) 476 は、Angermünde 地域の各停留所等(stop)間でオンデマンドサービスを提供しています。平日用と週末用の2つのサービスを運行しており、それぞれに1つの trip_id が関連付けられています。

trips.txt

route_id service_id trip_id
476 on_demand_weekdays 476_weekdays
476 on_demand_weekends 476_weekends

位置グループを定義する

乗客は各停留所等(stop)間のサービスを予約できるため、stop_times.txt ですべての停留所等(stop)間の組み合わせを定義することを避けるには、location_groups.txt および location_group_stops.txt を使用して、これらの停留所等(stop)を位置グループとして定義することが適切です。

location_groups.txt

location_group_id location_group_name
476_stops durch den RufBus 476 bedientes Gebiet im Raum Angermünde

location_group_stops.txt

location_group_id stop_id
476_stops de:12073:900340004::1
476_stops de:12073:900340004::2
476_stops de:12073:900340004::3
476_stops de:12073:900340004::4
476_stops de:12073:900340100::1
476_stops de:12073:900340100::2
476_stops ...

予約ルールの定義

476 route serviceでは、少なくとも1時間前までの予約が必要です。booking_type = 1 を使用すると、このサービスでは事前通知を伴う当日予約までが必要であることを示します。prior_notice_duration_min = 60 は、少なくとも60分前までの予約が必要であることを示します。

平日と週末の予約にはわずかな違いがあるため、平日サービスと休日サービスに対して別々の予約ルールを定義できます。詳細は message フィールドで提供できます。情報ページおよび予約ページへのリンクは、info_url フィールドおよび booking_url フィールドで提供できます。

booking_rules.txt

booking_rule_id booking_type prior_notice_duration_min message phone_number info_url booking_url
flächenrufbus_angermünde_weekdays 1 60 Anmeldung mind. 60min vorher erforderlich, per Anruf zwischen 08:00 und 24:00 möglich, oder online rund um die Uhr +49 3332 442 755 https://uvg-online.com/rufbus-angermuende/ https://uvg.tdimo.net/bapp/#/astBuchungenView
flächenrufbus_angermünde_weekends 1 60 1€ Komfortzuschlag pro Person; Anmeldung mind. 60min vorher erforderlich, per Anruf zwischen 08:00 und 24:00 möglich, oder online rund um die Uhr +49 3332 442 755 https://uvg-online.com/rufbus-angermuende/ https://uvg.tdimo.net/bapp/#/astBuchungenView

停車時刻(stop_time)を定義する

476 routeは、平日は午後5時30分から午後10時まで、週末は午前8時から午後10時まで運行します。運行時間は、start_pickup_drop_off_windowおよびend_pickup_drop_off_windowフィールドを使用して定義されます。同じlocation group内の移動には、同じlocation_group_idを持つstop_times.txt内の2つのレコードが必要です。

  • pickup_type = 2およびdrop_off_type = 1を持つ最初のレコードは、そのlocation groupで予約乗車が許可されていることを示します。
  • pickup_type = 1およびdrop_off_type = 2を持つ2番目のレコードは、そのlocation groupで予約降車が許可されていることを示します。

stop_times.txt

trip_id location_group_id stop_sequence start_pickup_drop_off_window end_pickup_drop_off_window pickup_type drop_off_type pickup_booking_rule_id drop_off_booking_rule_id
476_weekdays 476_stops 1 17:30:00 22:00:00 2 1 flächenrufbus_angermünde_weekdays flächenrufbus_angermünde_weekdays
476_weekdays 476_stops 2 17:30:00 22:00:00 1 2 flächenrufbus_angermünde_weekdays flächenrufbus_angermünde_weekdays
476_weekends 476_stops 1 08:00:00 22:00:00 2 1 flächenrufbus-angermünde_weekdays flächenrufbus_angermünde_weekends
476_weekends 476_stops 2 08:00:00 22:00:00 1 2 flächenrufbus-angermünde_weekdays flächenrufbus-angermünde_weekends

迂回ルート

「Route deviation」とは、車両が定められた停留所等(stop)の順序を持つ固定ルートに従って運行しつつ、停留所等(stop)間で乗客を乗車または降車させるためにこのルートから迂回できる柔軟性を持つサービスを指します。通常、サービスの定時性を維持するために迂回は制限されており、迂回しての乗車および降車には事前予約が必要です。

この例では、New Ulm CityのHermann Expressサービスは、利用者が固定停留所等(stop)でのみ乗車し、これらの停留所等(stop)間にある特定の迂回エリア内の任意の地点で降車できるようにしています。

以下の例は簡略化されています。詳細については、Hermann Express example datasetをダウンロードしてください。

便(trips)の定義

この種のサービスも一連の固定された停留所等(stop)と固定された時刻表を伴うため、便(trips)の定義は通常の固定ルートのバスサービスと類似しています。関連するすべての運行期間にわたり、各ルート・路線系統(route)が運行する便(trips)を定義する必要があります。

trips.txt

route_id service_id trip_id share_id
74513 c_67295_b_77497_d_31 t_5374704_b_77497_tn_0 p_1426044
74513 c_67295_b_77497_d_31 t_5374699_b_77497_tn_0 p_1426044
74513 c_67295_b_77497_d_31 t_5374698_b_77497_tn_0 p_1426044
74513 c_67295_b_77497_d_31 t_5374697_b_77497_tn_0 p_1426044
... ... ... ...

ゾーンを定義する(GeoJSON location)

迂回ルートのゾーンを定義するために、locations.geojson を使用します。通常、サービスを定刻どおりに運行するため、迂回は制限されます。したがって、車両の走行に伴い、各固定停留所間の迂回エリアはそれに応じて変化する場合があります。ルート迂回のエリアは、以下の画像のようになります。

迂回ルートのゾーン

停車時刻(stop_time)を定義する

固定停留所については、通常のバス路線と同様の方法で、arrival_timedeparture_timestop_id などのフィールドを定義します。固定停留所間では、迂回が許可されるゾーンを定義します。pickup_type = 1 および drop_off_type = 3 は、迂回による乗車が許可されないこと(乗車を固定停留所のみに制限すること)、および乗客が迂回ゾーンで降車するために運転手と調整しなければならないことを示します。

stop_times.txt

trip_id arrival_time departure_time stop_id location_id stop_sequence start_pickup_drop_off_window end_pickup_drop_off_window pickup_type drop_off_type shape_dist_traveled pickup_booking_rule_id drop_off_booking_rule_id
t_5374696_b_77497_tn_0 08:00:00 08:00:00 4149546 1 0
t_5374696_b_77497_tn_0 radius_300_s_4149546_s_4149547 2 08:00:00 8:02:22 1 3 booking_route_74513 booking_route_74513
t_5374696_b_77497_tn_0 08:02:22 08:02:22 4149547 3 1221.627114
t_5374696_b_77497_tn_0 radius_300_s_4149546_s_4149548 4 08:02:22 8:03:00 1 3 booking_route_74513 booking_route_74513
t_5374696_b_77497_tn_0 08:03:22 08:03:22 4149548 5 1548.216356
t_5374696_b_77497_tn_0 radius_300_s_4149546_s_4149549 6 08:03:22 8:05:00 1 3 booking_route_74513 booking_route_74513
... ... ... ... ... ... ... ... ... ... ... ... ...
t_5374696_b_77497_tn_0 08:50:00 08:50:00 4210601 35 23429.19558
t_5374696_b_77497_tn_0 08:56:00 08:56:00 4149564 36 25320.8471

経路探索の動作

pickup/drop-off Window を持つ中間 stop_times レコードの無視

出発地と目的地の間の経路案内または所要時間を提供する場合、データ利用者は、start_pickup_drop_off_window および end_pickup_drop_off_window が定義されている中間の stop_times.txt レコードを無視するべきです。例:

trip_id location_id stop_sequence pickup_type drop_off_type start_pickup_drop_off_window end_pickup_drop_off_window
tripA Zone1 1 2 1 08:00:00 18:00:00
tripA Zone2 2 1 2 08:00:00 14:00:00
tripA Zone3 3 1 2 10:00:00 18:00:00

データ利用者は、Zone1 から Zone3 への便(trip)の経路案内または所要時間を提供する際に、Zone2 を考慮するべきではありません。

ゾーン重複制約

同じ trip_id を持つ2つ以上の stop_times.txt レコード間で、locations.geojson の id ジオメトリ、start/end_pickup_drop_off_window 時刻、および pickup_type または drop_off_type が同時に重複することは禁止されています。

例: (northportlandportland 内のゾーンを指します)

禁止

stop_times.txt

trip_id location_id stop_sequence pickup_type drop_off_type start_pickup_drop_off_window end_pickup_drop_off_window
tripA portland 1 2 1 08:00:00 12:00:00
tripA northportland 2 2 1 10:00:00 14:00:00
tripA vancouver 3 1 2 10:00:00 14:00:00

許可

stop_times.txt

trip_id location_id stop_sequence pickup_type drop_off_type start_pickup_drop_off_window end_pickup_drop_off_window
tripA portland 1 2 1 08:00:00 12:00:00
tripA northportland 2 2 1 12:00:00 14:00:00
tripA vancouver 3 1 2 10:00:00 14:00:00

または

stop_times.txt

trip_id location_id stop_sequence pickup_type drop_off_type start_pickup_drop_off_window end_pickup_drop_off_window
tripA portland 1 2 1 08:00:00 12:00:00
tripA northportland 2 1 2 10:00:00 14:00:00
tripA vancouver 3 1 2 10:00:00 14:00:00

または

stop_times.txt

trip_id location_id stop_sequence pickup_type drop_off_type start_pickup_drop_off_window end_pickup_drop_off_window
tripA portland 1 2 1 08:00:00 12:00:00
tripA gresham 2 2 1 10:00:00 14:00:00
tripA vancouver 3 1 2 10:00:00 14:00:00

用語集

📲 Dial-a-ride は、ヨーロッパ全域で使用されている複数の用語のバリエーションです。

🇨🇭 スイスでは、Rufbus / On-call bus という用語に該当します。PostAuto による PubliCar systemも利用可能です。この提案のもとでは、PubliCar App およびサービスは、ユーザーが優先する旅程計画アプリで検索可能になります。

🇦🇹 オーストリアでは、dial-a-ride は Rufbus とも呼ばれ、Bedarfsverkehr (Demand Responsive Transport) および Mikro-ÖV (Microtransit) というより大きな枠組みに含まれます。

🇩🇰 デンマークでは、NT / midttrafik / sydtrafik / FYNBUS / movia (https://flextur.dk/) と呼ばれることがあります。

  • flextur(英語: flex trip)
  • 以前は flextrafik(英語: flex transit)

🇫🇷 ⚠️ フランスでは、パラトランジットサービスに対して TDA (Transport à la Demande) および PMR (Personnes à Mobilité Réduite) という用語が使用されています。

🇩🇪 ドイツでは、On-Demand-Angebot、Flexible Fahrt、および AST と呼ばれています。

  • BVG
  • ブランド: Muva
  • On-Demand-Angebot(英語: on-demand-service)
  • Flexible Fahrt(英語: flexible trip)
  • その他の地域
  • Anruf-sammel-taxi または AST(英語: call-collect-taxi)

🇬🇧 イギリスには、以下のサービスがあります。

用語は国境を越えて異なりますが、一般に dial-a-ride とは、乗客が事業者に何らかの形で連絡する必要がある、あらゆるデマンド型サービスであると考えることができます。