Skip to content

Crawls routes from São Paulo's transportation company website and makes them available in a proximity-searchable, interactive map

License

Notifications You must be signed in to change notification settings

chesterbr/cruzalinhas

Repository files navigation

cruzalinhas

Aplicativo e API de acesso a rotas de transporte público de São Paulo, disponível em cruzalinhas.chester.me

Motivação

Os itinerários das linhas de transporte público administradas pela SPTrans são referentes a um serviço PÚBLICO, e sempre defendi que estes deveriam estar disponíveis de uma forma mais acessível do que o site (ainda mais sabendo que algumas empresas privadas tinham acesso), permitindo a criação de ferramentas que facilitem a vida do usuário.

Foi criado um programa que capturava os dados diretamente do site da SPTrans (scraper) e para demonstrar seu uso, o site cruzalinhas.

O cruzalinhas permite buscar um endereço ou clicar no mapa e rapidamente ver o traçado de linhas (rotas) que passem perto dele. Ao marcar pontos sucessivos, o sistema "cruza" as linhas que passam entre eles - daí o nome.

Com a Lei de Acesso à Informação e uma mudança de postura da SPTrans (que criou um site para desenvolvedores no qual é possível baixar os itinerários(*) no formato GTFS), o scraper se tornou obsoleto, e o cruzalinhas foi atualizado para importar os dados diretamente no formato acima.

(*) embora ainda irregular perante a lei por não "possibilitar o acesso automatizado por sistemas externos" (Art. 8º, §3º, III). Mas isso é outro assunto.

Funcionamento

O sistema de importação e a API (originalmente baseados em Python/Google App Engine) foram refeitos com Ruby on Rails, preservando a compatibilidade com o site (um aplicativo web de página única feito com HTML e JavaScript) e com aplicativos de terceiros.

Serviços Utilizados

Os mapas são gerados pela comunidade OpenStreetMap, e os tiles são servidos pela Mapbox através da biblioteca Leaflet, com busca de endereços via Nominatim, nos termos de uso de cada um destes serviços.

Informações para Desenvolvedores

Preparando o ambiente de desenvolvimento

Assumindo que você já tenha o rbenv com ruby-build e wget instalados (é o caso do GitHub Codespaces):

rbenv install -s && bundle && bin/rake db:create db:migrate && bin/rake sptrans:import

(alternativamente, troque o rbenv install -s por seu método predileto para instalar a versão do Ruby em .ruby-version)

Rodando o servidor

Novamente, o esquema padrão Rails: bin/rails server e abra http://localhost:3000.

Atualizando com dados da SPTrans

Embora a SPTrans tenha disponibilizado os dados GTFS, eles exigem o cadastro para baixar o arquivo, tornando a automação de projetos como este difícil. Felizmente, o OpenMobilityData mantém a última versão dos dados, e a inicialização acima já baixa eles e popula o banco de dados local. Se preciso, rode bin/rake sptrans:import para atualizar novamente.

Para abrir a página da linha na SPTrans, é preciso saber o código interno ("CdPjOID") atribuído à versão atual dela , o que não consta na base GTFS. Como o site da SPTrans carrega uma lista com todas as linhas ("letreiros") e códigos atuais, o importador baixa essa lista e gera as URLs no banco de dados.

API

A referência da API está no próprio site (são apenas duas chamadas), basta clicar no link "API".

Contribuindo

Existe uma lista de issues, e você pode acrescentar suas sugestões a ela. Caso resolva trabalhar em algum deles (ou em um novo que você criar), deixe um comentário no issue (para evitar que duas pessoas trabalhem na mesma coisa ao mesmo tempo), faça um fork e no final submeta um pull request.

Licença

O código-fonte está disponível sob a licença MIT. Essencialmente, o uso é livre, devendo apenas a nota de copyright ser reproduzida em cópias/trabalhos derivados.

O serviço é prestado na melhor intenção de ajudar as pessoas a se localizar, sem qualquer garantia, explícita ou implícita de funcionamento, atualização, precisão ou veracidade das informações prestadas. A fonte original são os dados disponibilizados pela SPTrans, cujo site deve ser sempre consultado para validação da informação.

About

Crawls routes from São Paulo's transportation company website and makes them available in a proximity-searchable, interactive map

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 3

  •  
  •  
  •