GTFS에 적용되는 Google 대중교통 확장 프로그램

소개

Google 대중교통팀은 GTFS 사양을 개선하여 Google 파트너의 요구사항을 수용하기 위해 지속적으로 노력하고 있습니다. Google 지도의 대중교통에 제출된 피드에서 파트너가 사용할 수 있는 몇 가지 확장안을 GTFS 사양에 포함하도록 제안되었습니다. 아래에서 이러한 기능에 대한 포괄적인 목록을 확인할 수 있습니다.

GTFS 사양을 확장하기 위한 제안이 있는 경우 공식 GTFS 변경 프로세스를 참고하세요.

특정 요금의 최대 환승 횟수

여러 기관이 있는 피드에서 요금 속성을 지원하기 위해 다음과 같은 확장안이 제안되었습니다.

필드 이름 필수 여부 세부정보
transfers 선택사항 Google 대중교통은 0에서 5까지의 값을 허용합니다. GTFS 사양에는 0에서 2까지의 값을 사용할 수 있다고 명시되어 있습니다. 이 필드를 사용하여 요금에서 허용되는 최대 환승 횟수(블록 환승 제외)를 설정합니다.

IC 카드 가격(일본)

IC 카드는 일본에서만 통용되는 충전식 선불 스마트 카드로서 기차, 지하철, 버스, 모노레일 요금 지불에 사용할 수 있습니다. Pasmo, Intelligent Card(SUICA) 등 대부분의 IC 카드는 탑승자에게 할인 혜택을 제공하는 경우가 많습니다. 다음과 같은 Google 전용 확장 프로그램은 IC 카드의 요금 모델링을 지원합니다.

fare_attributes.txt

필드 이름 필수 여부 세부정보
ic_price 선택사항 IC 카드 사용자에게 할인이 제공되는 경우 이 값은 할인이 적용된 요금입니다. IC 카드 사용자에게 할인이 제공되지 않는 경우 값을 -1(으)로 설정합니다. 대중교통 기관이 IC 카드를 지원하지 않는 경우 값을 -1(으)로 설정합니다.

추가 경로 유형

GTFS는 현재 특정 경로에 대한 서비스 유형(예: 버스 대 철도 대 페리)을 설명하는 데 사용할 수 있는 다양한 경로 유형을 정의합니다. 보다 다양한 유형의 집합을 지원하기 위해 routes.txt route_type 필드의 확장 프로그램이 제안되었습니다. 자세한 내용은 확장된 GTFS 경로 유형을 참고하세요.

역 차량 유형

특정 정류장을 운행하는 차량의 유형을 지정할 수 있도록 확장안이 제안되었습니다.

stops.txt

필드 이름 필수 여부 세부정보
vehicle_type 선택사항

이 필드를 사용하여 정류장에서 사용되는 교통수단의 유형에 대해 설명합니다. 제안된 확장 GTFS 경로 유형 값을 포함하여 유효한 routes.txt route_type 값이 허용됩니다.

이동 변경사항

특별 이벤트 또는 계획된 운영 중단(예: 트랙 공사 등)으로 인해 정규 일정 이외의 시간에 운영하거나 일반적인 경로에서 벗어난 이동을 나타내는 데 유용합니다. 그러한 예외적인 서비스를 나타내기 위해 trips.txt에 대한 확장안이 제안되었습니다.

trips.txt

필드 이름 필수 여부 세부정보
exceptional 선택사항

특별 이벤트로 인해 추가된 서비스나 계획된 운영 중단(트랙 공사)으로 인해 일반적인 경로에서 벗어난 서비스 같은 예외 사항을 나타내려면 이 필드를 1로 설정합니다. 정규 서비스의 경우에는 0으로 설정합니다.

경로 간 환승 및 이동 간 환승

현재 GTFS 사양을 사용하는 기관은 transfers.txt 파일을 통해 선호 환승, 정기 환승 및 제한 환승과 같은 환승 의미를 정의함으로써 해당 기능을 지원할 수 있습니다. 현재 이러한 환승은 정류장에만 적용됩니다. Google은 여러 기관으로부터 경로 또는 이동 수준에서 보다 자세한 환승 정보를 지정하기를 원한다는 의견을 받았습니다. 따라서 이 기관들과 협력하여 경로 간 환승 및 이동 간 환승을 모델링하는 제안을 내놓았으며 현재 GTFS 커뮤니티의 의견을 기다리고 있습니다.

동기

특정 정류장 쌍의 모든 이동에 대해 동일한 환승을 지정하지 않고도 해당 정류장 쌍에 대한 특정 경로 또는 특정 이동 간에 환승을 지정할 수 있어야 합니다.

예:

  • 두 이동이 같은 플랫폼에 도착하여 서로를 기다리는 경우 이 두 이동 간의 정기 환승을 지정하려고 합니다. 그러나 이 기차역의 모든 환승이 정기 환승일 필요는 없습니다.

  • 기차가 최대 30분까지 늦어지는 경우가 종종 있으므로 도착 예정 시간과 출발 예정 시간의 차이가 35분 미만이면 이 열차에서 다른 열차로 환승하는 것을 금지하려고 합니다.

세부정보

transfers.txt에 다음 4개의 필드(선택사항)를 추가할 수 있습니다.

  • from_route_id
  • to_route_id
  • from_trip_id
  • to_trip_id

from_route_idto_route_id 필드는 route_id(routes.txt(으)로 지정됨)를 포함하므로 지정된 환승이 적용되는 범위가 축소됩니다. from_route_id이(가) 지정된 경우 주어진 from_stop_id에서 지정된 경로 ID의 도착 이동에만 환승이 적용됩니다. to_route_id이(가) 지정된 경우 주어진 to_stop_id에서 지정된 경로 ID의 출발 이동에만 환승이 적용됩니다.

from_trip_idto_trip_id 필드는 trips.txt에서 지정된 trip_id을(를) 포함할 수 있습니다. from_trip_id이(가) 주어지면 from_route_id이(가) 무시되고 to_trip_id이(가) 주어지면 to_route_id이(가) 무시됩니다. from_trip_id이(가) 지정된 경우 주어진 from_stop_id에서 지정된 이동 ID가 있는 도착 이동에만 환승이 적용됩니다. to_trip_id이(가) 지정된 경우 주어진 to_stop_id에서 지정된 이동 ID가 있는 출발 이동에만 환승이 적용됩니다.

환승의 특이도

일부 환승이 다른 환승보다 더 구체적입니다. 환승을 적용해야 하는 경우를 판단하기 위해 간단한 순위 지정 메커니즘을 정의해야 합니다. 따라서 환승의 '특이도'를 정의합니다.

환승 소스의 특이성은 from_stop_id만 제공되면 0, from_route_id이(가) 지정되면 1, from_trip_id이(가) 지정되면 2입니다. 환승 타겟도 동일하게 to_stop_id만 제공되면 0, to_route_id이(가) 지정되면 1, to_trip_id이(가) 지정되면 2가 적용됩니다. 이 두 값의 합이 0에서 4까지 이르는 환승 특이도입니다. 도착 이동과 출발 이동의 순서 쌍의 경우, 2개 이동 간에 적용되는 특이도가 가장 큰 환승이 선택됩니다. 따라서 어떤 쌍의 이동이라도 적용할 수 있는 최대 특이도를 가진 환승이 2개여서는 안 됩니다.

모호한 규칙의 예:

from_stop_id,to_stop_id,from_route_id,to_route_id,transfer_type
stopFrom,stopTo,routeFrom,,0
stopFrom,stopTo,,routeTo,1

이 두 환승 모두 특이도가 1입니다. 그러나 정류장 stopFrom에 도착하는 경로 ID routeFrom에서 정류장 stopTo에 도착하는 경로 ID routeTo(으)로 이동하는 환승에는 이 두 규칙을 적용할 수 있습니다.