Documentation
¶
Overview ¶
gtfs is a golang library written to parse GTFS files.
Index ¶
- func NoValidation(p *Parser)
- type Agency
- type AgencySerializable
- type Attribution
- type AttributionSerializable
- type Block
- type Calendar
- type CalendarDate
- type CalendarDateSerializable
- type CalendarSerializable
- type ConditionnalRequirementError
- type Date
- type FareAttribute
- type FareAttributeSerializable
- type FareRule
- type FareRuleSerializable
- type Feed
- type FeedInfo
- type FeedInfoSerializable
- type FeedSerializable
- type Frequency
- type FrequencySerializable
- type InvalidValueError
- type Level
- type LevelSerializable
- type MissingStructError
- type Parser
- type ParserOption
- type Pathway
- type PathwaySerializable
- type ReferenceError
- type RequirementError
- type Route
- type RouteSerializable
- type Service
- type Shape
- type ShapePoint
- type ShapeSerializable
- type Stop
- type StopSerializable
- type StopTime
- type StopTimeSerializable
- type Time
- type Transfer
- type TransferSerializable
- type Translation
- type TranslationSerializable
- type Trip
- type TripSerializable
- type Zone
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func NoValidation ¶
func NoValidation(p *Parser)
Types ¶
type Agency ¶
type Agency struct {
// Identifies a unique transit agency.
// +conditionnally required - This field is required when the dataset
// contains data for multiple transit agencies, otherwise it is optional.
Id string `gtfs:"agency_id"`
// Full name of the transit agency.
// +required
Name string `gtfs:"agency_name,required"`
// URL of the transit agency.
// +required
Url string `gtfs:"agency_url,required"`
// Timezone where the transit agency is located. If multiple agencies are
// specified in the dataset, each must have the same agency_timezone.
// +required
Timezone string `gtfs:"agency_timezone,required"`
// Primary language used by this transit agency.
// +optional
Lang string `gtfs:"agency_lang"`
// A voice telephone number for the specified agency.
// +optional
Phone string `gtfs:"agency_phone"`
// URL of a web page that allows a rider to purchase tickets or other fare
// instruments for that agency online.
// +optional
FareUrl string `gtfs:"agency_fare_url"`
// Email address actively monitored by the agency’s customer service
// department.
// +optional
Email string `gtfs:"agency_email"`
}
Agency is a unique transit agency
type AgencySerializable ¶
type AgencySerializable struct {
// Identifies a unique transit agency.
// +conditionnally required - This field is required when the dataset
// contains data for multiple transit agencies, otherwise it is optional.
Id string `gtfs:"agency_id"`
// Full name of the transit agency.
// +required
Name string `gtfs:"agency_name,required"`
// URL of the transit agency.
// +required
Url string `gtfs:"agency_url,required"`
// Timezone where the transit agency is located. If multiple agencies are
// specified in the dataset, each must have the same agency_timezone.
// +required
Timezone string `gtfs:"agency_timezone,required"`
// Primary language used by this transit agency.
// +optional
Lang string `gtfs:"agency_lang"`
// A voice telephone number for the specified agency.
// +optional
Phone string `gtfs:"agency_phone"`
// URL of a web page that allows a rider to purchase tickets or other fare
// instruments for that agency online.
// +optional
FareUrl string `gtfs:"agency_fare_url"`
// Email address actively monitored by the agency’s customer service
// department.
// +optional
Email string `gtfs:"agency_email"`
}
type Attribution ¶
type Attribution struct {
// Identifies an attribution for the dataset, or a subset of it. This field
// is useful for translations.
// +optional
Id string
// The agency to which the attribution applies. Multiple attributions can
// apply to the same trip. AgencyId, RouteId and TripId are exclusive, there
// can only be one field set per attribution.
// +optional
Agency *Agency `gtfs:"agency_id"`
// The route to which the attribution applies. Multiple attributions can
// apply to the same trip. AgencyId, RouteId and TripId are exclusive, there
// can only be one field set per attribution.
// +optional
Route *Route `gtfs:"route_id"`
// The trip to which the attribution applies. Multiple attributions can
// apply to the same trip. AgencyId, RouteId and TripId are exclusive, there
// can only be one field set per attribution.
// +optional
Trip *Trip `gtfs:"trip_id"`
// The name of the organization that the dataset is attributed to.
// +required
OrganizationName string `gtfs:"organization_name,required"`
// The role of the organization is producer.
//
// Allowed values include the following:
// - 0 or empty: Organization doesn’t have this role.
// - 1: Organization does have this role.
//
// +conditionnaly required - At least one of the fields, either IsProducer,
// IsOperator, or IsAuthority, must be set at 1.
IsProducer int `gtfs:"is_producer,cond,0"`
// The role of the organization is operator.
//
// Allowed values include the following:
// - 0 or empty: Organization doesn’t have this role.
// - 1: Organization does have this role.
//
// +conditionnaly required - At least one of the fields, either IsProducer,
// IsOperator, or IsAuthority, must be set at 1.
IsOperator int `gtfs:"is_operator,cond,0"`
// The role of the organization is authority.
//
// Allowed values include the following:
// - 0 or empty: Organization doesn’t have this role.
// - 1: Organization does have this role.
//
// +conditionnaly required - At least one of the fields, either IsProducer,
// IsOperator, or IsAuthority, must be set at 1.
IsAuthority int `gtfs:"is_authority,cond,0"`
// The URL of the organization.
// +optional
AttributionUrl string `gtfs:"attribution_url"`
// The email of the organization.
// +optional
AttributionEmail string `gtfs:"attribution_email"`
// The phone number of the organization.
// +optional
AttributionPhone string `gtfs:"attribution_phone"`
}
type AttributionSerializable ¶
type AttributionSerializable struct {
// Identifies an attribution for the dataset, or a subset of it. This field
// is useful for translations.
// +optional
Id string
// The agency to which the attribution applies. Multiple attributions can
// apply to the same trip. AgencyId, RouteId and TripId are exclusive, there
// can only be one field set per attribution.
// +optional
AgencyId string `gtfs:"agency_id"`
// The route to which the attribution applies. Multiple attributions can
// apply to the same trip. AgencyId, RouteId and TripId are exclusive, there
// can only be one field set per attribution.
// +optional
RouteId string `gtfs:"route_id"`
// The trip to which the attribution applies. Multiple attributions can
// apply to the same trip. AgencyId, RouteId and TripId are exclusive, there
// can only be one field set per attribution.
// +optional
TripId string `gtfs:"trip_id"`
// The name of the organization that the dataset is attributed to.
// +required
OrganizationName string `gtfs:"organization_name,required"`
// The role of the organization is producer.
//
// Allowed values include the following:
// - 0 or empty: Organization doesn’t have this role.
// - 1: Organization does have this role.
//
// +conditionnaly required - At least one of the fields, either IsProducer,
// IsOperator, or IsAuthority, must be set at 1.
IsProducer int `gtfs:"is_producer,cond,0"`
// The role of the organization is operator.
//
// Allowed values include the following:
// - 0 or empty: Organization doesn’t have this role.
// - 1: Organization does have this role.
//
// +conditionnaly required - At least one of the fields, either IsProducer,
// IsOperator, or IsAuthority, must be set at 1.
IsOperator int `gtfs:"is_operator,cond,0"`
// The role of the organization is authority.
//
// Allowed values include the following:
// - 0 or empty: Organization doesn’t have this role.
// - 1: Organization does have this role.
//
// +conditionnaly required - At least one of the fields, either IsProducer,
// IsOperator, or IsAuthority, must be set at 1.
IsAuthority int `gtfs:"is_authority,cond,0"`
// The URL of the organization.
// +optional
AttributionUrl string `gtfs:"attribution_url"`
// The email of the organization.
// +optional
AttributionEmail string `gtfs:"attribution_email"`
// The phone number of the organization.
// +optional
AttributionPhone string `gtfs:"attribution_phone"`
}
type Block ¶
type Block struct {
// Identifies a block
// +required
Id string
}
Block consists of a single trip or many sequential trips made using the same vehicle, defined by shared service days and block_id. A block_id can have trips with different service days, making distinct blocks.
type Calendar ¶
type Calendar struct {
// Uniquely identifies a set of dates when service is available for one or
// more routes. Each ServiceId value can appear at most once in a feed.
// +required
ServiceId string `gtfs:"service_id,required"`
// Indicates whether the service operates on all specific days in the date
// range specified by the StartDate and EndDate fields. This array starts
// with Sunday and ends with Saturday.
// +required
Days [7]bool
// Start service day for the service interval.
// +required
StartDate Date `gtfs:"start_date,required"`
// End service day for the service interval. This service day is included in
// the interval.
// +required
EndDate Date `gtfs:"end_date,required"`
}
type CalendarDate ¶
type CalendarDate struct {
// Identifies a set of dates when a service exception occurs for one or more
// routes.
// +required
ServiceId string `gtfs:"service_id,required"`
// Date when service exception occurs.
// +required
Date Date `gtfs:"date,required"`
// Indicates whether service is available on the date specified in the date field.
// See valid options: https://developers.google.com/transit/gtfs/reference?hl=en#calendar_datestxt
// +required
Type int `gtfs:"exception_type,required,1"`
}
type CalendarDateSerializable ¶
type CalendarDateSerializable struct {
// Identifies a set of dates when a service exception occurs for one or more
// routes.
// +required
ServiceId string `gtfs:"service_id,required"`
// Date when service exception occurs.
// +required
Date Date `gtfs:"date,required"`
// Indicates whether service is available on the date specified in the date field.
// See valid options: https://developers.google.com/transit/gtfs/reference?hl=en#calendar_datestxt
// +required
Type int `gtfs:"exception_type,required,1"`
}
type CalendarSerializable ¶
type CalendarSerializable struct {
// Uniquely identifies a set of dates when service is available for one or
// more routes. Each ServiceId value can appear at most once in a feed.
// +required
ServiceId string `gtfs:"service_id,required"`
// Indicates whether the service operates on all specific days in the date
// range specified by the StartDate and EndDate fields. This array starts
// with Sunday and ends with Saturday.
// +required
Days [7]bool
// Start service day for the service interval.
// +required
StartDate Date `gtfs:"start_date,required"`
// End service day for the service interval. This service day is included in
// the interval.
// +required
EndDate Date `gtfs:"end_date,required"`
}
type ConditionnalRequirementError ¶
func (*ConditionnalRequirementError) Error ¶
func (e *ConditionnalRequirementError) Error() string
type Date ¶
A general date type for the Date gtfs format. Since time within a service day can be above 24:00:00, a service day often contains information for the subsequent day(s).
The empty value is created using Year == -1
Example: 20180913 for September 13th, 2018.
type FareAttribute ¶
type FareAttribute struct {
// Identifies a fare class.
// +required
Id string `gtfs:"fare_id,required"`
// Fare price, in the unit specified by currency_type.
// +required
Price float64 `gtfs:"price,required"`
// Currency used to pay the fare.
// +required
CurrencyType string `gtfs:"currency_type,required"`
// Indicates when the fare must be paid.
// See valid options: https://developers.google.com/transit/gtfs/reference?hl=en#fare_attributestxt
// +required
PaymentMethod int `gtfs:"payment_method,required"`
// Indicates the number of transfers permitted on this fare.
// See valid options:
// 0 - No transfers permitted on this fare.
// 1 - Riders may transfer once.
// 2 - Riders may transfer twice.
// -1 - Unlimited transfers are permitted. This differs from the original
// specification: https://developers.google.com/transit/gtfs/reference?hl=en#fare_attributestxt
//
// +required
Transfers int `gtfs:"transfers,required,-1"`
// Identifies the relevant agency for a fare.
// +conditionnaly required - This field is required for datasets with
// multiple agencies, otherwise it is optional.
Agency *Agency `gtfs:"agency_id"`
// Length of time in seconds before a transfer expires.
// +optional
TransferDuration int `gtfs:"transfer_duration"`
// List all the rules using this fare.
Rules []*FareRule
}
type FareAttributeSerializable ¶
type FareAttributeSerializable struct {
// Identifies a fare class.
// +required
Id string `gtfs:"fare_id,required"`
// Fare price, in the unit specified by currency_type.
// +required
Price float64 `gtfs:"price,required"`
// Currency used to pay the fare.
// +required
CurrencyType string `gtfs:"currency_type,required"`
// Indicates when the fare must be paid.
// See valid options: https://developers.google.com/transit/gtfs/reference?hl=en#fare_attributestxt
// +required
PaymentMethod int `gtfs:"payment_method,required"`
// Indicates the number of transfers permitted on this fare.
// See valid options:
// 0 - No transfers permitted on this fare.
// 1 - Riders may transfer once.
// 2 - Riders may transfer twice.
// -1 - Unlimited transfers are permitted. This differs from the original
// specification: https://developers.google.com/transit/gtfs/reference?hl=en#fare_attributestxt
//
// +required
Transfers int `gtfs:"transfers,required,-1"`
// Identifies the relevant agency for a fare.
// +conditionnaly required - This field is required for datasets with
// multiple agencies, otherwise it is optional.
AgencyId string `gtfs:"agency_id"`
// Length of time in seconds before a transfer expires.
// +optional
TransferDuration int `gtfs:"transfer_duration"`
}
type FareRule ¶
type FareRule struct {
// Identifies a fare class.
// +required
FareId string `gtfs:"fare_id,required"`
// Identifies a route associated with the fare class.
// +optional
Route *Route `gtfs:"route_id"`
// Identifies an origin zone.
// +optional
Origin *Zone `gtfs:"origin_id"`
// Identifies a destination zone.
// +optional
Destination *Zone `gtfs:"destination_id"`
// Identifies the zones that a rider will enter while using a given fare
// class.
// +optional
Contains *Zone `gtfs:"contains_id"`
}
type FareRuleSerializable ¶
type FareRuleSerializable struct {
// Identifies a fare class.
// +required
FareId string `gtfs:"fare_id,required"`
// Identifies a route associated with the fare class.
// +optional
RouteId string `gtfs:"route_id"`
// Identifies an origin zone.
// +optional
OriginId string `gtfs:"origin_id"`
// Identifies a destination zone.
// +optional
DestinationId string `gtfs:"destination_id"`
// Identifies the zones that a rider will enter while using a given fare
// class.
// +optional
ContainsId string `gtfs:"contains_id"`
}
type Feed ¶
type Feed struct {
Agencies map[string]*Agency
Levels map[string]*Level
Zones map[string]*Zone
Stops map[string]*Stop
Transfers []*Transfer
Pathways map[string]*Pathway
Services map[string]*Service
Shapes map[string]*Shape
Routes map[string]*Route
Trips map[string]*Trip
Block map[string]*Block
Frequencies map[string]*Frequency
FareAttributes map[string]*FareAttribute
FeedInfo *FeedInfo
Translations []*Translation
Attributions []*Attribution
}
Feed contains different slices and maps that holds a GTFS dataset.
func (*Feed) Unlink ¶
func (feed *Feed) Unlink() (*FeedSerializable, error)
TODO: Unlink transforms a Feed into a FeedSerializable
type FeedInfo ¶
type FeedInfo struct {
// Full name of the organization that publishes the dataset.
// +required
PublisherName string `gtfs:"feed_publisher_name,required"`
// URL of the dataset publishing organization's website.
// +required
PublisherUrl string `gtfs:"feed_publisher_url,required"`
// Default language for the text in this dataset.
// See more: https://developers.google.com/transit/gtfs/reference#feed_infotxt
// +required
FeedLang string `gtfs:"feed_lang,required"`
// Defines the language used when the data consumer doesn’t know the
// language of the rider. It's often defined as en, English.
// +optional
DefaultLang string `gtfs:"default_lang"`
// The dataset provides complete and reliable schedule information for
// service in the period from the beginning of the StartDate day to the end
// of the EndDate day.
// +optional
StartDate Date `gtfs:"feed_start_date"`
// The dataset provides complete and reliable schedule information for
// service in the period from the beginning of the StartDate day to the end
// of the EndDate day.
// +optional
EndDate Date `gtfs:"feed_end_date"`
// String that indicates the current version of their GTFS dataset.
// GTFS-consuming applications can display this value to help dataset
// publishers determine whether the latest dataset has been incorporated.*
// +optional
Version string `gtfs:"feed_version"`
// Email address for communication regarding the GTFS dataset and data
// publishing practices. ContactEmail is a technical contact for
// GTFS-consuming applications. Provide customer service contact information
// through agency.txt.
// +optional
ContactEmail string `gtfs:"feed_contact_email"`
// URL for contact information, a web-form, support desk, or other tools for
// communication regarding the GTFS dataset and data publishing practices.
// ContactUrl is a technical contact for GTFS-consuming applications.
// Provide customer service contact information through agency.txt.
// +optional
ContactUrl string `gtfs:"feed_contact_url"`
}
type FeedInfoSerializable ¶
type FeedInfoSerializable struct {
// Full name of the organization that publishes the dataset.
// +required
PublisherName string `gtfs:"feed_publisher_name,required"`
// URL of the dataset publishing organization's website.
// +required
PublisherUrl string `gtfs:"feed_publisher_url,required"`
// Default language for the text in this dataset.
// See more: https://developers.google.com/transit/gtfs/reference#feed_infotxt
// +required
FeedLang string `gtfs:"feed_lang,required"`
// Defines the language used when the data consumer doesn’t know the
// language of the rider. It's often defined as en, English.
// +optional
DefaultLang string `gtfs:"default_lang"`
// The dataset provides complete and reliable schedule information for
// service in the period from the beginning of the StartDate day to the end
// of the EndDate day.
// +optional
StartDate Date `gtfs:"feed_start_date"`
// The dataset provides complete and reliable schedule information for
// service in the period from the beginning of the StartDate day to the end
// of the EndDate day.
// +optional
EndDate Date `gtfs:"feed_end_date"`
// String that indicates the current version of their GTFS dataset.
// GTFS-consuming applications can display this value to help dataset
// publishers determine whether the latest dataset has been incorporated.*
// +optional
Version string `gtfs:"feed_version"`
// Email address for communication regarding the GTFS dataset and data
// publishing practices. ContactEmail is a technical contact for
// GTFS-consuming applications. Provide customer service contact information
// through agency.txt.
// +optional
ContactEmail string `gtfs:"feed_contact_email"`
// URL for contact information, a web-form, support desk, or other tools for
// communication regarding the GTFS dataset and data publishing practices.
// ContactUrl is a technical contact for GTFS-consuming applications.
// Provide customer service contact information through agency.txt.
// +optional
ContactUrl string `gtfs:"feed_contact_url"`
}
type FeedSerializable ¶
type FeedSerializable struct {
Agencies map[string]*AgencySerializable
Levels map[string]*LevelSerializable
Stops map[string]*StopSerializable
Transfers []*TransferSerializable
Pathways map[string]*PathwaySerializable
Calendar map[string]*CalendarSerializable
CalendarDates map[string][]*CalendarDateSerializable
Shapes map[string][]*ShapeSerializable
Routes map[string]*RouteSerializable
Trips map[string]*TripSerializable
StopTimes map[string][]*StopTimeSerializable
Frequencies map[string]*FrequencySerializable
FareAttributes map[string]*FareAttributeSerializable
FareRules []*FareRuleSerializable
FeedInfo *FeedInfoSerializable // There might be multiple FeedInfo per feed
Translations []*TranslationSerializable
Attributions []*AttributionSerializable
}
FeedSerializable contains different slices and maps that holds a GTFS dataset in the Serializable format.
func (*FeedSerializable) Link ¶
func (feed *FeedSerializable) Link() (*Feed, error)
func (*FeedSerializable) String ¶
func (feed *FeedSerializable) String() string
func (*FeedSerializable) Validate ¶
func (feed *FeedSerializable) Validate() error
Validate apply a verification on the FeedSerializable to check if there is any error compared to the specification. If there is no error, Validate returns nil, otherwise it returns the first error it encounters.
type Frequency ¶
type Frequency struct {
// Identifies a trip to which the specified headway of service applies.
// +required
Trip *Trip `gtfs:"trip_id,required"`
// Time at which the first vehicle departs from the first stop of the trip
// with the specified headway.
// +required
StartTime Time `gtfs:"start_time,required"`
// Time at which service changes to a different headway (or ceases) at the
// first stop in the trip.
// +required
EndTime Time `gtfs:"end_time,required"`
// Time, in seconds, between departures from the same stop (headway) for the
// trip, during the time interval specified by start_time and end_time.
// +required
HeadwaySecs int `gtfs:"headway_secs,required"`
// Indicates the type of service for a trip. See the file description for
// more information.
// See valid options: https://developers.google.com/transit/gtfs/reference?hl=en#frequenciestxt
// +optional
ExactTimes int `gtfs:"exact_times"`
}
type FrequencySerializable ¶
type FrequencySerializable struct {
// Identifies a trip to which the specified headway of service applies.
// +required
TripId string `gtfs:"trip_id,required"`
// Time at which the first vehicle departs from the first stop of the trip
// with the specified headway.
// +required
StartTime Time `gtfs:"start_time,required"`
// Time at which service changes to a different headway (or ceases) at the
// first stop in the trip.
// +required
EndTime Time `gtfs:"end_time,required"`
// Time, in seconds, between departures from the same stop (headway) for the
// trip, during the time interval specified by start_time and end_time.
// +required
HeadwaySecs int `gtfs:"headway_secs,required"`
// Indicates the type of service for a trip. See the file description for
// more information.
// See valid options: https://developers.google.com/transit/gtfs/reference?hl=en#frequenciestxt
// +optional
ExactTimes int `gtfs:"exact_times"`
}
type InvalidValueError ¶
func (*InvalidValueError) Error ¶
func (e *InvalidValueError) Error() string
type Level ¶
type Level struct {
// Id of the level that can be referenced from stops.txt.
// +required
Id string `gtfs:"level_id,required"`
// Numeric index of the level that indicates relative position of this level
// in relation to other levels (levels with higher indices are assumed to be
// located above levels with lower indices).
// +required
Index float64 `gtfs:"level_index,required"`
// Optional name of the level (that matches level lettering/numbering used
//inside the building or the station).
// +optional
Name string `gtfs:"level_name"`
}
type LevelSerializable ¶
type LevelSerializable struct {
// Id of the level that can be referenced from stops.txt.
// +required
Id string `gtfs:"level_id,required"`
// Numeric index of the level that indicates relative position of this level
// in relation to other levels (levels with higher indices are assumed to be
// located above levels with lower indices).
// +required
Index float64 `gtfs:"level_index,required"`
// Optional name of the level (that matches level lettering/numbering used
//inside the building or the station).
// +optional
Name string `gtfs:"level_name"`
}
type MissingStructError ¶
func (*MissingStructError) Error ¶
func (e *MissingStructError) Error() string
type Parser ¶
type Parser struct {
Validation bool
}
Parser is the struct that contains all the option to parse GTFS files.
func NewParser ¶
func NewParser(opts ...ParserOption) Parser
NewParser creates a new custom parser.
Use self referential functions design to configure. See more: https://commandcenter.blogspot.com/2014/01/self-referential-functions-and-design.html
type ParserOption ¶
type ParserOption func(*Parser)
ParserOption is a function that sets a certain config on a Parser.
This is part of the self referential functions design. See more: https://commandcenter.blogspot.com/2014/01/self-referential-functions-and-design.html
type Pathway ¶
type Pathway struct {
// The pathway_id field contains an ID that uniquely identifies the pathway.
// The pathway_id is used by systems as an internal identifier of this
// record (e.g., primary key in database), and therefore the pathway_id
// must be dataset unique.
// +required
Id string `gtfs:"pathway_id,required"`
// Location at which the pathway begins.
// +required
From *Stop `gtfs:"from_stop_id,required"`
// Location at which the pathway ends.
// +required
To *Stop `gtfs:"to_stop_id,required"`
// Type of pathway between the specified (from_stop_id, to_stop_id) pair.
// See valid values: https://developers.google.com/transit/gtfs/reference?hl=en#pathwaystxt
// +required
Mode int `gtfs:"pathway_mode,required,1"`
// Indicates in which direction the pathway can be used.
// +required
IsBidirectional int `gtfs:"is_bidirectional,required"`
// Horizontal length in meters of the pathway from the origin location to
// the destination location.
// +optional
Length float64 `gtfs:"length"`
// Average time in seconds needed to walk through the pathway from the
// origin location to the destination location.
// +optional
TraversalTime int `gtfs:"traversal_time"`
// Number of stairs of the pathway.
// +optional
StairCount int `gtfs:"stair_count"`
// Maximum slope ratio of the pathway.
// See valid values: https://developers.google.com/transit/gtfs/reference?hl=en#pathwaystxt
// +optional
MaxSlope float64 `gtfs:"max_slope"`
// Minimum width of the pathway in meters.
// +optional
MinWidth float64 `gtfs:"min_width"`
// String of text from physical signage visible to transit riders.
// +optional
SignpostedAs string `gtfs:"signposted_as"`
// Same than the signposted_as field, but when the pathways is used backward
// ie from the destination to the origin.
// +optional
ReversedSignpostedAs string `gtfs:"reversed_signposted_as"`
}
type PathwaySerializable ¶
type PathwaySerializable struct {
// The pathway_id field contains an ID that uniquely identifies the pathway.
// The pathway_id is used by systems as an internal identifier of this
// record (e.g., primary key in database), and therefore the pathway_id
// must be dataset unique.
// +required
Id string `gtfs:"pathway_id,required"`
// Location at which the pathway begins.
// +required
From string `gtfs:"from_stop_id,required"`
// Location at which the pathway ends.
// +required
To string `gtfs:"to_stop_id,required"`
// Type of pathway between the specified (from_stop_id, to_stop_id) pair.
// See valid values: https://developers.google.com/transit/gtfs/reference?hl=en#pathwaystxt
// +required
Mode int `gtfs:"pathway_mode,required,1"`
// Indicates in which direction the pathway can be used.
// +required
// FIXME: change this into a bool
IsBidirectional int `gtfs:"is_bidirectional,required"`
// Horizontal length in meters of the pathway from the origin location to
// the destination location.
// +optional
Length float64 `gtfs:"length"`
// Average time in seconds needed to walk through the pathway from the
// origin location to the destination location.
// +optional
TraversalTime int `gtfs:"traversal_time"`
// Number of stairs of the pathway.
// +optional
StairCount int `gtfs:"stair_count"`
// Maximum slope ratio of the pathway.
// See valid values: https://developers.google.com/transit/gtfs/reference?hl=en#pathwaystxt
// +optional
MaxSlope float64 `gtfs:"max_slope"`
// Minimum width of the pathway in meters.
// +optional
MinWidth float64 `gtfs:"min_width"`
// String of text from physical signage visible to transit riders.
// +optional
SignpostedAs string `gtfs:"signposted_as"`
// Same than the signposted_as field, but when the pathways is used backward
// ie from the destination to the origin.
// +optional
ReversedSignpostedAs string `gtfs:"reversed_signposted_as"`
}
type ReferenceError ¶
func (*ReferenceError) Error ¶
func (e *ReferenceError) Error() string
type RequirementError ¶
func (*RequirementError) Error ¶
func (e *RequirementError) Error() string
type Route ¶
type Route struct {
// Identifies a route.
// +required
Id string `gtfs:"route_id,required"`
// Agency for the specified route.
// +conditionally required - This field is required when the dataset
// provides data for routes from more than one agency, otherwise it is
// optional.
Agency *Agency `gtfs:"agency_id"`
// Short name of a route.
// +conditionally required - Either route_short_name or route_long_name must
// be specified, or potentially both if appropriate.
ShortName string `gtfs:"route_short_name"`
// Full name of a route.
// +conditionally required - Either route_short_name or route_long_name must
// be specified, or potentially both if appropriate.
LongName string `gtfs:"route_long_name"`
// Description of a route that provides useful, quality information.
// +optional
Desc string `gtfs:"route_desc"`
// Indicates the type of transportation used on a route.
// See valid options: https://developers.google.com/transit/gtfs/reference?hl=en#routestxt
// +required
Type int `gtfs:"route_type,required"`
// URL of a web page about the particular route. Should be different from
// the Agency.Url value.
// +optional
Url string `gtfs:"route_url"`
// Route color designation that matches public facing material.
// +optional
Color string `gtfs:"route_color"`
// Legible color to use for text drawn against a background of route_color.
// +optional
TextColor string `gtfs:"route_text_color"`
// Orders the routes in a way which is ideal for presentation to customers.
// +optional
SortOrder int `gtfs:"route_sort_order"`
// Indicates whether a rider can board the transit vehicle anywhere along
// the vehicle’s travel path.
// See valid options: https://developers.google.com/transit/gtfs/reference?hl=en#routestxt
// +optional
ContinuousPickup int `gtfs:"continuous_pickup,opt,1"`
// Indicates whether a rider can alight from the transit vehicle at any
// point along the vehicle’s travel path.
// See valid options: https://developers.google.com/transit/gtfs/reference?hl=en#routestxt
// +optional
ContinuousDropOff int `gtfs:"continuous_drop_off,opt,1"`
// All the trips from this route.
// +optional
Trips []*Trip
}
Route is a GTFS route.
type RouteSerializable ¶
type RouteSerializable struct {
// Identifies a route.
// +required
Id string `gtfs:"route_id,required"`
// Agency for the specified route.
// +conditionally required - This field is required when the dataset
// provides data for routes from more than one agency, otherwise it is
// optional.
AgencyId string `gtfs:"agency_id"`
// Short name of a route.
// +conditionally required - Either route_short_name or route_long_name must
// be specified, or potentially both if appropriate.
ShortName string `gtfs:"route_short_name"`
// Full name of a route.
// +conditionally required - Either route_short_name or route_long_name must
// be specified, or potentially both if appropriate.
LongName string `gtfs:"route_long_name"`
// Description of a route that provides useful, quality information.
// +optional
Desc string `gtfs:"route_desc"`
// Indicates the type of transportation used on a route.
// See valid options: https://developers.google.com/transit/gtfs/reference?hl=en#routestxt
// +required
Type int `gtfs:"route_type,required"`
// URL of a web page about the particular route. Should be different from
// the Agency.Url value.
// +optional
Url string `gtfs:"route_url"`
// Route color designation that matches public facing material.
// +optional
Color string `gtfs:"route_color"`
// Legible color to use for text drawn against a background of route_color.
// +optional
TextColor string `gtfs:"route_text_color"`
// Orders the routes in a way which is ideal for presentation to customers.
// +optional
SortOrder int `gtfs:"route_sort_order"`
// Indicates whether a rider can board the transit vehicle anywhere along
// the vehicle’s travel path.
// See valid options: https://developers.google.com/transit/gtfs/reference?hl=en#routestxt
// +optional
ContinuousPickup int `gtfs:"continuous_pickup,opt,1"`
// Indicates whether a rider can alight from the transit vehicle at any
// point along the vehicle’s travel path.
// See valid options: https://developers.google.com/transit/gtfs/reference?hl=en#routestxt
// +optional
ContinuousDropOff int `gtfs:"continuous_drop_off,opt,1"`
}
type Service ¶
type Service struct {
// Uniquely identifies a set of dates when service is available for one or
// more routes.
// +required
Id string
// Regular set of dates for each recurring week.
// +optional
Calendar *Calendar
// Exception to the calendar. Specify the service for a specific date.
// +optional
Exceptions []*CalendarDate
}
TODO:
type Shape ¶
type Shape struct {
// Identifies a shape.
// +required
Id string
// All the points which form this shape.
// +required
Points []*ShapePoint
}
Shapes describe the path that a vehicle travels along a route alignment. More info: https://developers.google.com/transit/gtfs/reference?hl=en#shapestxt
type ShapePoint ¶
type ShapePoint struct {
// Identifies a shape.
// +required
ShapeId string `gtfs:"shape_id,required"`
// Latitude of a shape point.
// +required
Lat float64 `gtfs:"shape_pt_lat,required"`
// Longitude of a shape point.
// +required
Long float64 `gtfs:"shape_pt_lon,required"`
// Sequence in which the shape points connect to form the shape. Values must
// increase along the trip but do not need to be consecutive.
// +required
Sequence int `gtfs:"shape_pt_sequence,required"`
// Actual distance traveled along the shape from the first shape point to
// the point specified in this record.
// +optional
DistTraveled float64 `gtfs:"shape_dist_traveled"`
}
type ShapeSerializable ¶
type ShapeSerializable struct {
// Identifies a shape.
// +required
ShapeId string `gtfs:"shape_id,required"`
// Latitude of a shape point.
// +required
Lat float64 `gtfs:"shape_pt_lat,required"`
// Longitude of a shape point.
// +required
Long float64 `gtfs:"shape_pt_lon,required"`
// Sequence in which the shape points connect to form the shape. Values must
// increase along the trip but do not need to be consecutive.
// +required
Sequence int `gtfs:"shape_pt_sequence,required"`
// Actual distance traveled along the shape from the first shape point to
// the point specified in this record.
// +optional
DistTraveled float64 `gtfs:"shape_dist_traveled"`
}
type Stop ¶
type Stop struct {
// Identifies a stop, station, or station entrance.
// +required
Id string `gtfs:"stop_id,required"`
// Short text or a number that identifies the location for riders.
// +optional
Code string `gtfs:"stop_code"`
// Name of the location. Use a name that people will understand in the local
// and tourist vernacular.
// +conditionally required: https://developers.google.com/transit/gtfs/reference?hl=en#stopstxt
Name string `gtfs:"stop_name"`
// Description of the location that provides useful, quality information.
// +optional
Desc string `gtfs:"stop_desc"`
// Latitude of the location.
// +conditionally required: https://developers.google.com/transit/gtfs/reference?hl=en#stopstxt
Lat float64 `gtfs:"stop_lat"`
// Longitude of the location.
// +conditionally required: https://developers.google.com/transit/gtfs/reference?hl=en#stopstxt
Long float64 `gtfs:"stop_lon"`
// URL of a web page about the location.
// +optional
Url string `gtfs:"stop_url"`
// Type of the location.
// See all values: https://developers.google.com/transit/gtfs/reference?hl=en#stopstxt
// +optional
LocationType int `gtfs:"location_type"`
// Timezone of the location. If the location has a parent station, it
// inherits the parent station’s timezone instead of applying its own.
// +optional
Timezone string `gtfs:"stop_timezone"`
// Indicates whether wheelchair boardings are possible from the location.
// See valid options: https://developers.google.com/transit/gtfs/reference?hl=en#stopstxt
// +optional
WheelchairBoarding int `gtfs:"wheelchair_boarding"`
// Platform identifier for a platform stop (a stop belonging to a station).
// +optional
PlatformCode string `gtfs:"platform_code"`
// Defines hierarchy between the different locations defined in stops.txt.
// +conditionally required: https://developers.google.com/transit/gtfs/reference?hl=en#stopstxt
ParentStation *Stop `gtfs:"parent_station"`
// Level of the location. The same level can be used by multiple unlinked
// stations.
// +optional
Level *Level `gtfs:"level_id"`
// Identifies the fare zone for a stop.
// +conditionally required - This field is required if providing fare
// information, otherwise it is optional. If this record represents a
// station or station entrance, the ZoneId is ignored.
Zone *Zone `gtfs:"zone_id"`
// Transfers from this stop to another stop. The map use the id of the other
// stop.
// +optional
TransfersFrom map[string]*Transfer
// Transfers from another stop to this stop. The map use the id of the other
// stop.
// +optional
TransfersTo map[string]*Transfer
}
Stop is a stop, station, or station entrance.
type StopSerializable ¶
type StopSerializable struct {
// Identifies a stop, station, or station entrance.
// +required
Id string `gtfs:"stop_id,required"`
// Short text or a number that identifies the location for riders.
// +optional
Code string `gtfs:"stop_code"`
// Name of the location. Use a name that people will understand in the local
// and tourist vernacular.
// +conditionally required: https://developers.google.com/transit/gtfs/reference?hl=en#stopstxt
Name string `gtfs:"stop_name"`
// Description of the location that provides useful, quality information.
// +optional
Desc string `gtfs:"stop_desc"`
// Latitude of the location.
// +conditionally required: https://developers.google.com/transit/gtfs/reference?hl=en#stopstxt
Lat float64 `gtfs:"stop_lat"`
// Longitude of the location.
// +conditionally required: https://developers.google.com/transit/gtfs/reference?hl=en#stopstxt
Long float64 `gtfs:"stop_lon"`
// URL of a web page about the location.
// +optional
Url string `gtfs:"stop_url"`
// Type of the location.
// See all values: https://developers.google.com/transit/gtfs/reference?hl=en#stopstxt
// +optional
LocationType int `gtfs:"location_type"`
// Timezone of the location. If the location has a parent station, it
// inherits the parent station’s timezone instead of applying its own.
// +optional
Timezone string `gtfs:"stop_timezone"`
// Indicates whether wheelchair boardings are possible from the location.
// See valid options: https://developers.google.com/transit/gtfs/reference?hl=en#stopstxt
// +optional
WheelchairBoarding int `gtfs:"wheelchair_boarding"`
// Platform identifier for a platform stop (a stop belonging to a station).
// +optional
PlatformCode string `gtfs:"platform_code"`
// Defines hierarchy between the different locations defined in stops.txt.
// +conditionally required: https://developers.google.com/transit/gtfs/reference?hl=en#stopstxt
ParentStation string `gtfs:"parent_station"`
// Level of the location. The same level can be used by multiple unlinked
// stations.
// +optional
LevelId string `gtfs:"level_id"`
// Identifies the fare zone for a stop.
// +conditionally required - This field is required if providing fare
// information, otherwise it is optional. If this record represents a
// station or station entrance, the ZoneId is ignored.
ZoneId string `gtfs:"zone_id"`
}
type StopTime ¶
type StopTime struct {
// Identifies a trip.
// +required
Trip *Trip `gtfs:"trip_id,required"`
// Identifies the serviced stop.
// +required
Stop *Stop `gtfs:"stop_id,required"`
// Arrival time at a specific stop for a specific trip on a route.
// +conditionally required: https://developers.google.com/transit/gtfs/reference?hl=en#stop_timestxt
ArrivalTime Time `gtfs:"arrival_time"`
// Departure time from a specific stop for a specific trip on a route.
// +conditionally required: https://developers.google.com/transit/gtfs/reference?hl=en#stop_timestxt
DepartureTime Time `gtfs:"departure_time"`
// Order of stops for a particular trip. The values must increase along the
// trip but do not need to be consecutive.
// +required
StopSequence int `gtfs:"stop_sequence,required"`
// Text that appears on signage identifying the trip's destination to
// riders.
// +optional
StopHeadsign string `gtfs:"stop_headsign"`
// Indicates pickup method.
// See valid options: https://developers.google.com/transit/gtfs/reference?hl=en#stop_timestxt
// +optional
PickupType int `gtfs:"pickup_type"`
// Indicates drop off method.
// See valid options: https://developers.google.com/transit/gtfs/reference?hl=en#stop_timestxt
// +optional
DropOffType int `gtfs:"drop_off_type"`
// Indicates whether a rider can board the transit vehicle at any point
// along the vehicle’s travel path.
// See valid options: https://developers.google.com/transit/gtfs/reference?hl=en#stop_timestxt
// +optional
ContinuousPickup int `gtfs:"continuous_pickup,opt,1"`
// Indicates whether a rider can alight from the transit vehicle at any
// point along the vehicle’s travel path.
// See valid options: https://developers.google.com/transit/gtfs/reference?hl=en#stop_timestxt
// +optional
ContinuousDropOff int `gtfs:"continuous_drop_off,opt,1"`
// Actual distance traveled along the associated shape, from the first stop
// to the stop specified in this record. This field specifies how much of
// the shape to draw between any two stops during a trip. Must be in the
// same units used in Shape. Values used for ShapeDistTraveled must increase
// along with StopSequence; they cannot be used to show reverse travel along
// a route.
// +optional
ShapeDistTraveled float64 `csv:"shape_dist_traveled"`
// Indicates if arrival and departure times for a stop are strictly adhered
// to by the vehicle or if they are instead approximate and/or interpolated
// times.
// See valid options: https://developers.google.com/transit/gtfs/reference?hl=en#stop_timestxt
// +optional
Timepoint int `gtfs:"timepoint,opt,1"`
}
StopTime is
type StopTimeSerializable ¶
type StopTimeSerializable struct {
// Identifies a trip.
// +required
TripId string `gtfs:"trip_id,required"`
// Identifies the serviced stop.
// +required
StopId string `gtfs:"stop_id,required"`
// Arrival time at a specific stop for a specific trip on a route.
// +conditionally required: https://developers.google.com/transit/gtfs/reference?hl=en#stop_timestxt
ArrivalTime Time `gtfs:"arrival_time"`
// Departure time from a specific stop for a specific trip on a route.
// +conditionally required: https://developers.google.com/transit/gtfs/reference?hl=en#stop_timestxt
DepartureTime Time `gtfs:"departure_time"`
// Order of stops for a particular trip. The values must increase along the
// trip but do not need to be consecutive.
// +required
StopSequence int `gtfs:"stop_sequence,required"`
// Text that appears on signage identifying the trip's destination to
// riders.
// +optional
StopHeadsign string `gtfs:"stop_headsign"`
// Indicates pickup method.
// See valid options: https://developers.google.com/transit/gtfs/reference?hl=en#stop_timestxt
// +optional
PickupType int `gtfs:"pickup_type"`
// Indicates drop off method.
// See valid options: https://developers.google.com/transit/gtfs/reference?hl=en#stop_timestxt
// +optional
DropOffType int `gtfs:"drop_off_type"`
// Indicates whether a rider can board the transit vehicle at any point
// along the vehicle’s travel path.
// See valid options: https://developers.google.com/transit/gtfs/reference?hl=en#stop_timestxt
// +optional
ContinuousPickup int `gtfs:"continuous_pickup,opt,1"`
// Indicates whether a rider can alight from the transit vehicle at any
// point along the vehicle’s travel path.
// See valid options: https://developers.google.com/transit/gtfs/reference?hl=en#stop_timestxt
// +optional
ContinuousDropOff int `gtfs:"continuous_drop_off,opt,1"`
// Actual distance traveled along the associated shape, from the first stop
// to the stop specified in this record. This field specifies how much of
// the shape to draw between any two stops during a trip. Must be in the
// same units used in Shape. Values used for ShapeDistTraveled must increase
// along with StopSequence; they cannot be used to show reverse travel along
// a route.
// +optional
ShapeDistTraveled float64 `csv:"shape_dist_traveled"`
// Indicates if arrival and departure times for a stop are strictly adhered
// to by the vehicle or if they are instead approximate and/or interpolated
// times.
// See valid options: https://developers.google.com/transit/gtfs/reference?hl=en#stop_timestxt
// +optional
Timepoint int `gtfs:"timepoint,opt,1"`
}
type Time ¶
A general time type for the Time gtfs format. The time is measured from "noon minus 12h" of the service day (effectively midnight except for days on which daylight savings time changes occur. For more information, see the guidelines article). For times occurring after midnight, enter the time.Hour can have a value greater than 24 for the day on which the trip schedule begins.
The empty value is created with Hour == -1.
Example: 14:30:00 for 2:30PM or 25:35:00 for 1:35AM on the next day.
type Transfer ¶
type Transfer struct {
// Identifies a stop or station where a connection between routes begins.
// If this field refers to a station, the transfer rule applies to all its
// child stops.
// +required
From *Stop `gtfs:"from_stop_id,required"`
// Identifies a stop or station where a connection between routes ends.
// If this field refers to a station, the transfer rule applies to all child
// stops.
// +required
To *Stop `gtfs:"to_stop_id,required"`
// Indicates the type of connection for the specified
// (from_stop_id, to_stop_id) pair.
// See valid options: https://developers.google.com/transit/gtfs/reference?hl=en#transferstxt
// +required
Type int `gtfs:"transfer_type,required"`
// Amount of time, in seconds, that must be available to permit a transfer
// between routes at the specified stops.
// +optional
MinTransferTime int `gtfs:"min_transfer_time"`
}
type TransferSerializable ¶
type TransferSerializable struct {
// Identifies a stop or station where a connection between routes begins.
// If this field refers to a station, the transfer rule applies to all its
// child stops.
// +required
From string `gtfs:"from_stop_id,required"`
// Identifies a stop or station where a connection between routes ends.
// If this field refers to a station, the transfer rule applies to all child
// stops.
// +required
To string `gtfs:"to_stop_id,required"`
// Indicates the type of connection for the specified
// (from_stop_id, to_stop_id) pair.
// See valid options: https://developers.google.com/transit/gtfs/reference?hl=en#transferstxt
// +required
Type int `gtfs:"transfer_type,required"`
// Amount of time, in seconds, that must be available to permit a transfer
// between routes at the specified stops.
// +optional
MinTransferTime int `gtfs:"min_transfer_time"`
}
type Translation ¶
type Translation struct {
// Defines the dataset table that contains the field to be translated.
// See valid values: https://developers.google.com/transit/gtfs/reference#translationstxt
TableName string `gtfs:"table_name,required"`
// Provides the name of the field to be translated.
// +required
FieldName string `gtfs:"field_name,required"`
// Provides the language of translation.
// See more: https://developers.google.com/transit/gtfs/reference#translationstxt
// +required
Language string `gtfs:"language,required"`
// Provides the translated value for the specified FieldName.
// +required
Translation string `gtfs:"translation,required"`
// Defines the record that corresponds to the field to be translated.
// The value in RecordId needs to be a main ID from a dataset table.
// See more: https://developers.google.com/transit/gtfs/reference#translationstxt
//
// +conditionnaly required - The following conditions determine how this
// field can be used:
// - Forbidden if TableName equals FeedInfo.
// - Forbidden if FieldValue is defined.
// - Required if FieldValue is empty.
RecordId string `gtfs:"record_id"`
// Helps to translate the record that contains the field when the table
// referenced in RecordId doesn’t have a unique ID.
// This means that this field is only useful when the TableName is
// stop_times. (RecordSubId should be the StopSequence then.)
//
// +conditionnaly required - The following conditions determine how this
// field can be used:
// - Forbidden if TableName equals FeedInfo.
// - Forbidden if FieldValue is defined.
// - Required if TableName equals stop_times and RecordId is defined.
RecordSubId string `gtfs:"record_sub_id"`
// Instead of using RecordId and RecordSubId to define which record needs
// to be translated, FieldValue can be used to define the value for
// translation. When used, the translation is applied when the field
// identified by TableName and FieldName contains the exact same value
// defined in FieldValue.
//
// The field must exactly match the value defined in FieldValue. If only a
// subset of the value matches FieldValue, the translation isn't applied.
//
// If two translation rules match the same record, one with FieldValue and
// the other one with RecordId, then the rule with RecordId is the one
// that needs to be used.
//
// +conditionnaly required - The following conditions determine how this
// field can be used:
// - Forbidden if TableName equals FeedInfo.
// - Forbidden if RecordId is defined.
// - Required if RecordId is empty.
FieldValue string `gtfs:"field_value"`
}
type TranslationSerializable ¶
type TranslationSerializable struct {
// Defines the dataset table that contains the field to be translated.
// See valid values: https://developers.google.com/transit/gtfs/reference#translationstxt
TableName string `gtfs:"table_name,required"`
// Provides the name of the field to be translated.
// +required
FieldName string `gtfs:"field_name,required"`
// Provides the language of translation.
// See more: https://developers.google.com/transit/gtfs/reference#translationstxt
// +required
Language string `gtfs:"language,required"`
// Provides the translated value for the specified FieldName.
// +required
Translation string `gtfs:"translation,required"`
// Defines the record that corresponds to the field to be translated.
// The value in RecordId needs to be a main ID from a dataset table.
// See more: https://developers.google.com/transit/gtfs/reference#translationstxt
//
// +conditionnaly required - The following conditions determine how this
// field can be used:
// - Forbidden if TableName equals FeedInfo.
// - Forbidden if FieldValue is defined.
// - Required if FieldValue is empty.
RecordId string `gtfs:"record_id"`
// Helps to translate the record that contains the field when the table
// referenced in RecordId doesn’t have a unique ID.
// This means that this field is only useful when the TableName is
// stop_times. (RecordSubId should be the StopSequence then.)
//
// +conditionnaly required - The following conditions determine how this
// field can be used:
// - Forbidden if TableName equals FeedInfo.
// - Forbidden if FieldValue is defined.
// - Required if TableName equals stop_times and RecordId is defined.
RecordSubId string `gtfs:"record_sub_id"`
// Instead of using RecordId and RecordSubId to define which record needs
// to be translated, FieldValue can be used to define the value for
// translation. When used, the translation is applied when the field
// identified by TableName and FieldName contains the exact same value
// defined in FieldValue.
//
// The field must exactly match the value defined in FieldValue. If only a
// subset of the value matches FieldValue, the translation isn't applied.
//
// If two translation rules match the same record, one with FieldValue and
// the other one with RecordId, then the rule with RecordId is the one
// that needs to be used.
//
// +conditionnaly required - The following conditions determine how this
// field can be used:
// - Forbidden if TableName equals FeedInfo.
// - Forbidden if RecordId is defined.
// - Required if RecordId is empty.
FieldValue string `gtfs:"field_value"`
}
type Trip ¶
type Trip struct {
// Identifies a trip.
// +required
Id string `gtfs:"trip_id,required"`
// Identifies a route.
// +required
Route *Route `gtfs:"route_id,required"`
// Identifies a set of dates when service is available for one or more
// routes.
// +required
Service *Service `gtfs:"service_id,required"`
// Identifies the block to which the trip belongs.
// +optional
Block *Block `gtfs:"block_id"`
// Identifies a geospatial shape that describes the vehicle travel path for
// a trip.
// +conditionally required: This field is required if the trip has
// continuous behavior defined, either at the route level or at the stop
// time level. Otherwise, it's optional.
Shape *Shape `gtfs:"shape_id"`
// Text that appears on signage identifying the trip's destination to
// riders.
// +optional
Headsign string `gtfs:"trip_headsign"`
// Public facing text used to identify the trip to riders, for instance, to
// identify train numbers for commuter rail trips.
// +optional
ShortName string `gtfs:"trip_short_name"`
// Indicates the direction of travel for a trip. This field is not used in
// routing; it provides a way to separate trips by direction when publishing
// time tables.
// See valid options: https://developers.google.com/transit/gtfs/reference?hl=en#tripstxt
// +optional
DirectionId int `gtfs:"direction_id"`
// Indicates wheelchair accessibility.
// See valid options: https://developers.google.com/transit/gtfs/reference?hl=en#tripstxt
// +optional
WheelchairAccessible int `gtfs:"wheelchair_accessible"`
// Indicates whether bikes are allowed.
// See valid options: https://developers.google.com/transit/gtfs/reference?hl=en#tripstxt
// +optional
BikesAllowed int `gtfs:"bikes_allowed"`
// List of all the stoptimes in this trip. Theses stoptimes should be
// in the order, meaning, you should be able to iterate over this slice and
// see the path of the trip.
// +required
StopTimes []*StopTime
}
Trip is a GTFS trip.
type TripSerializable ¶
type TripSerializable struct {
// Identifies a trip.
// +required
Id string `gtfs:"trip_id,required"`
// Identifies a route.
// +required
RouteId string `gtfs:"route_id,required"`
// Identifies a set of dates when service is available for one or more
// routes.
// +required
ServiceId string `gtfs:"service_id,required"`
// Identifies the block to which the trip belongs.
// +optional
BlockId string `gtfs:"block_id"`
// Identifies a geospatial shape that describes the vehicle travel path for
// a trip.
// +conditionally required: This field is required if the trip has
// continuous behavior defined, either at the route level or at the stop
// time level. Otherwise, it's optional.
ShapeId string `gtfs:"shape_id"`
// Text that appears on signage identifying the trip's destination to
// riders.
// +optional
Headsign string `gtfs:"trip_headsign"`
// Public facing text used to identify the trip to riders, for instance, to
// identify train numbers for commuter rail trips.
// +optional
ShortName string `gtfs:"trip_short_name"`
// Indicates the direction of travel for a trip. This field is not used in
// routing; it provides a way to separate trips by direction when publishing
// time tables.
// See valid options: https://developers.google.com/transit/gtfs/reference?hl=en#tripstxt
// +optional
DirectionId int `gtfs:"direction_id"`
// Indicates wheelchair accessibility.
// See valid options: https://developers.google.com/transit/gtfs/reference?hl=en#tripstxt
// +optional
WheelchairAccessible int `gtfs:"wheelchair_accessible"`
// Indicates whether bikes are allowed.
// See valid options: https://developers.google.com/transit/gtfs/reference?hl=en#tripstxt
// +optional
BikesAllowed int `gtfs:"bikes_allowed"`
}