sptrans-promise v1.0.7
Sobre
O sptrans-promise é uma biblioteca Javascript (client-side e server-side) feita para facilitar o acesso a API da SPTrans que disponibiliza dados em tempo real da frota de ônibus da cidade de São Paulo.
Como utilizar
Instalação
$ npm install --save sptrans-promise
Node.js
import sptrans from 'sptrans-promise'
Browser
Você pode instalar o sptrans-promise via npm
e importar o script através do caminho:
node_modules/sptrans-promise/build/browser/sptrans-promise.min.js
. Ou se preferir pode copiar o script clicando aqui. A biblioteca estará acessível através da variável global sptrans
.
Token
A API da SPTrans exige autenticação com um token
que você pode obter ao se cadastrar pelo link: http://www.sptrans.com.br/desenvolvedores/.
Autenticação
O método auth()
recebe um token
e retorna uma Promise
com as credentials
.
import sptrans from 'sptrans-promise'
sptrans.auth('SEU_TOKEN_AQUI')
.then(console.log)
O método find()
Este é o principal método da biblioteca, você deve usá-lo para realizar buscas pelos seguintes tipos de dados:
- Linhas
- Paradas
- Paradas por linha
- Corredores
- Paradas por corredor
- Posição dos veículos
- Previsão de chegada
- Previsão da linha
- Previsão da parada
Linhas
O tipo linhas
possibilita a consulta pelas linhas de ônibus da cidade de São Paulo.
Aceita o nome da linha ou letreiro. O valor deve ser passado pelo parâmetro termosBusca
como uma string
:
import sptrans from 'sptrans-promise'
sptrans.auth('SEU_TOKEN_AQUI')
.then(encontrarLinhas)
function encontrarLinhas (auth) {
sptrans.find({
auth,
tipo: 'linhas',
termosBusca: 'Term. Lapa'
}).then(console.log)
}
Exemplo de resposta
[{
CodigoLinha: 34022,
CodigoTrajeto: 63468,
Circular: false,
Letreiro: '8004',
Sentido: 2,
Tipo: 10,
DenominacaoTPTS: 'TERM. LAPA',
DenominacaoTSTP: 'STA. MÔNICA',
Informacoes: null
}]
Para obter todas as linhas:
sptrans.find({
auth,
tipo: 'linhas',
termosBusca: '*'
}).then(console.log)
Trajeto
O tipo trajeto
retorna uma lista com a latitude e longitude de cada rua que o ônibus passa.
Aceita o código do trajeto. O valor deve ser passado pelo parâmetro codigoTrajeto
como number
:
sptrans.find({
auth,
tipo: 'trajeto',
codigoTrajeto: 63468
}).then(console.log)
Exemplo de resposta
[{
shape_id: '63468',
shape_pt_lat: '-23.516524',
shape_pt_lon: '-46.725786',
shape_pt_sequence: '81',
shape_dist_traveled: '3637.9119'
}]
Paradas
O tipo paradas
possibilita a consulta pelos pontos de parada da cidade de São Paulo.
Aceita o nome da parada ou o endereço de localização. O valor deve ser passado pelo parâmetro termosBusca
como uma string
ou um array
de strings
:
//passando string
sptrans.find({
auth,
tipo: 'paradas',
termosBusca: 'Av. Mutinga'
}).then(console.log)
//passando array
sptrans.find({
auth,
tipo: 'paradas',
termosBusca: ['Av. Mutinga', 'Av. Faria Lima', 'Av. Paulista']
}).then(console.log)
Exemplo de resposta
[{
CodigoParada: 260015039,
Nome: 'PAULISTA B/C',
Endereco: 'AV PAULISTA/ AV REBOUCAS',
Latitude: -23.555883,
Longitude: -46.66306
}]
Paradas por linha
O tipo paradasPorLinha
realiza uma busca por todos os pontos de parada atendidos por uma determinada linha.
Aceita o código da linha. O valor deve ser passado pelo parâmetro codigoLinha
como um number
ou um array
de numbers
:
//passando number
sptrans.find({
auth,
tipo: 'paradasPorLinha',
codigoLinha: 34041
}).then(console.log)
//passando array
sptrans.find({
auth,
tipo: 'paradas',
codigoLinha: [34041, 34042, 34043]
}).then(console.log)
Exemplo de resposta
[{
CodigoParada: 480014608,
Nome: 'TIBERIO C/B',
Endereco: 'R TIBERIO/ R MENFIS',
Latitude: -23.522875,
Longitude: -46.688219
}]
Corredores
O tipo corredores
realiza uma busca por todos os corredores de ônibus da cidade de São Paulo.
sptrans.find({
auth,
tipo: 'corredores'
}).then(console.log)
Exemplo de resposta
[{
CodCot: 0,
CodCorredor: 8,
Nome: 'Campo Limpo'
}]
Paradas por corredor
O tipo paradasPorCorredor
retorna a lista detalhada de todas as paradas que compõem um determinado corredor.
Aceita o código do corredor. O valor deve ser passado pelo parâmetro codigoCorredor
como um number
ou um array
de numbers
:
//passando number
sptrans.find({
auth,
tipo: 'paradasPorCorredor',
codigoCorredor: 8
}).then(console.log)
//passando array
sptrans.find({
auth,
tipo: 'paradasPorCorredor',
codigoCorredor: [8, 9]
}).then(console.log)
Exemplo de resposta
[{
CodigoParada: 120011367,
Nome: 'TRES IRMAOS C/B',
Endereco: 'R JOSE JANNARELLI/ R TRES IRMAOS',
Latitude: -23.584817,
Longitude: -46.719021
}]
Posição dos veículos
O tipo posicaoVeiculos
retorna a posição exata de cada veículo de qualquer linha de ônibus da SPTrans.
Aceita o código da linha. O valor deve ser passado pelo parâmetro codigoLinha
como um number
ou um array
de numbers
:
//passando number
sptrans.find({
auth,
tipo: 'posicaoVeiculos',
codigoLinha: 34041
}).then(console.log)
//passando array
sptrans.find({
auth,
tipo: 'posicaoVeiculos',
codigoLinha: [34041, 34042]
}).then(console.log)
Previsão de chegada
O tipo previsaoChegada
retorna a previsão de chegada de cada veículo de uma determinada linha e de um determinado ponto de parada, além da localização exata de cada veículo que constar na cadeia de previsões.
Aceita o código da parada e o código da linha. O valor deve ser passado pelos parâmetros codigoParada
e codigoLinha
como um number
:
sptrans.find({
auth,
tipo: 'previsaoChegada',
codigoParada: 260015039,
codigoLinha: 34041
}).then(console.log)
Previsão da linha
O tipo previsaoLinha
retorna uma lista com a previsão de chegada de cada um dos veículos da linha informada em todos os pontos de parada aos quais que ela atende.
Aceita o código da linha. O valor deve ser passado pelo parâmetro codigoLinha
como um number
ou um array
de numbers
:
//passando number
sptrans.find({
auth,
tipo: 'previsaoLinha',
codigoLinha: 34041
}).then(console.log)
//passando array
sptrans.find({
auth,
tipo: 'previsaoLinha',
codigoLinha: [34041, 34042]
}).then(console.log)
Previsão da parada
O tipo previsaoParada
retorna uma lista com a previsão de chegada dos veículos de cada uma das linhas que atendem ao ponto de parada informado.
Aceita o código da parada. O valor deve ser passado pelo parâmetro codigoParada
como um number
ou um array
de numbers
:
//passando number
sptrans.find({
auth,
tipo: 'previsaoParada',
codigoParada: 260015039
}).then(console.log)
//passando array
sptrans.find({
auth,
tipo: 'previsaoParada',
codigoParada: [260015039, 260015038]
}).then(console.log)
Como contribuir
Para contribuir com o projeto, clique aqui.
Changelog
Para verificar o changelog, clique aqui.
Autor
@thiagommedeiros |
---|