Guias

Estime o ganho total de altitude de uma rota

O ganho total de altitude é um único número que diz a quem faz trilhas ou pedala mais sobre a dificuldade de uma rota do que a distância sozinha jamais dirá. E também é simples de calcular quando você tem dados de altitude para pontos suficientes ao longo da rota.

Como obter a altitude da rota

Envie as coordenadas da rota, em ordem, para /v1/elevation, com o parâmetro points ou como um array em um POST em lote.

GET /v1/elevation?points=45.8326,6.8652|45.8400,6.8700|45.8475,6.8750|45.8300,6.8800
{
  "status": "ok",
  "results": [
    {"lat": 45.8326, "lon": 6.8652, "elevation_m": 1035},
    {"lat": 45.8400, "lon": 6.8700, "elevation_m": 1210},
    {"lat": 45.8475, "lon": 6.8750, "elevation_m": 1390},
    {"lat": 45.8300, "lon": 6.8800, "elevation_m": 1180}
  ]
}

Como somar o ganho

Percorra os resultados em ordem e, para cada par consecutivo, some a diferença ao total acumulado apenas quando a altitude aumentou. Neste exemplo, de 1035 para 1210 soma 175, de 1210 para 1390 soma 180, e de 1390 para 1180 não soma nada, já que esse trecho é de descida. O ganho total de altitude deste trecho curto é de 355 metros.

gain = 0
for i in 1..n:
  diff = elevation[i] - elevation[i-1]
  if diff > 0: gain += diff

A perda de altitude, a partir dos mesmos dados

O mesmo laço, com a comparação invertida, dá a descida total, o que importa tanto quanto o ganho em uma rota que termina mais baixo do que começa, como um percurso de ponto a ponto descendo uma montanha.

loss = 0
for i in 1..n:
  diff = elevation[i] - elevation[i-1]
  if diff < 0: loss += -diff

Para os quatro pontos acima, a perda total é de 210 metros, toda ela no último trecho, de descida. Um resumo de rota que informa apenas o ganho e deixa de fora a perda conta só metade da história para qualquer percurso que não seja um simples ida e volta.

O espaçamento entre os pontos muda o número

O ganho de altitude é sensível à quantidade de pontos amostrados. Pontos de menos suavizam subidas e descidas reais e resultam em um total subestimado. Pontos demais em um trajeto de GPS ruidoso podem inflar o número com pequenas oscilações para cima e para baixo que nunca foram uma subida real. Um espaçamento a cada dez a trinta metros ao longo de um trajeto de trilha, ou uma reamostragem em intervalos de distância iguais, é um ponto de partida razoável.

Um erro que vale a pena evitar

Fazer o cálculo do ganho diretamente em um trajeto de GPS bruto sem reamostrá-lo antes é uma forma comum de acabar com um número inflado, já que trajetos de GPS de consumo muitas vezes oscilam alguns metros para cima e para baixo entre pontos registrados consecutivos, mesmo em terreno realmente plano. Reamostre o trajeto em intervalos de distância iguais antes de solicitar a altitude, em vez de solicitar a altitude de cada ponto bruto que o dispositivo registrou.

Custo das requisições

Cada ponto é uma requisição, seja enviado pelo parâmetro points ou em um array em lote. Uma rota com 300 pontos amostrados custa 300 requisições, o que ainda é uma pequena parte das 2.500 requisições gratuitas por dia incluídas em cada chave.

O ganho de altitude calculado dessa forma só é tão bom quanto a amostragem de pontos por trás dele, então vale a pena testar algumas opções de espaçamento em uma rota conhecida antes de escolher uma. As opções completas de requisição estão na página da documentação da consulta de altitude.