Executando verificação de segurança...
2

Eu imaginava que o sistema de rastreamento de ônibus em São Paulo fosse um serviço colaborativo, mas na verdade, a estrutura é outra. A SPTrans, empresa pública que gerencia o transporte público na cidade, instalou aparelhos de GPS junto aos validadores (catracas) em toda a frota. Com isso, a empresa consegue monitorar a localização exata de cada ônibus em tempo real.

Para ter acesso a esses dados, é preciso se cadastrar como desenvolvedor no site da SPTrans e solicitar uma chave de API. O processo de utilização da API funciona da seguinte maneira:

Autenticação e Obtenção do Token: Primeiro, você envia sua chave de API para se autenticar e, em troca, recebe um token de acesso. Esse token deve ser incluído em todas as requisições subsequentes.

Consulta da Posição dos Ônibus:

Passo 1: Após a autenticação, você envia o token junto com o número da linha de ônibus que o usuário deseja consultar. A API retorna os códigos correspondentes aos sentidos da linha (ida e volta).

Passo 2: O usuário então escolhe o sentido desejado. Com esse código, você faz uma nova requisição para, finalmente, receber as coordenadas de geolocalização de todos os ônibus daquela linha e sentido específicos.

Desenho do Trajeto da Linha: Esta é uma etapa mais complexa. A funcionalidade da API para buscar os pontos de parada não opera de forma consistente. Para contornar isso, a SPTrans disponibiliza arquivos de dados que contêm as localizações dos pontos de ônibus. É necessário baixar e processar esses arquivos para conseguir desenhar o mapa do trajeto. Por isso, ao utilizar o aplicativo, o traçado da linha é exibido na tela antes da posição dos ônibus.

Além das funcionalidades principais, incluí no projeto algumas opções de personalização, como a troca de temas, algo que aprecio bastante.

A aplicação foi desenvolvida como uma Single Page Application (SPA), utilizando a combinação clássica de HTML, CSS e JavaScript puro. No backend, utilizei meu bom e velho PHP para gerenciar a chave da API e centralizar as chamadas. Essa arquitetura, com o PHP intermediando as requisições, também me permitiu contabilizar acesso por região da cidade, uma métrica que o Google Analytics não forne e essa informação logo está disponivel.

Carregando publicação patrocinada...