Skip to content

Latest commit

 

History

History
102 lines (79 loc) · 2.89 KB

README.md

File metadata and controls

102 lines (79 loc) · 2.89 KB

Light STM

This project was bootstrapped with Create React Native App.

Below you'll find information about performing common tasks. The most recent version of this guide is available here.

Ideas

  • Set favorite lines/stops: Most people use 2 or 3 lines every day, they don't need to feel overwhelmed with all the other lines around them.
  • A dashboard to show all favorite stops.
    • Show lines predictions
    • Show buses positions if available
  • Can see detailed/fullscreen information for each stop
    • Can delete stop-lines from this screen
    • Track the average speed of buses? Sometimes the second bus is faster than the first one.
    • Having enough tracking information of the buses of a certain line, predict where the buses really are based on its last reported geo-position. Eg: The system could learn to predict the real position in different days of the week, it's not the same the speed of a bus on a Sunday's afternoon than the speed of the same line at Monday 6 PM.

STM MVD "lent" data

  1. Download the STM MVD APK file.
  2. Unzip the preloaded database inside:
unzip -p <path-to-apk> assets/stm.zip > stm.zip
unzip stm.zip
  1. Now you have the database stm.sqlite3 :party-parrot:

CUCTSA API

Service reference: http://mobileapps.movistar.com.uy/ibus/IBus.svc?wsdl

Montevideo STM API

Bus stop lines

Request

GET /transporteRest/variantes/{parada-id}

Response

{
  descripcion: string,
  destinos: Array<{
    destino-codigo: destino-nombre
  }>,
  variantes: Array<{
    linea-codigo: Array<destino-codigo>
  }>,
  lineas: Array<{
    linea-codigo: linea-nombre
  }>
}

Realtime - nextETA on a specific set of target locations

Request

POST /stmonlineRest/nextETA

{
  parada: parada-id,
  variante: Array<destino-codigo>
}

Response

{
  type: "FeatureCollection",
  features: Array<{
    type: "Feature",
    properties: {
      codigoBus: number,
      codigoEmpresa: number,
      variante: destino-codigo,
      eta: number,
      dist: number,
      pos: number,
    },
    geometry: {
      type: "Point",
      coordinates: Array<number>(2)
    }
  }>
}