The outdooractive data model describes representations of POIs, tours, images.

OOI

An object of interest (OOI) is the generalisation of POI (point of interest), tour (linestring) and region (multipolygon). An OOI is a content object with a georeferenced geometry, an id, a title and a category.

The core structure of a poi or tour object inside a xml response:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<oois xmlns="http://www.outdooractive.com/api/">
  <poi linkSuggested="true" id="1640826" frontendtype="lodging" countryCode="D">
    <!-- poi content -->
  </poi>
  <tour id="1373438" ranking="66.0">
    <!-- tour content -->
  </tour>
</oois>

Note: the order of the elements inside poi or tour is not fix.

Core Attributes of a OOI (POI or tour):

  • id: id of the tour
  • ranking: content ranking value (quality)

Category

An OOI (POI or a tour) has a single category.

Category information of an OOI:

<category
  id="1566480"
  name="Wanderung"
  iconUrl="http://res.oastatic.com/icons/alpstein/hiking/forest_green/hiking.small.png"
  iconInactiveUrl="http://res.oastatic.com/icons/alpstein/hiking/silver/hiking.small.png"
  iconMapUrl="http://res.oastatic.com/icons/alpstein/hiking/forest_green/hiking.mapscreen.png"
  iconInactiveMapUrl="http://res.oastatic.com/icons/alpstein/hiking/silver/hiking.mapscreen.png"
  iconTransparentUrl="http://res.oastatic.com/icons/alpstein/hiking/hiking.geocontent.png"
  strokeColor="#ff0000"
  isWinter="false"/>
  • id: category id
  • name: the name of the category (requested language)
  • icon*Url: urls to icons of the outdooractive icon library
  • strokeColor (tour categories only): the stroke color used to render a tour’s linestring
  • isWinter (tour categories only): is it a winter category like cross-country skiing ? (e.g. to choose the right maptype)

Meta Data

An OOI (e.g. a POI or a tour) has a meta data block.

<meta>
   <!-- OOI Datum -->
   <date
     created="2008-04-08T17:30:42"
     lastModified="2014-02-22T14:22:37"
     firstPublish="2009-06-15T00:00:00"/>
   <system createdIn="11" lastModifiedIn="11"/>
   <!-- OOI Quelle -->
   <source 
     id="1010"
     name="outdooractive Redaktion"
     url="https://www.outdooractive.com">
     <!-- OOI Quelle: Logo -->
     <logo id="1196956" logo="true">
        <title>outdooractive Redaktion</title>
     </logo>
     <favicon id="5292437">
        <title>outdooractive Redaktion</title>
     </favicon>
   </source>
   <workflow state="published"/>
   <!-- Autor -->
   <author>John Doe</author>
   <!-- the text attributes of the object are available german (list of languages) -->
   <translation>de</translation>
</meta>

You have to render the OOI’s source (including name, link and logo) and the OOI’s author to fullfill the outdooractive API guidelines.

  • meta/source/@name: source name
  • meta/source/@url: source url
  • meta/source/logo/@id: source logo image id -> img.oastatic.com/img/1196956/.jpg
  • meta/author: author plain text name

Regions

An OOI (e.g. a POI or a tour) has a list of related regions. These relations are computed based on the OOI’s geometry and the regions’ multipolygon geometries. A relation to a region exists if a tour’s linestring crosses the region’s area or a POI’s location is inside the region’s area. A region with the tour’s start point inside is additionally marked as start region.

<regions>
   <region id="1025774" type="commune"/>
   <region id="1017418" type="commune" isStartRegion="true"/>
</regions>

Region types:

  • political: commune (Gemeinde), district (Landkreis), province (Bundesland), country (Staat), continent (Kontinent)
  • tourism: tourismarea (Tourismus Region), customarea (kundenspezifische Region)
  • nature: mountainarea (Bergregion), protectedarea (Schutzgebiet)

Tags and Labels

An OOI may be described by a set of tags and labels:

<labels top="true"/>
<properties>
  <property
    tag="loopTour"
    text="Rundtour"
    hasIcon="true"
    iconURL="http://res.oastatic.com/v3/tags/loopTour.png"/>
</properties>

The label “top” marks “top content”.

Fix, semantic tags are listed inside the properties node.

Although all information to render the properties (tags) is part of the xml or json response (title and icon) there is an API to look up the tags by category:

  • https://www.outdooractive.com/api/platform/data/tags?category=1566480

Images

An OOI may have images which are full qualified objects. The primary image is used as thumbnail in OOI teasers etc. The xml node primaryImage is part of repsonses to requests with parameter display=list (other images are not part of the repsonse).

All images of a tour with id, title, source and meta information are listed inside the images node:

<primaryImage id="1179064">
  <title>Wir passieren die Stadtmauer an der Klosterstraße.</title>
  <source>Alpstein</source>
</primaryImage>
<!-- other xml nodes -->
<images>
 <image id="1224522" gallery="true">
 <title>Spitalkirche Hl. Geist in Füssen</title>
   <source>Alpstein</source>
   <meta>
      <date
        created="2008-04-08T17:30:49"
        lastModified="2008-07-01T08:06:28"/>
      <system createdIn="12" lastModifiedIn="11"/>
      <source name="Alpstein"/>
      <workflow state="published"/>
   </meta>
 </image>
</images>

Use the image id to lookup the image file:

  • image file: img.oastatic.com/img/1224522/.jpg

Note: please render the source and author of images.

POI

A POI (point of interest) extends the OOI data model.

Address and contact information

<!-- Adresse -->
<address>
  <!-- Straße -->
  street="Missener Straße"
  <!-- Hausnummer -->
  housenumber="18"
  <!-- Postleitzahl -->
  zipcode="87509"
  <!-- Ort -->
  town="Immenstadt"/>
<!-- Telefon -->
<phone>+49 (8323) 800 60</phone>
<!-- Fax -->
<fax>+49 (8323) 800 650</fax>
<!-- E-Mail -->
<email>hell@example.com</email>
<!-- Homepage of the POI -->
<homepage>http://www.example.com</homepage>

<!-- Weitere Links -->
<links>
  <link
    title="Unterkunft bei MyBuchungsPlatform buchen."
    href="http://example.com/myBuchungsPlatform"
    type="booking"
    context="default"/>
</links>

Links to additional information may be provided, e.g. a link to a booking system:

  • links
    • title: the suggested title of the additional link
    • href: the link
    • type: the type of the link: booking, web
    • context: default is a global context, e.g. a project-key allows to set project specific links

Text Attributes

A poi has a subset of the following multilanguage text attributes:

<!-- Titel -->
<title>The title of the tour</title>
<!-- Beschreibung -->
<longText>The description text.</longText>
<!-- Preise -->
<fee>Fees and Pricing</fee>

Geometry

The geometry of a POI is a 2D point. The coordinates are WGS84 longitude/latitude pairs. The text content of the geometry node is the coordinates string of a WKT (Well-Known Text) point (OGC Standard).

<!-- WGS84 Koordinaten -->
<geometry>11.312997,47.097334</geometry>
<!-- Höhe über Normalnull -->
<altitude>527.0</altitude>

Hut

<mountainHut
    landlordName="Name"
    landlordCountry="Country"
    landlordCity="City"
    landlordZipcode="12345"
    landlordStreet="Street"
    landlordHousenr="17"
    forChildrenAbove="6"
    yearBuilt="1999"
    classificationLabel="I"
    isHutNeedsKey="true"
    hasWinterRoom="true"
    isWinterRoomNeedsKey="true"
    isWinterRoomHeated="true"
    isSeminarSuitable="true"
    isOfficialAvMountainHut="true"
    isWithAccommodation="true"
    keyDesc="text description about the hut's key"
    winterRoomDesc="Information about the winter room"
    seminarDesc="text description about the equipment of the seminar room"
    bedCountCommunalBunks="4"
    bedCountWinterroom="2"
    bedCountRooms="10"
    bedCountTwinRooms="4"
    bedCount="20"
    starCategory="0">
  <phone>Phone (in the valley)</phone>
  <properties>
    <property tag="suitableForTheDisabled" text="barrierefrei" hasIcon="false"/>
    <property tag="Families" text="familienfreundlich" hasIcon="false"/>
    <property tag="badweathertips" text="Schlechtwettertipp" hasIcon="false"/>
    <property tag="PetsAllowed" text="Haustiere erlaubt" hasIcon="false"/>
    <property tag="ShowerAndWC" text="Dusche" hasIcon="false"/>
    <property tag="Creditcard" text="Kreditkarten" hasIcon="false"/>
    <property tag="ECCard" text="EC-Karten" hasIcon="false"/>
    <property tag="climbingWall" text="künstliche Kletteranlage" hasIcon="false"/>
    <property tag="playground" text="Spielplatz" hasIcon="false"/>
    <property tag="luggageTransport" text="Gepäcktransport" hasIcon="false"/>
    <property tag="wirelessCoverage" text="Mobilfunk" hasIcon="false"/>
    <property tag="wLan3gup" text="Internetzugang/WLAN" hasIcon="false"/>
    <property tag="accessibleByCar" text="Auto" hasIcon="false"/>
    <property tag="accessibleByCableway" text="Seilbahn" hasIcon="false"/>
    <property tag="ecoLabel" text="Umweltgütesiegel" hasIcon="true" iconURL="https://res.oastatic.com/v3/tags/svg/ecoLabel.svg"/>
    <property tag="soSchmeckenDieBerge" text="So schmecken die Berge" hasIcon="true" iconURL="https://res.oastatic.com/v3/tags/svg/soSchmeckenDieBerge.svg"/>
    <property tag="mitKindernAufHuetten" text="Mit Kindern auf Hütten" hasIcon="true" iconURL="https://res.oastatic.com/v3/tags/svg/mitKindernAufHuetten.svg"/>
    <property tag="geniesserHuette" text="GENIESSERHÜTTE" hasIcon="true" iconURL="https://res.oastatic.com/v3/tags/svg/geniesserHuette.svg"/>
  </properties>
  <cellPhone>Cell phone (hut)</cellPhone>
</mountainHut>
  • classificationLabel
    • classification by an alpine club
    • Values: I,II,III,AMH,MH,seH
  • isHutNeedsKey: a key is needed to access the hut
  • hasWinterRoom: there is a winter room
  • isWinterRoomNeedsKey: a key is needed to access the winter room
  • isWinterRoomHeated: the winter room is heated
  • isSeminarSuitable: the hut has a room that is suitable for seminars
  • isOfficialAvMountainHut: Official hut of an alpine Club

  • bedCountCommunalBunks: bed count in bunks
  • bedCountWinterroom: bed count in winter room
  • bedCountRooms: bed count in rooms
  • bedCountTwinRooms: bed count in twin rooms/double rooms
  • bedCount: overall bed count

Tour

A Tour extends the OOI data model.

Text Attributes

A tour has a subset of the following multilanguage text attributes:

<!-- Titel -->
<title>The title of the tour</title>
<!-- Kurzbeschreibung -->
<shortText>The short description/abstract.</shortText>
<!-- Beschreibung -->
<longText>The description text.</longText>
<!-- Öffentliche Verkehrsmittel -->
<publicTransit>
  Describes how public transport may be used to get to the starting point
  or get back home from the tour's destination
</publicTransit>
<!-- Startpunkt der Tour -->
<startingPointDescr>Describes the starting point of the tour</startingPointDescr>
<!-- Anfahrt -->
<gettingThere>How to get to the starting point, especially by car</gettingThere>
<!-- Parken -->
<parking>Information about parking at the starting point</parking>
<!-- Wegbeschreibung -->
<directions>Describes important signs, crossings and other information to find your way</directions>
<!-- Sicherheitshinweise -->
<safetyGuidelines>
  Information about safety to this tour
  (current conditions like snow are not part of this description)
</safetyGuidelines>
<!-- Ausrüstung -->
<equipment>Special equipment needed for this tour ?</equipment>
<!-- Tipp des Autors -->
<tip>Tip of the author</tip>
<!-- Weitere Infos / Links -->
<additionalInformation>Additional information</additionalInformation>
<!-- Zielpunkt der Tour -->
<destination>Describes the destination of the tour</destination>
<!-- Wegekennzeichen -->
<trackSignage>Describes sings along the tour</trackSignage>
<!-- Literatur -->
<literature>recommended books</literature>
<!-- Karte/Karten -->
<maps>recommended printed maps</maps>

Tour geometry

The geometry of a tour is a 2D linestring. The coordinates are WGS84 longitude/latitude pairs. The text content of the geometry node is the coordinates string of a WKT (Well-Known Text) Linestring (OGC Standard).

<geometry>10.316460,47.712130 10.316710,47.712540 10.316300,47.712690 10.316530</geometry>

Numbers

A tour has a set of numeric attributes:

<length>81638.52460399548</length>
<time min="75"/>
<elevation
  ascent="2045"
  descent="1380"
  minAltitude="188"
  maxAltitude="919"/>

<rating
  condition="0"
  difficulty="2"
  qualityOfExperience="0"
  landscape="0"
  qualityLevel="2"/>

<season
  jan="false"
  feb="false"
  mar="false"
  apr="false"
  may="true"
  jun="true"
  jul="true"
  aug="true"
  sep="true"
  oct="false"
  nov="false"
  dec="false"/>

<difficulties>
  <difficulty id="4062445">
    <type>Technik</type>
    <value>4</value>
  </difficulty>
</difficulties>
  • length: the length of the tour in meters
  • time: duration of the tour in minutes
  • elevation
    • ascent: ascending meters of the tour
    • descent: descending meters of the tour
    • minAltitude: altitude of the lowest location of the tour
    • maxAltitude: altitude of the highest location of the tour
  • rating (by the author)
    • condition: values 0..6
    • difficulty: values 0 (difficulty unknown), 1 (easy), 2 (intermediate), 3 (difficult)
    • landscape: values 0..6
    • qualityOfExperience: values 0..6
  • season: recommended season for the tour (boolean attribute for each month of the year)

Difficulty (Technique)

An author sets 0-6 stars to classify a tour in point of “stamina”, “experiential value”, “landscape” and “technique” (Kondition, Erlebniswert, Landschaft und Technik)

The difficulty of a tour (easy, intermediate, difficult) is derived out of the geometry of a tour and its attributes (including “technique”).

The “technique” value(s) of a tour depend on the tour category. Most tour categories allow to set a “technique” value by 0-6 stars.

The node “difficulties” listed below only exists if difficulty values are set for a tour by its author.

Default

The default difficulty scale allows 0 to 6 stars:

<difficulties>
 <difficulty id="4062445" name="defaultDifficultyScale">
  <type>Technique</type>
  <value>4</value>
 </difficulty>
</difficulties>

Alpine Tour (Hochtour)

<difficulties>
 <difficulty id="4062456" name="uiaaDifficultyScale">
  <type>UIAA Skala</type>
  <value>III</value>
 </difficulty>
 <difficulty id="4062491" name="steepnessIceDifficultyScale">
  <type>Steilheit Eis</type>
  <value>50°</value>
 </difficulty>
 <difficulty id="9865823" name="westalpDifficultyScale">
  <type>Westalpenskala</type>
  <value>D</value>
 </difficulty>
</difficulties>

Alpine Climbing (Alpinklettern)

<difficulties>
 <difficulty id="4062456" name="uiaaAlpinDifficultyScale">
  <type>UIAA Alpin Skala</type>
  <value>III</value>
 </difficulty>
 <difficulty id="4062540" name="frenchDifficultyScale">
  <type>Französische Skala</type>
  <value>5a</value>
 </difficulty>
</difficulties>

Ice Climbing (Eisklettern)

<difficulties>
 <difficulty id="4062569" name="wiDifficultyScale">
  <type>WI Skala</type>
  <value>WI3</value>
 </difficulty>
 <difficulty id="4062586" name="mixedDifficultyScale">
  <type>Mixed Skala</type>
  <value>M6</value>
 </difficulty>
</difficulties>

Ice Tour (Eistour)

<difficulties>
 <difficulty id="4062493" name="steepnessIceDifficultyScale">
  <type>Steilheit Eis</type>
  <value>60°</value>
 </difficulty>
</difficulties>

Mountain Bike and Mountainbike Transalp

<difficulties>
 <difficulty id="4062600" name="singleTrailDifficultyScale">
  <type>Singletrail-Skala</type>
  <value>S1</value>
 </difficulty>
 <difficulty id="4062443" name="defaultDifficultyScale">
  <type>Technik</type>
  <value>2</value>
 </difficulty>
</difficulties>

Via Ferrata (Klettersteig)

<difficulties>
 <difficulty id="4062525" name="viaferrataDifficultyScale">
  <type>Klettersteig Skala</type>
  <value>C</value>
 </difficulty>
</difficulties>

The author of a tour may select POIs along the tour to create relations to create additional rich information.

<pois>
   <poi
     id="1337904"
     linkSuggested="false"/>
   <poi
     id="1290602"
     linkSuggested="false"
     isElevationProfilePoi="true"/>
   <poi
     id="1355888"
     linkSuggested="true"
     isRecommendationPoi="true" isElevationProfilePoi="true"/>
</pois>

The first POI is just related to the tour.

  • linkSuggested: the basic attributes of the POI are filled (linking to a detail view makes sense)
  • isElevationProfilePoi: the POI appears inside the elevation profile
  • isRecommendationPoi: the author marked the POI as recommendation (subset of all POIs related to a tour)

Elevation Profile

<elevationProfile id="2045967"/>

Use the elevation profile image id to lookup the elevation profile image:

  • elevation profile image: https://img.oastatic.com/img/2045967/.jpg

Exposition

Some winter activities like skitour have the information about the tour’s exposition:

<exposition NE="true" EE="true" SE="true" SS="true" SW="true" WW="true" NW="true"/>

Risk

  • values: null 1-6
<riskPotential key="2"/>