```meta
title: @track — o percurso de uma linha, desenhado
description: O trajeto de uma corrida, um pedal ou uma trilha desenhado a partir de um campo da coleção — sem mapa por baixo e sem carregar nada de fora.
```

_flows.md · documentação · [Blocos](/@docs/blocks)_

# @track

O percurso que uma linha de uma coleção guarda — uma corrida, um pedal, uma trilha, uma entrega — desenhado na página: só a linha, um círculo onde começa e um quadrado onde termina. Não há mapa por baixo, e a página não carrega nada de nenhum serviço de mapas: ninguém de fora fica sabendo por onde alguém correu.

## Ao vivo

Os exemplos leem a coleção `percursos-exemplo`, declarada nesta página (um leitor não vê a declaração), com três percursos inventados.

```@schema collection:percursos-exemplo visibility:public
codigo text required label:"Código"
titulo text label:"Atividade"
quando date label:"Quando"
percurso long_text label:"Percurso"
```

```@track collection:percursos-exemplo field:percurso
@filter codigo eq lagoa
```

~~~text
```@track collection:percursos-exemplo field:percurso
@filter codigo eq lagoa
```
~~~

Embaixo do desenho, a distância calculada pelos pontos e, quando os pontos trazem altitude, o ganho de elevação. Quem usa leitor de tela ouve o desenho em palavras: "Percurso, 12,3 km".

## O que o campo guarda

Um campo `text` ou `long_text` com os pontos em ordem, cada um `latitude,longitude` — e um terceiro número, se houver, é a altitude em metros. Os pontos vêm separados por espaço, quebra de linha ou `;`:

~~~text
-27.59000,-48.52000,12 -27.59086,-48.51903,13 -27.59171,-48.51806,15
~~~

Uma lista JSON de `[lat, lng]` ou `[lat, lng, altitude]` também vale. O percurso é lido inteiro ou não é lido: um ponto que não é um par de números, uma latitude além de 90 ou uma longitude além de 180, e nada é desenhado — aparece o texto de `empty:`, nunca um erro.

## Qual linha

O bloco desenha **uma** linha: a primeira que os `@filter` deixam, na ordem de `sort:`. Os filtros são os do [@data](/@docs/blocks/data), então o valor pode vir da página — num layout com uma ```` ```route ````, `@filter codigo eq params.codigo` desenha o percurso da atividade de cada endereço. Sem filtro, `sort:-quando` desenha a mais recente:

```@track collection:percursos-exemplo field:percurso sort:-quando height:short
```

~~~text
```@track collection:percursos-exemplo field:percurso sort:-quando height:short
```
~~~

## Variações

:::grid min:16 cols:2
```@track collection:percursos-exemplo field:percurso height:tall stats:false
@filter codigo eq morro
```
---
```@track collection:percursos-exemplo field:percurso
@filter codigo eq orla
```
:::

~~~text
```@track collection:percursos-exemplo field:percurso height:tall stats:false
@filter codigo eq morro
```

```@track collection:percursos-exemplo field:percurso
@filter codigo eq orla
```
~~~

## Argumentos

- `collection` — a coleção do espaço que guarda as linhas.
- `field` — o campo `text` ou `long_text` com o percurso.
- `sort` — a ordem em que a linha é escolhida quando os filtros deixam mais de uma; um menos na frente inverte (`-quando`).
- `height` — `short` (uma faixa), `medium` (o padrão) ou `tall`. O desenho ocupa a largura que tem e mantém as proporções do percurso.
- `stats` — `false` tira a distância e o ganho de elevação de baixo do desenho.
- `empty` — o que dizer quando não há linha, ou o campo não guarda um percurso.

Quem pode ver o percurso é quem pode ler a coleção: numa coleção privada, quem não lê as linhas vê "Dados privados" no lugar do desenho. Um percurso longo é desenhado com no máximo 2.000 pontos, espaçados por igual.
