API de integração
Queres integrar a tua app ou dispositivo com a nossa plataforma? Controlo de waypoints, STOPS, SPEED, regularidade e API de integração.
A. Uso de WP em eventos
Como controlar os STOPs, a velocidade em zonas de velocidade controlada, a passagem por WP de controlo, WP para eventos de regularidade e WP diversos.
1. Controlo de paragem nos STOPS
Para controlar que os pilotos fazem STOPs de pelo menos 1 segundo nos pontos desejados basta inserir no GPX anexado para a verificação da prova uns WP com a seguinte estrutura.
STOPX
O nome do WP deve ser STOP em maiúsculas seguido do número do STOP.
Exemplo:
STOP1 , STOP56 , etc.
2. Controlo de velocidade máxima em zonas concretas
Pode controlar-se que o piloto não excede a velocidade em zonas concretas: assim que a excede, nem que seja uma vez, num troço, esse troço considera-se penalizado, e o sistema indica quantas zonas de controlo de velocidade validou ou penalizou. Se houver, por exemplo, 6 zonas de velocidade controlada e o piloto exceder a velocidade em duas, marcará como corretas 4 de 6 zonas.
Para controlar que os pilotos não excedem a velocidade em zonas concretas é preciso inserir no GPX anexado para a verificação da prova uns WP com a seguinte estrutura.
SPEED_XXX_T_NN
XXX= Velocidade. Valor numérico, dígitos de 0 a 9; se forem dois dígitos, colocar um 0 à frente.T= Tipo início ou fim de troço. Opções (I = início, F = fim)N= Número do WP. Valor numérico, dígitos de 0 a 9; se for um só dígito, colocar um 0 à frente.
Exemplo:
SPEED_090_I_01 ( Início de troço de controlo de velocidade a 90 )
SPEED_090_F_01 ( Fim de troço de controlo de velocidade a 90 )
3. Controlo de passagem por WPs
Pode controlar-se que o piloto passa pelos WP desejados: o sistema indica por quais WP o piloto passou e valida-os. Se, por exemplo, o GPX tiver 256 WP e o piloto só registar a passagem por 232, o sistema marcará como validados 232 de 256.
Para isso basta inserir no GPX anexado para a verificação da prova uns WP com a seguinte estrutura.
CPXX
O nome do WP deve começar por CP em maiúsculas seguido do número do WP.
Exemplo:
CP1 , CP34 ,etc
4. Controlo de passagem por WP de eventos de regularidade
Pode controlar-se que o piloto passa pelos WP desejados à hora desejada: o sistema indica por quais WP passou dentro da margem estabelecida e penaliza a diferença de tempo.
O sistema permite uma margem de tempo em que o piloto não é penalizado, uma penalização por cada segundo de atraso ou adiantamento e uma penalização por não passar pelo WP
Imaginemos um WP com hora de passagem 1 h 45 min 21 s após a partida do piloto e uma margem de cortesia de 20 s.
Se o piloto passar 1 h 45 min 15 s após a partida, o sistema penaliza-o com 0 pontos.
Para isso basta inserir no GPX anexado para a verificação da prova uns WP com a seguinte estrutura.
CPRXXXXX
O nome do WP deve começar por CPR em maiúsculas seguido dos segundos após a partida em que o piloto deve passar pelo WP.
XXXXX= segundos. Valor numérico, dígitos de 0 a 9; se não chegar a cinco dígitos, colocar 0 à frente.
Exemplo:
CPR00034 = WP de controlo de regularidade, o piloto deve passar nele 34 segundos após a partida
CPR02421 = WP de controlo de regularidade, o piloto deve passar nele 2421 segundos após a partida
5. WP diversos
Inserem-se WP informativos no mapa do site de seguimento. Para isso basta inserir no GPX anexado para a verificação da prova uns WP com a seguinte estrutura.
Qualquer nome de WP que não comece pelos WP indicados acima, ou seja, que não comece por SPEED, STOP, CP ou CPR.
B. API de integração: enviar dados para o TeamTrack

Queres integrar a tua app ou dispositivo com a nossa plataforma?
Pede-nos a documentação e explicamos-te como fazê-lo facilmente.
Podes enviar da tua app ou dispositivo os dados para a nossa plataforma para os localizar nos nossos mapas, com todas as nossas funções e gratuitamente.
Faz-se através de um pedido HTTP GET com a seguinte estrutura:
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
Exemplos de valores:
latitud : 22.54596 (obrigatório)
longitud : 113.94389 (obrigatório)
velocidad : 23.56
datetime : 2018/12/04Z08:39:03 (obrigatório)
altitud: 128
bateria: 95
id_usuario_tt : 1285 (obrigatório)
key_api : TU_KEY_API (obrigatório)
Enviando a localização da tua app ou dispositivo para a nossa plataforma poderás usar como até agora os sites de seguimento do TeamTrack, bem como o histórico de movimentos, ver a localização enviada da app TeamTrack em dispositivos iOS e Android, etc.
Formato das consultas:
| Campo | Tipo | Comentário |
|---|---|---|
latitud | Double. Com ponto como separador decimal | Latitude da localização. Exemplo: 22.54876. Admite negativos, p. ex. -3.345. Campo obrigatório. |
longitud | Double. Com ponto como separador decimal | Longitude da localização. Exemplo: 113.54876. Admite negativos, p. ex. -42.845. Campo obrigatório. |
velocidad | Double. Com ponto como separador decimal | Velocidade atual do utilizador em km/h. Exemplo: 23.56. Se não for usada, enviar 0. |
datetime | Datetime. AAAA/MM/DDZHH:MM_SS | Usar Z como separador entre a data e a hora. Exemplo: 2018/12/04Z08:39:03. Campo obrigatório. |
altitud | Double. Com ponto como separador decimal | Altitude do utilizador em metros. Exemplo: 128.32. Se não for usada, enviar 0. |
bateria | Double. Com ponto como separador decimal | Nível de bateria do dispositivo. Exemplo: 95. Se não for usado, enviar 0. |
id_usuario_tt | Integer. | Número de ID de utilizador do TeamTrack. Exemplo: 1464. Campo obrigatório. |
puntos_no | Double. Com ponto como separador decimal | Pontos Naviopen. Exemplo: 251.12. Admite negativos. Se não for usado, enviar 0. |
key_api | varchar, 30 caracteres | Chave da API fornecida pelo TeamTrack que identifica a aplicação que envia os dados. Campo obrigatório. |
Respostas:
OK– Informação recebidaErro– Erro na informação enviada. Verificar os dados enviados.
C. API de integração: obter os dados do TeamTrack
Queres tirar os dados da nossa plataforma para os gerir ou mostrar?
Pede-nos a documentação e explicamos-te como fazê-lo facilmente.
Existem várias consultas:
1. Consulta de dados dos participantes inscritos num evento
Faz-se através de um pedido HTTP GET com a seguinte estrutura:
https://www.teamtrackonline.com/dka/existe.php?action=participants&race_id=race_id&api_key=key_api
Exemplos de valores:
race_id : 365 (obrigatório) – ID do evento
key_api : TU_KEY_API (obrigatório)
Exemplo de consulta:
https://www.teamtrackonline.com/dka/existe.php?action=participants&race_id=365&api_key=TU_KEY_API
Ao fazer a consulta o sistema responde com a informação dos participantes do evento com os seguintes dados:
[
{"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. Consulta do percurso de um participante num intervalo de tempo
Faz-se através de um pedido HTTP GET com a seguinte estrutura:
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
Exemplos de valores:
race_id : 365 (obrigatório) ID do evento
num_dorsal : 1 (obrigatório) Número de dorsal do piloto
date_time_ini : 2020/12/04Z08:30:00 (obrigatório) Data e hora a partir das quais se mostram os registos do piloto
date_time_fin : 2020/12/04Z19:30:00 (obrigatório) Data e hora até às quais se mostram os registos do piloto
backup_gps : 1 ou 0 (opcional) 1 envia os dados da baliza de reserva, 0 os da baliza principal; por defeito envia os da baliza principal
key_api : TU_KEY_API (obrigatório)
Exemplo de consulta:
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
Ao fazer a consulta o sistema responde com a informação dos participantes do evento com os seguintes dados:
[
{"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"}
]
Tens dúvidas? Contacta-nos
