확장 프로그램
새로운 기능을 손쉽게 테스트하고 개발자가 GTFS Realtime 피드에 정보를 추가할 수 있도록 하기 위해 프로토콜 버퍼의 확장 프로그램 기능을 이용할 것입니다. 확장 프로그램을 사용하면 프로토콜 버퍼 메시지에서 네임스페이스를 정의할 수 있습니다. 여기서 타사 개발자는 원본 프로토 정의를 수정할 필요없이 추가 입력란을 정의할 수 있습니다.
GTFS Realtime 사양을 확장하는 데 관심이 있는 개발자는 GTFS Realtime 메일링 리스트의 이메일 주소에 연락해야 합니다. 그러면 다음으로 사용 가능한 확장 ID가 각 이메일 주소에 할당됩니다. 아래의 확장 프로그램 레지스트리 섹션에 나온 1000 이상의 숫자가 오름차순에 따라 확장 ID로 사용됩니다.
이러한 할당된 확장 프로그램 ID는 각 GTFS Realtime 메시지 정의에 대한 extension
네임스페이스에서 사용 가능한 태그 ID에 해당합니다. 이제 개발자는 모든 GTFS Realtime 메시지를 확장할 때 할당된 확장 프로그램 ID를 사용합니다. 개발자가 단일 메시지만 확장하려는 경우에도 모든 메시지에 대해 할당된 확장 프로그램 ID가 예약됩니다.
사양을 확장하는 개발자는 확장 프로그램 ID가 string
또는 int32
와 같은 단일 입력란을 추가하는 대신 선호하는 모델을 통해 MyTripDescriptorExtension
과 같은 새로운 메시지를 정의하고 기본 GTFS Realtime 메시지를 새로운 메시지로 확장한 다음 모든 새 입력란을 추가하게 됩니다. 이는 기본 목록에서 새로운 확장 프로그램 ID를 예약하지 않고도 원하는 확장 프로그램 메시지 내에서 입력란을 관리할 수 있는 속성을 가지고 있습니다.
message MyTripDescriptorExtension {
optional string some_string = 1;
optional bool some_bool = 2;
...
}
extend transit_realtime.TripDescriptor {
optional MyTripDescriptorExtension my_trip_descriptor = YOUR_EXTENSION_ID;
}
확장 레지스트리
확장 프로그램 ID | 개발자 | 연락처 | 세부정보 |
---|---|---|---|
1000 | OneBusAway | onebusaway-developers | https://github.com/OneBusAway/onebusaway/wiki/GTFS-Realtime-Resources |
1001 | New York City MTA | mtadeveloperresources | http://mta.info/developers/ |
1002 | transit-realtime-partner-support@google.com | Google 지도 실시간 대중교통 업데이트 | |
1003 | OVapi | gtfs-rt at ovapi.nl | http://gtfs.ovapi.nl |
1004 | Metra | William Ashbaugh w.l.ashbaugh@gmail.com | |
1005 | Metro-North Railroad | John Larsen | |
1006 | realCity | David Varga | http://realcity.io |
1007 | NSW TrainLink | Gregory Nicholls | 그룹 토론 |
1008 | SEPTA: 펜실베니아 남동부 교통국 | Gregory Apessos | https://github.com/septadev |
1009 | Swiftly | mike@goswift.ly | 그룹 토론 |