좌석 내 환승이라고도 하는 블록 환승은 일련의 여정이 다음 조건을 충족하는
경우에 적용할 수 있습니다.
여정이 이어집니다.
두 여정이 모두 같은 차량으로 운행됩니다.
여정이 대중교통 피드의 trips.txt 파일에 있는
동일한 block_id 값으로 프로비저닝됩니다.
사전 준비 사항
Google 지도에서 여정 간에 블록 환승을 인식하려면 다음과 같은 사전 준비가
필요합니다.
해당 여정이 trips.txt에서 동일한 block_id 값을 사용해야 합니다. 이는
여정에 동일한 차량이 이용된다는 것을 뜻합니다.
여정이 동일한 날에 이루어져야 하며, 자정을 지나 계속되는 경우 두 날이
이어져야 합니다.
여정이 이어져야 하며 중복되지 않아야 합니다.
도착 여정의 마지막 정류장과 출발 여정의 첫 번째 정류장이 같거나(권장됨) 물리적으로 가까워야 합니다.
block_id를 사용하여 블록 환승 사용 설정
이어지는 여정 간에 다른 경로에 대해, 또는 경로가 순환선인 경우 동일한 경로에 대해 블록 환승을
적용할 수 있습니다. 한 블록에 있는 여정 및 좌석 내 환승이 이용 가능한 옵션인 경우를 지정하려면 block_id 필드를 사용하세요.
예 1: 예정된 여정을 위한 블록 환승
이 예에서는 각 파일에서 다음 값을 고려하시기 바랍니다.
trips.txt
route_id
trip_id
block_id
RouteA
RouteATrip1
Block1
RouteB
RouteBTrip1
Block1
stop_times.txt
trip_id
arrival_time
departure_time
stop_id
stop_sequence
RouteATrip1
12:00:00
12:01:00
A
1
RouteATrip1
12:05:00
12:06:00
B
2
RouteATrip1
12:15:00
C
3
RouteBTrip1
12:18:00
C
1
RouteBTrip1
12:22:00
12:23:00
D
2
RouteBTrip1
12:30:00
E
3
이 예에서는 다음과 같이 정의됩니다.
정류장 A에서 정류장 E까지의 경로를 검색하는 사용자에게, 경로 A에 따라 12:00에 정류장 A에서
탑승한 다음 차량이 정류장 C에 도착하여 RouteATrip1이 끝난 뒤에도 차량에서 내리지 말라는
안내가 제공됩니다. 이는 경로 B에 대해 동일한 차량을
사용하는 RouteBTrip1을 사용하기 때문입니다.
RouteATrip1이 끝난 뒤 RouteBTrip1에서 안내하는 정류장까지 계속 이동하고 싶은
승객은 차량에서 내리지 않고 머무르면 이 환승 서비스를 이용할 수 있습니다.
동일한 경로를 따르지만 다른 차량에 탑승하여 이동하는 승객이 있는 경우, 각 여정에
서로 다른 차량을 사용하므로 이 승객에게는 해당 환승 옵션이 제공되지 않습니다.
예 2: 시간이 정확한 빈도 기반 여정을 위한 블록 환승
블록 환승은 사전 준비 사항 섹션에 나열된 요건에 더해
다음 조건 중 한 개를 충족하는 빈도 기반 여정에만 지원됩니다.
순환 여정인 경우, 동일한 정류장에서 시작해서 끝나야 합니다.
frequencies.txt에서, exact_times 필드의 값은 1이어야 합니다.
다음 예는 두 번째 조건 값을 설정하는 방법을 설명합니다.
trips.txt
route_id
trip_id
block_id
route1
route1_trip1
block_2
route2
route2_trip1
block_2
stop_times.txt
trip_id
arrival_time
departure_time
stop_id
stop_sequence
route1_trip1
08:00:00
08:04:00
stop1
1
route1_trip1
08:10:00
08:14:00
stop2
2
route1_trip1
08:20:00
stop3
3
route2_trip1
08:24:00
stop3
1
route2_trip1
08:30:00
08:34:00
stop4
2
route2_trip1
08:40:00
08:44:00
stop5
3
frequencies.txt
trip_id
start_time
end_time
headway_secs
exact_times
route1_trip1
08:00:00
08:20:00
600
1
route2_trip1
08:24:00
08:44:00
600
1
이 예에서는 다음과 같이 정의됩니다.
stop1에서 stop5까지의 경로를 검색하는 사용자에게
route1에 오전 8시에 stop1에서 탑승하라는 안내가 제공됩니다. 사용자는 그러면 stop3에 도착하여
route1_trip1이 끝난 뒤에도 차량에 머무릅니다. 이는 경로 route2에 대해 동일한 차량을
사용하는 route2_trip1을 사용하기 때문입니다.
route1_trip1이 끝난 뒤 route2_trip1에서 안내하는 정류장까지 계속 이동하고 싶은
승객은 차량에서 내리지 않고 머무르면 이 환승 서비스를 이용할 수 있습니다.
동일한 경로를 따르지만 다른 차량에 탑승하여 이동하는 승객이 있는 경우, 각 여정에
서로 다른 차량을 사용하므로 이 승객에게는 해당 환승 옵션이 제공되지 않습니다.
예를 들어 route1_trip1을 봅시다. headway_secs의 값은
start_time과 end_time 간 인터벌의 절반입니다. 이 경우에는 두 개의 여정이
있다는 의미입니다. headway_secs의 사용에 대해 자세히 알아보려면,
gtfs.org에서 GTFS 일정 참조를
참고하세요.
순환선에서의 블록 환승
순환선에서는 여정을 시작하는 정류장과 여정의 마지막 정류장이 같은 정류장이며
stop_id도 동일합니다. 일정 기반 및 빈도 기반 여정 모두에 필요합니다.
Please see the above.
이어지는 순환 여정이 동일한 block_id를 사용하는 경우 블록(좌석 내) 환승이 활성화되며,
이 옵션을 통해 첫 번째 여정을 마친 승객이 다음 순환으로 이어지는 차량에 머무를 수 있습니다.
GTFS 피드에서의 유효한 블록
블록 환승을 사용하려면 피드에서 하나 이상의 블록을 제대로 정의해야
합니다. 유효성 검사에 통과하려면 동일한 블록에 속한 여정이 중복되지 않으며 route_type(지하철, 철도, 버스 등)이 동일해야 합니다.
여정은 날짜가 다르더라도 동일한 블록에 속할 수 있습니다. 정적
피드에 블록이 정의되어 있는 경우 개요 탭의
유효성 검사 보고서에
블록이 표시됩니다.
[null,null,["최종 업데이트: 2025-07-25(UTC)"],[[["\u003cp\u003eBlock transfers, or in-seat transfers, allow passengers to stay on the same vehicle across consecutive trips using the same \u003ccode\u003eblock_id\u003c/code\u003e in \u003ccode\u003etrips.txt\u003c/code\u003e.\u003c/p\u003e\n"],["\u003cp\u003eTo enable block transfers, trips must use the same \u003ccode\u003eblock_id\u003c/code\u003e, operate on the same or consecutive days, be consecutive without overlapping, and have the last/first stops be the same or nearby.\u003c/p\u003e\n"],["\u003cp\u003eBlock transfers work with frequency-based trips if they are loops starting and ending at the same stop, or if \u003ccode\u003eexact_times\u003c/code\u003e is set to \u003ccode\u003e1\u003c/code\u003e in \u003ccode\u003efrequencies.txt\u003c/code\u003e.\u003c/p\u003e\n"],["\u003cp\u003eIn loop lines, consecutive trips with the same \u003ccode\u003eblock_id\u003c/code\u003e enable in-seat transfers for passengers to remain on the vehicle for the next loop.\u003c/p\u003e\n"],["\u003cp\u003eValid blocks in GTFS feeds require trips within the same block to be non-overlapping, have the same \u003ccode\u003eroute_type\u003c/code\u003e, and can span across different days.\u003c/p\u003e\n"]]],["Block transfers, or in-seat transfers, require consecutive trips using the same vehicle, indicated by the same `block_id` in `trips.txt`. Trips must operate on the same or consecutive days, not overlap, and their start/end stops should be the same or close. Frequency-based trips must have `exact_times=1` in `frequencies.txt`. Loop line trips require identical start and end stops. Correctly defining blocks enables transfers, verified in a feed's Validation Report. Google does not support linked trips via transfer_type 4 or 5.\n"],null,["# Block transfer example\n\n| **Note:** To make block transfer an available option, you need to use `block_id` in `trips.txt`. Google doesn't support the [linked trips](https://gtfs.org/schedule/reference/#linked-trips) feature through `transfer_type` values of `4` or `5`.\n\nBlock transfer, also called in-seat transfer, is available when a set of\ntrips meets the following conditions:\n\n1. The trips are consecutive.\n2. The same vehicle operates both trips.\n3. The trips are provisioned with the same `block_id` value in the `trips.txt` file in the transit feed.\n\nPrerequisites\n-------------\n\nFor Google Maps to recognize that block transfers between trips are\npossible, the following prerequisites must be met:\n\n1. The trips must use the same `block_id` value in `trips.txt`. This indicates that the trips use the same vehicle.\n2. The trips must operate on the same days, or on consecutive days if a trip crosses midnight.\n3. The trips must be consecutive and not overlap.\n4. The last stop of the arriving trip and the first stop of the departing trip must either be the same (recommended) or physically close.\n\nUse `block_id` to enable block transfers\n----------------------------------------\n\nBlock transfers can be made between consecutive trips on different routes or on\nthe same route if the route is a loop line. Use the `block_id` field to specify\nwhich trips are in one block and where in-seat transfers are an available\noption.\n\n### Example 1: Block transfers for scheduled trips\n\nIn this example, consider the following values in each file:\n\n`trips.txt`\n\n| `route_id` | `trip_id` | `block_id` |\n|------------|---------------|------------|\n| `RouteA` | `RouteATrip1` | `Block1` |\n| `RouteB` | `RouteBTrip1` | `Block1` |\n\n\u003cbr /\u003e\n\n*** ** * ** ***\n\n`stop_times.txt`\n\n| `trip_id` | `arrival_time` | `departure_time` | `stop_id` | `stop_sequence` |\n|---------------|----------------|------------------|-----------|-----------------|\n| `RouteATrip1` | `12:00:00` | `12:01:00` | `A` | `1` |\n| `RouteATrip1` | `12:05:00` | `12:06:00` | `B` | `2` |\n| `RouteATrip1` | `12:15:00` | | `C` | `3` |\n| `RouteBTrip1` | | `12:18:00` | `C` | `1` |\n| `RouteBTrip1` | `12:22:00` | `12:23:00` | `D` | `2` |\n| `RouteBTrip1` | `12:30:00` | | `E` | `3` |\n\n\u003cbr /\u003e\n\nIn this example:\n\n- A user who searches for a route from stop A to stop E is directed to embark at stop A at 12:00 on Route A and to stay on the vehicle when it reaches stop C after the end of `RouteATrip1`. This is because the same vehicle services `RouteBTrip1` for Route B.\n- Passengers on `RouteATrip1` who want to continue on to a stop on `RouteBTrip1` can stay on the vehicle for this transfer.\n- Passengers of other trips on other vehicles along these same routes don't have this option because they use different vehicles for each trip.\n\n### Example 2: Block transfers for frequency-based trips with exact times\n\nBlock transfers are supported only for frequency-based trips that meet one of\nthe following conditions, in addition to the requirements listed in the\n[Prerequisites](#prerequisites) section:\n\n- If the trip is a loop, it must start and end at the same stop.\n- In `frequencies.txt`, the value of the `exact_times` field must be `1`.\n\nThe following example describes how to set the values for the second condition:\n\n`trips.txt`\n\n| `route_id` | `trip_id` | `block_id` |\n|------------|----------------|------------|\n| `route1` | `route1_trip1` | `block_2` |\n| `route2` | `route2_trip1` | `block_2` |\n\n\u003cbr /\u003e\n\n*** ** * ** ***\n\n`stop_times.txt`\n\n| `trip_id` | `arrival_time` | `departure_time` | `stop_id` | `stop_sequence` |\n|----------------|----------------|------------------|-----------|-----------------|\n| `route1_trip1` | `08:00:00` | `08:04:00` | `stop1` | `1` |\n| `route1_trip1` | `08:10:00` | `08:14:00` | `stop2` | `2` |\n| `route1_trip1` | `08:20:00` | | `stop3` | `3` |\n| `route2_trip1` | | `08:24:00` | `stop3` | `1` |\n| `route2_trip1` | `08:30:00` | `08:34:00` | `stop4` | `2` |\n| `route2_trip1` | `08:40:00` | `08:44:00` | `stop5` | `3` |\n\n\u003cbr /\u003e\n\n*** ** * ** ***\n\n`frequencies.txt`\n\n| `trip_id` | `start_time` | `end_time` | `headway_secs` | `exact_times` |\n|----------------|--------------|------------|----------------|---------------|\n| `route1_trip1` | `08:00:00` | `08:20:00` | `600` | `1` |\n| `route2_trip1` | `08:24:00` | `08:44:00` | `600` | `1` |\n\n\u003cbr /\u003e\n\nIn this example:\n\n- A user who searches for a route from `stop1` to `stop5` is directed to embark at `stop1` at 08:00 on `route1`. The user then stays on the vehicle when it reaches `stop3` after the end of `route1_trip1`. This is because the same vehicle services `route2_trip1` for `route2`.\n- Passengers on `route1_trip1` who want to continue on to a stop on `route2_trip1` can stay on the vehicle for this transfer.\n- Passengers of other trips on other vehicles along these same routes don't have this option because they use different vehicles for each trip.\n- Take `route1_trip1` for example. The value of `headway_secs` is half the interval between `start_time` and `end_time`. In this case, it means there are two trips. To learn more about the usage of `headway_secs`, refer to the [GTFS Schedule Reference on\n gtfs.org](https://gtfs.org/schedule/reference/#frequenciestxt).\n\nBlock transfer in a loop line\n-----------------------------\n\nIn a loop line, the first stop and the last stop of a trip are the same and have\nthe same `stop_id`. This is required for both schedule-based and frequency-based\ntrips.\n\nProvided that consecutive loop trips have the same `block_id`, block or in-seat\ntransfer is enabled, which lets passengers of the first trip remain on the\nvehicle when it continues on the next loop.\n\nValid blocks in GTFS feeds\n--------------------------\n\nFor block transfer to be possible, you must properly define one or more blocks\nin the feed. To pass validation, trips that belong to the same block can't\noverlap and must have the same `route_type` (subway, rail, bus, and so forth).\nTrips can belong to the same block even if they're on different days. If any\nblocks are defined in a static feed, they show in the Validation Report, on the\n**Overview** tab.\n| **Note:** The feed validator only checks the integrity of the feed. It doesn't check for any of the other conditions that make block transfer possible."]]