Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type RouteParams ¶
type RouteParams struct {
// Required
FeedIDs []int `json:"feed_ids" validate:"required,gt=0"`
From [2]float64 `json:"from" validate:"required,len=2"`
To [2]float64 `json:"to" validate:"required,len=2"`
TransferCategories []string `json:"transfer_categories" validate:"required,dive,oneof=f i g"`
OutputFormats []string `json:"output_formats" validate:"required,gt=0,dive,oneof=connections legs geojson mapurl diagnostics request"`
// Non-Required (has default values - see RTRoute logic)
Time *time.Time `json:"time" validate:"required"` // Default: now
MaxNTransfers uint `json:"max_n_transfers" validate:"required"` // Default: 20
MaxTransferSeconds uint `json:"max_transfer_seconds" validate:"gtfield=MinTransferSeconds"` // Default: 40*60
MaxTripSeconds uint `json:"max_trip_seconds" validate:"gt=0"` // Default: 240*60
MaxWalkSeconds uint `json:"max_walk_seconds" validate:"gt=0"` // Default: 20*60
MinTransferSeconds uint `json:"min_transfer_seconds" validate:"required"` // Default: 3*60
WalkspeedKmHr float64 `json:"walkspeed_km_hr" validate:"gt=0"` // Default: 3.5
}
RouteParams contains the parameters for a given route request.
The FeedIDs, From, To, TransferCategories, and Output format fields are required.
Other fields are optional and will be filled in with default values if unset
type RouteResponse ¶
type RouteResponse struct {
RouteLegs *[]formatterlegs.RouteLeg `json:"legs,omitempty"`
GeoJSON *[]formattergeojson.GeoJSONFeature `json:"geojson,omitempty"`
MapURL *string `json:"mapurl,omitempty"`
Request *RouteParams `json:"request,omitempty"`
RouteDiagnostics *diagnosticst.RouteDiagnostics `json:"diagnostics,omitempty"`
Connections *[]dbt.ConnectionVerbose `json:"connections,omitempty"`
}
RouteResponse is the response for a successful routing request.
func RTRoute ¶
func RTRoute(runtime *apirtinit.MobrouteRuntime, params *RouteParams) (*RouteResponse, error)
RTRoute performs the routing logic, extracting from the DB the required data for CSA, running the CSA algorithm, going back to the DB to pull a few extra fields for presentation, and finally formatting the data into route legs for easy consumption.
Click to show internal directories.
Click to hide internal directories.