Never Alone, Always Safe
Développeurs

API d'intégration

Vous voulez intégrer votre application ou appareil à notre plateforme ? Contrôle des waypoints, STOPS, SPEED, régularité et API d'intégration.

A. Utilisation des WP dans les événements

Comment contrôler les STOPs, la vitesse dans les zones à vitesse contrôlée, le passage aux WP de contrôle, les WP des épreuves de régularité et les WP divers.

1. Contrôle des arrêts aux STOPS

Pour contrôler que les pilotes font des STOPs d'au moins 1 seconde aux points voulus, il suffit d'insérer dans le GPX joint pour la vérification de l'épreuve des WP ayant la structure suivante.

STOPX

Le nom du WP doit être STOP en majuscules suivi du numéro du STOP.

Exemple :

STOP1 , STOP56 , etc.

2. Contrôle de vitesse maximale dans des zones précises

On peut contrôler que le pilote ne dépasse pas la vitesse dans des zones précises : dès qu'il la dépasse, même une seule fois, dans une section, celle-ci est pénalisée, et le système indique combien de zones de contrôle de vitesse ont été validées ou pénalisées. Si, par exemple, il y a 6 zones à vitesse contrôlée et que le pilote dépasse la vitesse dans deux, il marquera 4 zones correctes sur 6.

Pour contrôler que les pilotes ne dépassent pas la vitesse dans des zones précises, il faut insérer dans le GPX joint pour la vérification de l'épreuve des WP ayant la structure suivante.

SPEED_XXX_T_NN
  • XXX = Vitesse. Valeur numérique, chiffres de 0 à 9 ; s'il y a deux chiffres, ajouter un 0 devant.
  • T = Type début ou fin de section. Options (I = début, F = fin)
  • N = Numéro du WP. Valeur numérique, chiffres de 0 à 9 ; s'il n'y a qu'un chiffre, ajouter un 0 devant.

Exemple :

SPEED_090_I_01  ( Début d'une section à vitesse contrôlée à 90 )
SPEED_090_F_01  ( Fin d'une section à vitesse contrôlée à 90 )

3. Contrôle du passage aux WP

On peut contrôler que le pilote passe par les WP voulus : le système indique par quels WP il est passé et les valide. Si, par exemple, le GPX contient 256 WP et que le pilote n'en a enregistré que 232, le système en marquera 232 sur 256 comme valides.

Pour cela, il suffit d'insérer dans le GPX joint pour la vérification de l'épreuve des WP ayant la structure suivante.

CPXX

Le nom du WP doit commencer par CP en majuscules suivi du numéro du WP.

Exemple :

CP1 , CP34 ,etc

4. Contrôle du passage aux WP des épreuves de régularité

On peut contrôler que le pilote passe par les WP voulus à l'heure voulue : le système indique par quels WP il est passé dans la marge définie et pénalise l'écart de temps.

Le système permet une plage de temps sans pénalité pour le pilote, une pénalité par seconde de retard ou d'avance et une pénalité pour ne pas être passé au WP

Imaginons un WP dont l'heure de passage est 1 h 45 min 21 s après le départ du pilote, avec une marge de tolérance de 20 s.

Si le pilote passe 1 h 45 min 15 s après son départ, le système lui attribue 0 point de pénalité.

Pour cela, il suffit d'insérer dans le GPX joint pour la vérification de l'épreuve des WP ayant la structure suivante.

CPRXXXXX

Le nom du WP doit commencer par CPR en majuscules suivi du nombre de secondes après son départ auquel le pilote doit passer au WP.

  • XXXXX = secondes. Valeur numérique, chiffres de 0 à 9 ; s'il y a moins de cinq chiffres, compléter avec des 0 devant.

Exemple :

CPR00034  = WP de contrôle de régularité, le pilote doit y passer 34 secondes après son départ
CPR02421 = WP de contrôle de régularité, le pilote doit y passer  2421  secondes après son départ

5. WP divers

Des WP d'information s'affichent sur la carte du site de suivi. Pour cela, il suffit d'insérer dans le GPX joint pour la vérification de l'épreuve des WP ayant la structure suivante.

Tout nom de WP qui ne commence pas par les WP indiqués plus haut, c'est-à-dire qui ne commence pas par SPEED, STOP, CP ou CPR.


B. API d'intégration : envoyer des données à TeamTrack

Schéma : les applications et appareils envoient des données par HTTP GET à l'API TT de la plateforme web TeamTrack

Vous voulez intégrer votre application ou appareil à notre plateforme ?

Demandez-nous la documentation et nous vous expliquerons comment faire facilement.

Vous pouvez envoyer à notre plateforme les données de votre application ou appareil pour les situer sur nos cartes, avec toutes nos fonctions et gratuitement.

Elle se fait au moyen d'une requête HTTP GET ayant la structure suivante :

https://www.teamtrackonline.com/gestion/inputs/input.php?lat=latitud&lon=longitud&speed=velocidad&datetime=datetime&altitude=altitud&battery=bateria&usuario_tt=id_usuario_tt&key_api=key

Exemples de valeurs :

latitud : 22.54596 (obligatoire)
longitud : 113.94389 (obligatoire)
velocidad : 23.56
datetime : 2018/12/04Z08:39:03 (obligatoire)
altitud:  128
bateria:  95
id_usuario_tt : 1285 (obligatoire)
key_api : TU_KEY_API (obligatoire)

En envoyant la position depuis votre application ou appareil à notre plateforme, vous pourrez utiliser comme d'habitude les sites de suivi TeamTrack, ainsi que l'historique des déplacements, voir la position envoyée depuis l'application TeamTrack sur iOS et Android, etc.

Format des requêtes :

ChampTypeCommentaire
latitudDouble. Avec un point comme séparateur décimalLatitude de la position. Exemple : 22.54876. Valeurs négatives admises, par ex. -3.345. Champ obligatoire.
longitudDouble. Avec un point comme séparateur décimalLongitude de la position. Exemple : 113.54876. Valeurs négatives admises, par ex. -42.845. Champ obligatoire.
velocidadDouble. Avec un point comme séparateur décimalVitesse actuelle de l'utilisateur en km/h. Exemple : 23.56. Si non utilisé, envoyer 0.
datetimeDatetime. AAAA/MM/JJZHH:MM_SSUtiliser Z comme séparateur entre la date et l'heure. Exemple : 2018/12/04Z08:39:03. Champ obligatoire.
altitudDouble. Avec un point comme séparateur décimalAltitude de l'utilisateur en mètres. Exemple : 128.32. Si non utilisé, envoyer 0.
bateriaDouble. Avec un point comme séparateur décimalNiveau de batterie de l'appareil. Exemple : 95. Si non utilisé, envoyer 0.
id_usuario_ttInteger.Numéro d'identifiant utilisateur TeamTrack. Exemple : 1464. Champ obligatoire.
puntos_noDouble. Avec un point comme séparateur décimalPoints Naviopen. Exemple : 251.12. Valeurs négatives admises. Si non utilisé, envoyer 0.
key_apivarchar, 30 caractèresClé d'API fournie par TeamTrack qui identifie l'application qui envoie les données. Champ obligatoire.

Réponses :

  • OK – Informations reçues
  • Erreur – Erreur dans les informations jointes. Vérifier les données envoyées.

C. API d'intégration : récupérer les données de TeamTrack

Vous voulez extraire les données de notre plateforme pour les gérer ou les afficher ?

Demandez-nous la documentation et nous vous expliquerons comment faire facilement.

Il existe plusieurs requêtes :

1. Consultation des données des participants inscrits à un événement

Elle se fait au moyen d'une requête HTTP GET ayant la structure suivante :

https://www.teamtrackonline.com/dka/existe.php?action=participants&race_id=race_id&api_key=key_api

Exemples de valeurs :

race_id : 365 (obligatoire) – Identifiant de l'événement
key_api :  TU_KEY_API  (obligatoire)

Exemple de requête :

https://www.teamtrackonline.com/dka/existe.php?action=participants&race_id=365&api_key=TU_KEY_API

Lors de la requête, le système répond avec les informations des participants à l'événement, avec les données suivantes :

[
{"nombre_usuario":"Piloto 1 ","num_dorsal":"1","ultima_actualizacion":"2021-03-17 09:14:46","lat":"37.425678","lon":"-2.972899","vel":"43.1","alt":"1206.6","bateria":"63 %"},
{"nombre_usuario":"Piloto 2 ","num_dorsal":"2","ultima_actualizacion":"2021-03-17 09:14:36","lat":"37.423009","lon":"-2.970436","vel":"55.4","alt":"1226.5","bateria":"58 %"},
{"nombre_usuario":"Piloto 3 ","num_dorsal":"3","ultima_actualizacion":"2021-03-17 09:14:47","lat":"37.422543","lon":"-2.980097","vel":"28.7","alt":"1182.5","bateria":"96 %"},
{"nombre_usuario":"Piloto 4 ","num_dorsal":"4","ultima_actualizacion":"2021-03-17 09:14:26","lat":"37.434076","lon":"-2.999814","vel":"82.3","alt":"1115.1","bateria":"55 %"},
{"nombre_usuario":"Piloto 5 ","num_dorsal":"5","ultima_actualizacion":"2021-03-17 09:14:45","lat":"37.425076","lon":"-2.994982","vel":"39.1","alt":"1113.0","bateria":"62 %"},
{"nombre_usuario":"Piloto 5 ","num_dorsal":"R","ultima_actualizacion":"2021-03-17 09:14:47","lat":"37.485225","lon":"-3.032848","vel":"27.0","alt":"1000.5","bateria":"100 %"}
]

2. Consultation du parcours d'un participant sur un intervalle de temps

Elle se fait au moyen d'une requête HTTP GET ayant la structure suivante :

https://www.teamtrackonline.com/dka/existe.php?action=participant_route&race_id=race_id&num_dorsal=num_dorsal&date_time_ini=date_time_ini&date_time_fin=date_time_fin&api_key=key_api

Exemples de valeurs :

race_id : 365 (obligatoire) Identifiant de l'événement
num_dorsal : 1 (obligatoire) Numéro de dossard du pilote
date_time_ini : 2020/12/04Z08:30:00 (obligatoire) Date et heure à partir desquelles les enregistrements du pilote sont affichés
date_time_fin : 2020/12/04Z19:30:00 (obligatoire) Date et heure jusqu'auxquelles les enregistrements du pilote sont affichés
backup_gps : 1 ou 0 (facultatif) 1 envoie les données de la balise de secours, 0 celles de la balise principale ; par défaut, celles de la balise principale
key_api : TU_KEY_API (obligatoire)

Exemple de requête :

https://www.teamtrackonline.com/dka/existe.php?action=participant_route&race_id=365&num_dorsal=3&date_time_ini=2021-03-17Z08:04:00&date_time_fin=2021-03-17Z08:04:55&api_key=TU_KEY_API

Lors de la requête, le système répond avec les informations des participants à l'événement, avec les données suivantes :

[
{"usuario":"3901","lat":"37.294017","lon":"-3.167673","alt":"985.0","vel":"0.2","bearing":"27","GNSS_AC":"1","fecha":"2021-03-17 08:04:01"},
{"usuario":"3901","lat":"37.294017","lon":"-3.167673","alt":"985.0","vel":"0.0","bearing":"27","GNSS_AC":"1","fecha":"2021-03-17 08:04:03"},
{"usuario":"3901","lat":"37.294017","lon":"-3.167673","alt":"985.0","vel":"0.0","bearing":"27","GNSS_AC":"1","fecha":"2021-03-17 08:04:05"},
{"usuario":"3901","lat":"37.294017","lon":"-3.167673","alt":"985.0","vel":"0.0","bearing":"27","GNSS_AC":"1","fecha":"2021-03-17 08:04:07"},
{"usuario":"3901","lat":"37.294017","lon":"-3.167673","alt":"985.0","vel":"0.0","bearing":"27","GNSS_AC":"1","fecha":"2021-03-17 08:04:09"},
{"usuario":"3901","lat":"37.294017","lon":"-3.167673","alt":"985.0","vel":"0.0","bearing":"27","GNSS_AC":"1","fecha":"2021-03-17 08:04:11"},
{"usuario":"3901","lat":"37.294017","lon":"-3.167673","alt":"985.0","vel":"0.0","bearing":"27","GNSS_AC":"1","fecha":"2021-03-17 08:04:13"},
{"usuario":"3901","lat":"37.294017","lon":"-3.167673","alt":"985.0","vel":"0.0","bearing":"27","GNSS_AC":"1","fecha":"2021-03-17 08:04:15"},
{"usuario":"3901","lat":"37.294017","lon":"-3.167673","alt":"985.0","vel":"0.0","bearing":"27","GNSS_AC":"1","fecha":"2021-03-17 08:04:17"},
{"usuario":"3901","lat":"37.294017","lon":"-3.167673","alt":"985.0","vel":"0.0","bearing":"27","GNSS_AC":"1","fecha":"2021-03-17 08:04:19"},
{"usuario":"3901","lat":"37.294017","lon":"-3.167673","alt":"985.0","vel":"0.0","bearing":"27","GNSS_AC":"1","fecha":"2021-03-17 08:04:21"},
{"usuario":"3901","lat":"37.294017","lon":"-3.167673","alt":"985.0","vel":"0.0","bearing":"27","GNSS_AC":"1","fecha":"2021-03-17 08:04:23"},
{"usuario":"3901","lat":"37.294017","lon":"-3.167673","alt":"985.0","vel":"0.0","bearing":"27","GNSS_AC":"1","fecha":"2021-03-17 08:04:25"},
{"usuario":"3901","lat":"37.294017","lon":"-3.167673","alt":"985.0","vel":"0.0","bearing":"27","GNSS_AC":"1","fecha":"2021-03-17 08:04:27"},
{"usuario":"3901","lat":"37.294017","lon":"-3.167673","alt":"985.0","vel":"0.0","bearing":"27","GNSS_AC":"1","fecha":"2021-03-17 08:04:29"},
{"usuario":"3901","lat":"37.294017","lon":"-3.167673","alt":"985.0","vel":"0.0","bearing":"27","GNSS_AC":"1","fecha":"2021-03-17 08:04:31"},
{"usuario":"3901","lat":"37.294017","lon":"-3.167673","alt":"985.0","vel":"0.0","bearing":"27","GNSS_AC":"1","fecha":"2021-03-17 08:04:33"},
{"usuario":"3901","lat":"37.294017","lon":"-3.167673","alt":"985.0","vel":"0.0","bearing":"27","GNSS_AC":"1","fecha":"2021-03-17 08:04:35"},
{"usuario":"3901","lat":"37.294017","lon":"-3.167673","alt":"985.0","vel":"0.0","bearing":"27","GNSS_AC":"1","fecha":"2021-03-17 08:04:37"},
{"usuario":"3901","lat":"37.294017","lon":"-3.167673","alt":"985.0","vel":"0.0","bearing":"27","GNSS_AC":"1","fecha":"2021-03-17 08:04:39"},
{"usuario":"3901","lat":"37.294038","lon":"-3.167659","alt":"985.2","vel":"8.7","bearing":"18","GNSS_AC":"1","fecha":"2021-03-17 08:04:41"},
{"usuario":"3901","lat":"37.294060","lon":"-3.167653","alt":"985.0","vel":"3.4","bearing":"10","GNSS_AC":"1","fecha":"2021-03-17 08:04:43"},
{"usuario":"3901","lat":"37.294066","lon":"-3.167652","alt":"984.6","vel":"0.5","bearing":"10","GNSS_AC":"1","fecha":"2021-03-17 08:04:45"},
{"usuario":"3901","lat":"37.294066","lon":"-3.167652","alt":"984.7","vel":"0.0","bearing":"10","GNSS_AC":"1","fecha":"2021-03-17 08:04:47"},
{"usuario":"3901","lat":"37.294066","lon":"-3.167652","alt":"984.7","vel":"0.0","bearing":"10","GNSS_AC":"1","fecha":"2021-03-17 08:04:49"},
{"usuario":"3901","lat":"37.294066","lon":"-3.167652","alt":"984.7","vel":"0.0","bearing":"10","GNSS_AC":"1","fecha":"2021-03-17 08:04:53"},
{"usuario":"3901","lat":"37.294066","lon":"-3.167652","alt":"984.7","vel":"0.0","bearing":"10","GNSS_AC":"1","fecha":"2021-03-17 08:04:55"}
]

Des questions ? Contactez-nous