APIs

../_images/api-ecosystem.png

API Geotrek

Geotrek dispose d’une API (Application Programming Interface) qui sert Ă  exposer les donnĂ©es stockĂ©es dans une instance de Geotrek-admin, dans le but de pouvoir la faire communiquer avec d’autres outils, systĂšmes et plateforme et ainsi Ă©changer des donnĂ©es.

Cette API, désormais dans sa version 2 permet à toute structure tierce de récupérer des données et de les intégrer dans son systÚme ou ses applications.

À ce jour de nombreux partenaires des structures utilisatrices de l’application Geotrek ont dĂ©jĂ  utilisĂ© cette API pour intĂ©grer les donnĂ©es dans leurs outils.

L’API Geotrek est le point central pour permettre les interconnexions avec divers services. GrĂące Ă  cette interface de donnĂ©es, Geotrek s’est positionnĂ© comme un point central dans un Ă©cosystĂšme de solutions du monde de la gestion et promotion des activitĂ©s de pleine nature.

Pour changer les paramĂštres d’accĂšs de l’API, rĂ©fĂ©rez vous Ă  cette section API

APIs externes

Geotrek et IGNrando’

Geotrek-admin est capable de produire un flux des itinĂ©raires et POIs prĂ©sents dans sa BDD au format Cirkwi pour pouvoir les importer directement dans IGNrando’ (https://makina-corpus.com/sig-webmapping/geotrek-et-lign-ca-fonctionne).

Exemple des randonnĂ©es et POIs du Parc national des Ecrins publiĂ©es sur IGNrando’ depuis Geotrek-admin : https://ignrando.fr/fr/communautes/parc-national-des-ecrins

Depuis cette version, 2 flux sont automatiquement gĂ©nĂ©rĂ©s par Geotrek-admin au format attendu par l’IGN :

  • [URL_GEOTREK-ADMIN]/api/cirkwi/circuits.xml

  • [URL_GEOTREK-ADMIN]/api/cirkwi/pois.xml

Il est possible d’exclure les POI du flux pour ne diffuser que les randonnĂ©es. Pour cela, ajouter le paramĂštre ?withoutpois=1 Ă  la fin de l’URL (http://XXXXX/api/cirkwi/circuits.xml?withoutpois=1).

Il est possible de filtrer les POI du flux par structure. Pour cela, ajouter le paramĂštre ?structures=<identifiant_de_la_structure> Ă  la fin de l’URL (http://XXXXX/api/cirkwi/pois.xml?structures=2). Vous pouvez filtrer avec plusieurs structures : en sĂ©parant les identifiants par des virgules (http://XXXXX/api/cirkwi/pois.xml?structures=2,5,3).

Il est Ă©galement possible de filtrer les randonnĂ©es du flux par structure et par portail. Pour cela, ajouter le paramĂštre ?structures=<identifiant_de_la_structure> ou ?portals=<identifian_de_la_structure> Ă  la fin de l’URL (http://XXXXX/api/cirkwi/circuits.xml?portals=3).

Il est Ă©galement possible d’exclure du flux les randonnĂ©es provenant de sources externes Ă  Geotrek-Admin. Ce filtre est notamment nĂ©cessaire pour ne pas renvoyer Ă  Cirkwi les randonnĂ©es qui en proviennent dĂ©jĂ . Pour cela, ajouter le paramĂštre ?include_externals=false Ă  la fin de l’URL (http://XXXXX/api/cirkwi/circuits.xml?include_externals=false).

Il est possible de cumuler ces différents filtres, en séparant les valeurs par un & (http://XXXXX/api/cirkwi/circuits.xml?portals=3&structures=1&include_externals=false).

Il est Ă©galement possible d’exclure du flux les randonnĂ©es provenant de sources externes Ă  Geotrek-Admin. Ce filtre est notamment nĂ©cessaire pour ne pas renvoyer Ă  Cirkwi les randonnĂ©es qui en proviennent dĂ©jĂ . Pour cela, ajouter le paramĂštre ?include_externals=false Ă  la fin de l’URL (http://XXXXX/api/cirkwi/circuits.xml?include_externals=false).

Il est possible de cumuler ces différents filtres, en séparant les valeurs par un & (http://XXXXX/api/cirkwi/circuits.xml?portals=3&structures=1&include_externals=false).

Le référentiel CIRKWI a été intégré dans 3 tables accessibles dans le module de configuration (à ne pas modifier) :

Ensemble des champs paramétrables pour le référentiel CIRKWI

Ensemble des champs paramĂ©trables pour le rĂ©fĂ©rentiel CIRKWI

Si vous ne souhaitez pas utiliser les valeurs par défaut ou avez créez vos propres typologies, il faut que vous renseigniez les correspondances entre les catégories de votre Geotrek et celles du référentiel IGN (Cirkwi) dans le module de configuration. Comme indiqué ici : https://github.com/GeotrekCE/Geotrek-admin/issues/806.

  • Pratique >> locomotion/loisirs

  • Accessibilite >> thematiques/tags

  • Themes >> thematiques/tags

  • Types de POI >> Categories POI

Les correspondances avec les valeurs de ces 3 tables sont donc à renseigner dans les tables Geotrek des Pratiques, Accessibilités, ThÚmes et Types de POI.

Ce mĂȘme flux est aussi utilisable pour alimenter directement la plateforme Cirkwi : https://pro.cirkwi.com/importez-vos-donnees-geotrek-dans-cirkwi/.

Note

Geotrek-admin dispose aussi d’une API gĂ©nĂ©rique permettant d’accĂ©der aux contenus d’une instance Ă  l’adresse : [URL_GEOTREK-ADMIN]/api/v2/

Geotrek et APIDAE

Il existe plusieurs passerelles entre la plateforme d’informations touristiques APIDAE et Geotrek.

APIDAE vers Geotrek

Actuellement, certains contenus touristiques peuvent ĂȘtre synchronisĂ©s automatiquement avec une base APIDAE. Il s’agit des contenus situĂ©s dans les catĂ©gories suivantes :

  • Contenus touristiques (hĂ©bergements, restaurants, produits du territoire, lieux de visites
)

  • EvĂ©nements touristiques (expositions, confĂ©rences, sorties
)

Les contenus touristiques peuvent aussi ĂȘtre synchronisĂ©s depuis des flux Tourinsoft ou Esprit Parc National.

Il est Ă©galement possible de mettre en place des passerelles pour importer des POIs, des lieux de renseignement, des amĂ©nagements ainsi que des randonnĂ©es d’APIDAE vers Geotrek. Il est aussi possible d’enrichir le lien avec les contenus touristiques pour avoir par exemple d’autres catĂ©gories.

Pour configurer APIDAE, se référer à cette section Configure APIDAE (ex-SITRA) import

Geotrek vers APIDAE

Il existe aussi un lien dans l’autre sens, permettant d’importer automatiquement vers APIDAE les itinĂ©raires existants dans une instance Geotrek.

L’API permet de connecter une instance Geotrek pour importer des itinĂ©raires vers les objets de type “Équipements” dans APIDAE.

Les randonnées VTT, trail, vélo et les tours itinérants sont également intégrés dans la passerelle.

Pour plus d’information, se rĂ©fĂ©rer Ă  la documentation en ligne de Sitourisme.

Sensitivity module (or Biodiv’Sports)

Note

You can play with API using Biodiv’Sports widget tool: https://biodivsports-widget.lpo-aura.org/

The Geotrek API provides a set of parameters that can be used to filter and sort data. There is a Swagger documentation (see Advanced configuration to enable it on your instance if needed) existing to test and browse those parameters that can be found at this address: /api/v2/.

This section focuses on some common parameters useful to work with sensitivity information and gives details about some endpoints.

Commons parameters

If language parameter is provided, API returns directly translated fields, else, a dictionnary of traductions is returned

e.g. /api/v2/sensitivearea_practice/1/?

{
   "id":1,
   "name":{
   "fr":"Terrestre",
   "en":"Land",
   "it":null
   }
}

e.g. /api/v2/sensitivearea_practice/1/?language=en

{
   "id":1,
   "name":"Land"
}
Sport practices

List of sport practices

/api/v2/sensitivearea_practice/

e.g. https://biodiv-sports.fr/api/v2/sensitivearea_practice/

Sensitive areas

List of sensitive areas

/api/v2/sensitivearea/

The default output format is json. To obtain output in geojson format, simply add the format=geojson parameter.

/api/v2/sensitivearea/?format=geojson

e.g. https://biodiv-sports.fr/api/v2/sensitivearea/?format=geojson

Filtering data

Data can be filtered through these parameters:

  • language : API language (see Commons parameters)

  • Expected values: fr, en, es or it

  • e.g. /api/v2/sensitivearea/?language=fr

  • period : Sensitivy period (months list)

  • Expected values: List of month numbers (from 1 to 12), comma separated

  • e.g. /api/v2/sensitivearea/?period=4,5,6,7

  • practices : Sport practices

  • Expected values: List of practices ids (see Sport practices)

  • e.g. /api/v2/sensitivearea/?practices=1,2

  • structure : Organization that declared the sensitive area.

  • Expected values: List of structures ids

  • e.g. /api/v2/sensitivearea/?structures=1,2

  • in_bbox

  • Expected values: List of bbox coordinates (respectively longitude and latitude South-West then North-East corner), comma separated.

  • e.g. /api/v2/sensitivearea/?in_bbox=5.0,45.0,6.0,46.0

Full example https://biodiv-sports.fr/api/v2/sensitivearea/?format=geojson&language=fr&practices=1,2&period=4,5,6,7&in_bbox=5.0,45.0,6.0,46.0

Filtering fields

  • fields: List of expected fields (see Field Descriptions)

  • Expected values: List of field names, comma separated

  • e.g. /api/v2/sensitivearea/?fields=name,geometry

  • omit: List of excluded fields (see Field Descriptions)

  • Expected values: List of field names, comma separated

  • e.g. /api/v2/sensitivearea/?omit=name,geometry

Warning

GeoJSON format expect at least id and geometry fields.

Field descriptions

  • id : local unique identifier of the sensitive area (integer).

  • name : Area name (string).

  • description : Area description (string in HTML format).

  • period : Area occupancy for each of the 12 months of the year (ordered array of 12 Booleans).

  • contact : Contact for further information about the sensitive area (string in HTML format).

  • practices: sports practices concerned by the hotspot (array of identifiers).

  • info_url : URL containing further information about the area (URL).

  • structure : Structure or acronyme that provided information on the area (string).

  • elevation : Elevation used to define area sensitivity volume (globally elevation, buffer radius for areas declared as Point).

  • geometry : Area GeoJSON geometry. Type is always “Polygon”.

  • species_id: species identifier or null for regulatory areas.

  • kml_url : URL of the downloadable KML file representing this regulatory zone.

  • openair_url : URL of the downloadable OpenAir file representing the regulatory zone (available only for aerial activities).

  • attachment : List of area attachment files.

  • rules : List of regulatory rules.

  • update_datetime: last update timestamp.

  • create_datetime: create timestamp.

Note

Species informations are commons for each species areas sharing the same species_id value, also share the same values for the name, period, practices and info_url fields.