Por que eu devo ler este artigo:Este artigo demonstra como desenvolver aplicações utilizando dados abertos, o que é viável quando companhias disponibilizam dados com licença para livre acesso da população.

A partir disso, é possível utilizá-los para várias finalidades como, por exemplo, para que os cidadãos possam monitorar o que políticos e órgãos públicos estão fazendo e, também, para a criação de novas soluções ou serviços que melhoram a vida das pessoas.

Para exemplificar isso, este artigo apresentará como desenvolver um sistema web que permite monitorar a posição dos ônibus da cidade de São Paulo em tempo real, com base em dados que são disponibilizados pela prefeitura.
Autores: Eduardo Felipe Zambom Santana e Luiz Henrique Zambom Santana

Diversas companhias, sejam elas públicas ou privadas, vêm disponibilizando dados com licença livre. Essa nova opção, permite que os mesmos sejam utilizados da maneira que as pessoas desejarem.

Segundo o portal de dados abertos do governo brasileiro, os principais motivos para a liberação das informações são transparência na gestão, contribuição da sociedade com serviços inovadores ao cidadão, aprimoramento na qualidade dos dados governamentais, viabilização de novos negócios e obrigatoriedade por lei.

Apesar de já ser uma ideia antiga, o conceito de dados abertos vem ganhando bastante destaque nos últimos anos, principalmente pela cobrança de uma maior transparência na administração pública. No Brasil, já existem diversas iniciativas no sentido de liberar o acesso a dados, antes restritos à população. Alguns exemplos de dados abertos são os dados de ônibus de algumas cidades do Brasil, como São Paulo e Rio de Janeiro, e alguns portais, como os do governo do estado e da cidade de São Paulo.

Um exemplo de fonte de dados abertos é a API Olho Vivo da SPTrans, órgão que gerencia o transporte público sobre rodas na cidade de São Paulo. Essa API permite que desenvolvedores acessem diversos dados sobre o sistema de ônibus, obtendo informações sobre as linhas, as paradas e, principalmente, a posição de todos os ônibus em tempo real.

No desenvolvimento de sistemas com dados abertos, uma das opções é utilizar padrões e APIs também abertas como, por exemplo, o JSON, que é um padrão para troca de mensagens entre diferentes aplicações, e também a API do Google Maps ou do OpenStreetMap, que permitem que sejam implementadas soluções utilizando os mapas dessas plataformas.

Para mostrar como utilizar dados abertos, a partir de agora iremos implementar uma aplicação que monitora a posição dos ônibus de São Paulo em tempo real. Essa solução será dividida em duas partes: a primeira será responsável por recuperar as posições dos ônibus em tempo real e as armazenar no Elasticsearch (utilizaremos uma ferramenta de Big Data pelo grande volume de dados que será salvo e pela necessidade de busca rápida a partir do nome de uma linha de ônibus); e a segunda será uma página web que mostrará a posição dos ônibus no Google Maps, sendo atualizada de tempos em tempos para acompanhar o trajeto dos mesmos. Ademais, como a API da SPTrans apenas informa a posição atual do veículo, isto é, não possibilita a recuperação de dados históricos, será necessário salvar esses dados todas as vezes que os solicitarmos.

A API da SPTrans

Assim como outras APIs públicas, a API Olho Vivo fornece diversos dados sobre os ônibus da cidade de São Paulo. Algumas das informações que podem ser recuperadas são os dados das linhas, a posição geográfica dos ônibus de uma linha, a posição geográfica (latitude e longitude) de um ponto de parada e a previsão de chegada do ônibus nesses pontos.

Para que um desenvolvedor possa utilizar a API, no entanto, é necessário um cadastro no site da SPTrans. A URL para acesso a esse site está na seção Links.

Realizado o cadastro, cada desenvolvedor recebe um token único, que deve ser passado para todas as requisições que forem feitas na API. No desenvolvimento da aplicação, mostraremos como esse token deve ser informado à API.

Além disso, existe uma boa documentação da API, que descreve todos os serviços que ela disponibiliza e todos os dados que devem ser especificados como parâmetro, assim como o formato de todos os dados que são retornados. A URL para essa documentação também está na seção Links.

Na API, todas as requisições são feitas através de uma URL simples como, por exemplo, http://api.olhovivo.sptrans.com.br/v0/Linha/Buscar?termosBusca=715M-10, onde Buscar é o nome do serviço da API que estamos utilizando, termoBusca é o nome do parâmetro que estamos passando para a API e 715M-10 é o valor passado no parâmetro, que nesse caso, é o letreiro de uma linha de ônibus de São Paulo. A Listagem 1 mostra o retorno da requisição à URL exemplo.

Listagem 1. JSON de resposta da API Olho Vivo.

{
   "CodigoLinha":33258,
   "Circular":false,
   "Letreiro":"715M",
   "Sentido":2,
   "Tipo":10,
   "DenominacaoTPTS":"LGO. DA POLVORA",
   "DenominacaoTSTP":"JD. MARIA LUIZA",
   "Informacoes":null
  }

Na aplicação que será desenvolvida nesse artigo, utilizaremos ...

Quer ler esse conteúdo completo? Seja um assinante e descubra as vantagens.
  • 473 Cursos
  • 10K Artigos
  • 100 DevCasts
  • 30 Projetos
  • 80 Guias
Tenha acesso completo