Skip to content

Adventures Objects

Andrew Maclean edited this page Jul 1, 2024 · 20 revisions

Short Adventure

{
  adventure_id: Int
  adventure_name: String
  adventure_type: AdventureType
  difficulty: String
  rating: String
  nearest_city: String
  coordinates: Coordinates
  path: GeoJSONCoordinates[]?
}
Key Type Description
adventure_id Int
adventure_name String
adventure_type AdventureType
difficulty String The adventure difficulty score followed by ':' followed by the number of votes to calculate the average
rating String The adventure rating score followed by ':' followed by the number of votes to calculate the average
nearest_city String City, State
coordinates Coordinates
path GeoJSON Coordinates[] If the current adventure has a map path associated with it, this will be an array of coordinates otherwise an empty array. Note: This property doesn't exist on all shortAdventure types

Generic Adventure Object

{
  id: Int
  adventure_name: String
  adventure_type: AdventureType
  bio: String
  creator: ShortUser
  date_created: Int
  difficulty: String
  rating: String
  nearest_city: String
  coordinates: Coordinates
  path_parameters: PathParameters
  season: Boolean[]
  images: String[]
  breadcrumb: BreadcrumbObject[]
  todo_users: ShortUser[]
  completed_users: ShortUser[]
  public: Boolean
}
Key Type Description
id Int
adventure_name String
adventure_type AdventureType
bio String
creator ShortUser Details about the creator of the adventure
date_created Int A timestamp of when the object was created
difficulty String The adventure difficulty score followed by ':' followed by the number of votes to calculate the average
rating String The adventure rating score followed by ':' followed by the number of votes to calculate the average
nearest_city String City, State
coordinates Coordinates
path_parameters PathParameters All the path data in the object
public Boolean
season Boolean[] An array of booleans for each month
images String[] A list of url strings for the image CDN
breadcrumb Breadcrumb Object[]
todo_users ShortUser[] The users that want to complete this adventure
completed_users ShortUser[] The users that have completed this adventure

Ski Adventure Object

{
  ...GenericAdventureObject
  avg_angle: Int
  max_angle: Int
  aspect: String
  summit_elevation: Int
  base_elevation: Int
  exposure: Int
}
Key Type Description
genericAdventureObject GenericAdventureObject
avg_angle Int
max_angle Int
aspect String Cardinal compass directions "XX"
summit_elevation Int In feet
base_elevation Int In feet
exposure Int Scale of 0-5

Climb Adventure Object

{
  ...GenericAdventureObject
  first_ascent: String
  pitches: Int
  protection: String
  approach: String
  climb_type: ClimbType
}
Key Type Description
genericAdventureObject GenericAdventureObject
first_ascent String Name or bio of the first ascent of the climb
pitches Int Number of pitches of the climb
protection String A description of what protection is needed to complete the climb
approach String A description of the approach to the climb
climb_type ClimbType Enum describing the type of the climb

Hike Adventure Object

{
  ...GenericAdventureObject
  summit_elevation: Int
  base_elevation: Int
  climb: Int
  descent: Int
}
Key Type Description
genericAdventureObject GenericAdventureObject
summit_elevation Int Highest elevation of the hike
base_elevation Int Lowest elevation of the hike
climb Int The amount of elevation gain throughout the hike
descent Int The amount of elevation lost throughout the hike

Bike Adventure Object

{
  ...GenericAdventureObject
  summit_elevation: Int
  base_elevation: Int
  climb: Int
  descent: Int
}
Key Type Description
genericAdventureObject GenericAdventureObject
summit_elevation Int Highest elevation of the hike
base_elevation Int Lowest elevation of the hike
climb Int The amount of elevation gain throughout the hike
descent Int The amount of elevation lost throughout the hike

Ski Approach Adventure Object

{
  ...GenericAdventureObject
  summit_elevation: Int
  base_elevation: Int
  gear: String
  exposure: Int
}
Key Type Description
genericAdventureObject GenericAdventureObject
summit_elevation Int Highest elevation of the hike
base_elevation Int Lowest elevation of the hike
gear String A stringified JSON list of booleans coorelating to each item in the gear list. TODO: parse this list.
exposure Int A rating from 0-5 of the exposure of the approach

GeoJSON Object

{
  type: "FeatureCollection",
  features: GeoJSONFeature[]
}
Key Type Description
type "FeatureCollection"
features GeoJSON Feature[]

GeoJSON Feature

{
  type: "Feature",
  geometry: {
    type: "Point" | "LineString"
    coordinates: [lng, lat] | [lng, lat][]
  },
  id: Int
  properties: {
    adventureType: adventureType
    adventureName: String
    color: String
  }
}
Key Type Description
type "Feature"
geometry Object
geometry.type "Point" or "Linestring"
geometry.coordinates [Float, Float] An array of two floats representing, longitude and latitude
id Int The feature id
properties Object
properties.adventureType AdventureType
properties.adventureName String The name of the adventure
properties.color String The line color portrayed on the map

Path Parameters

{
  path: [lng, lat][]
  points: [lng, lat][]
  elevations: [elevation, distance][]
}
Key Type Description
path GeoJSON Coordinates[] An array of coordinate pairs that adhere to GeoJSON coordinates
points GeoJSON Coordinates[] An array of coordinate pairs that adhere to GeoJSON coordinates. Points are the coordinates that the user selects to create a path. If a condition where the path is mapped to a line, then points and path will not be the same coordinates, otherwise they will be.
elevations [Double, Double][] These are the elevations along the points of a line. Each point contains a pair, the first of is the elevation of the point, the second is the distance from the start of the path. This way the profile of a path can be graphed.

ClimbType

enum('sport' | 'boulder' | 'trad' | 'alpine' | 'ice')

AdventureType

enum('ski' | 'climb' | 'hike' | 'bike' | 'skiApproach')

Coordinates Object

{
  lat: Float,
  lng: Float
}

GeoJSON Coordinates Object

[lng, lat]

Clone this wiki locally