Class: Strava::Models::Route

Inherits:
Response show all
Includes:
Mixins::Distance, Mixins::ElevationGain, Mixins::EstimatedMovingTime
Defined in:
lib/strava/models/route.rb

Overview

Represents a Strava route.

Routes are planned courses that athletes can follow for activities. They include map data, waypoints, and estimated moving time. Routes can be exported as GPX or TCX files for use with GPS devices.

Includes helper mixins for formatting distance, elevation gain, and time.

Examples:

Get and display route information

route = client.route(1234567)
puts route.name
puts route.description
puts "Distance: #{route.distance_s}"
puts "Elevation gain: #{route.elevation_gain_s}"
puts "Estimated time: #{route.estimated_moving_time_in_hours_s}"

Export route as GPX

gpx_data = client.export_route_gpx(route.id)
File.write('route.gpx', gpx_data)

See Also:

Instance Method Summary collapse

Methods included from Mixins::EstimatedMovingTime

#estimated_moving_time_in_hours_s

Methods included from Mixins::ElevationGain

#elevation_gain_in_feet, #elevation_gain_in_feet_s, #elevation_gain_in_meters, #elevation_gain_in_meters_s, #elevation_gain_s

Methods included from Mixins::Distance

#distance_in_feet, #distance_in_kilometers, #distance_in_kilometers_s, #distance_in_meters, #distance_in_meters_s, #distance_in_miles, #distance_in_miles_s, #distance_in_yards, #distance_in_yards_s, #distance_s

Instance Method Details

#athleteSummaryAthlete

Returns The athlete who created this route.

Returns:



33
# File 'lib/strava/models/route.rb', line 33

property 'athlete', transform_with: ->(v) { Strava::Models::SummaryAthlete.new(v) }

#created_atTime

Returns When the route was created.

Returns:

  • (Time)

    When the route was created



69
# File 'lib/strava/models/route.rb', line 69

property 'created_at', transform_with: ->(v) { Time.parse(v) }

#descriptionString?

Returns Route description.

Returns:

  • (String, nil)

    Route description



36
# File 'lib/strava/models/route.rb', line 36

property 'description'

#idInteger

Returns Route ID.

Returns:

  • (Integer)

    Route ID



42
# File 'lib/strava/models/route.rb', line 42

property 'id'

#id_strString

Returns Route ID as a string.

Returns:

  • (String)

    Route ID as a string



45
# File 'lib/strava/models/route.rb', line 45

property 'id_str'

#mapMap

Returns Route map with polyline data.

Returns:

  • (Map)

    Route map with polyline data



48
# File 'lib/strava/models/route.rb', line 48

property 'map', transform_with: ->(v) { Strava::Models::Map.new(v) }

#map_urlsHash?

Note:

Undocumented in official API

Returns URLs to map images at various sizes.

Returns:

  • (Hash, nil)

    URLs to map images at various sizes



84
# File 'lib/strava/models/route.rb', line 84

property 'map_urls'

#nameString

Returns Route name.

Returns:

  • (String)

    Route name



51
# File 'lib/strava/models/route.rb', line 51

property 'name'

#privateBoolean

Returns Whether this route is private.

Returns:

  • (Boolean)

    Whether this route is private



54
# File 'lib/strava/models/route.rb', line 54

property 'private'

#resource_stateInteger?

Note:

Undocumented in official API

Returns Resource state indicator.

Returns:

  • (Integer, nil)

    Resource state indicator



88
# File 'lib/strava/models/route.rb', line 88

property 'resource_state'

#segmentsArray<SummarySegment>

Returns Segments along this route.

Returns:



77
# File 'lib/strava/models/route.rb', line 77

property 'segments', transform_with: ->(v) { v.map { |r| Strava::Models::SummarySegment.new(r) } }

#starredBoolean

Returns Whether this route has been starred by the authenticated athlete.

Returns:

  • (Boolean)

    Whether this route has been starred by the authenticated athlete



57
# File 'lib/strava/models/route.rb', line 57

property 'starred'

#sub_typeInteger

Returns Route sub-type for additional categorization.

Returns:

  • (Integer)

    Route sub-type for additional categorization



66
# File 'lib/strava/models/route.rb', line 66

property 'sub_type'

#timestampTime

Returns Timestamp for the route.

Returns:

  • (Time)

    Timestamp for the route



60
# File 'lib/strava/models/route.rb', line 60

property 'timestamp', transform_with: ->(v) { Time.at(v) }

#typeInteger

Returns Route type (1 = Ride, 2 = Run).

Returns:

  • (Integer)

    Route type (1 = Ride, 2 = Run)



63
# File 'lib/strava/models/route.rb', line 63

property 'type'

#updated_atTime

Returns When the route was last updated.

Returns:

  • (Time)

    When the route was last updated



72
# File 'lib/strava/models/route.rb', line 72

property 'updated_at', transform_with: ->(v) { Time.parse(v) }

#waypointsArray<Waypoint>

Returns Waypoints along this route.

Returns:

  • (Array<Waypoint>)

    Waypoints along this route



80
# File 'lib/strava/models/route.rb', line 80

property 'waypoints', transform_with: ->(v) { v.map { |r| Strava::Models::Waypoint.new(r) } }