@usig-gcba/recorridos-multimodo
v0.1.0
Published
Serivicio para consultar recorridos en transporte público o bicicleta dentro de la ciudad de Buenos Aires
Downloads
4
Readme
Recorridos
Este servicio permite consultar recorridos entre dos puntos dentro de la Ciudad de Buenos Aires, ya sea en transporte publico o en bicicleta.
Instalación
npm install @usig-gcba/recorridos
Cómo usarlo
ES6
import { Recorridos } from '@usig-gcba/recorridos';
const recorridos = Recorridos.init();
¿ Cómo funciona ?
Esta applicación se puede compilar de tres maneras
npm run build // Producción
npm run dev // Desarrollo, se cargan las devDependencies de package.json
npm run test // Test, estos se hallan en test/library.spec.js
Para su compilación se utiliza webpack, dando como entrada a index.js quien importa las funciones principales
Planner
, retorna tres funcionessetConfig
, permite configurar los parámetros de busqueda sobre los modos (transit, bus, walk, subway, rail) y la distancia máxima que se está dispuesto a caminar.getConfig
, retorna la configuración de busqueda.getRoutes
, a través de getPlan llama a la Api de OTP http://otp.eastus2.cloudapp.azure.com y devuelve un json con todos los posibles recorridos para llegar desde un lugar a otro. (Dentro del json se encuentran en plan.itineraries)
getGeoJson
, dado un itinerario en formato json obtenido desde getRoutes devuelve el mismo convertido a geoJson, esto es útil para poder añadir layers a mapbox. Para lograrlo se mapea cada uno de los pasos del recorrido (legs) y se agregan las properties correspondientes luego a travez de la libreria @mapbox/polyline se decodifican las coordenadas para poder convertirlas al formato de Lat y Long requeridos por mapbox.getArrivalsDepartures
, dado el id de una parada de colectivo, se consume desde la Api https://apitransporte.buenosaires.gob.ar un array con información sobre cada colectivo que pase por dicha parada. De esta información la más destacable es el tiempo en que llegará el siguiente colectivo, según el cronograma de horarios, y si esta linea cuenta con un servicio predictivo de horarios, el cual es útil para poder usar arrivalsDeparturesWithPredictivearrivalsDeparturesWithPredictive
dado el id de una parada de colectivo, y opcionalmente también un filtro de lineas, retorna un array con información en tiempo real sobre el estado de dichas lineas y de forma mucho más precisa cuanto tardará en llegar a la parada. Esta función sólo es útil para las lineas que posean el servicio predictivo de horarios.
Si se requiere agregar un nuevo módulo debe hacerse a traves de la configuración del webpack
API
Recorridos
init(opciones?: Object) => Recorridos
- opciones: objecto de configuracion con cualquiera de las siguientes propiedades:
| Opcion | Tipo | Default | Descripcion |
| ----------------------------- | :-------: | :----------: | :------------------------------ |
| tipo | String | transporte
| Idioma de los mensajes del mapa |
| precargar | Number | 5
| Idioma de los mensajes del mapa |
| opciones_caminata | Number | 800
| Idioma de los mensajes del mapa |
| opciones_medios_colectivo | boolean | true
| Idioma de los mensajes del mapa |
| opciones_medios_subte | boolean | true
| Idioma de los mensajes del mapa |
| opciones_medios_tren | boolean | true
| Idioma de los mensajes del mapa |
| max_results | Number | 15
| Idioma de los mensajes del mapa |
buscarRecorridos(origen: Object, destino: Object, id: String, options: Object) => Promise<Array[RecorridoObject]>
Dadas dos ubicaciones origen/destino y ciertas opciones de busqueda consulta los recorridos posibles.
Recorrido
getGeoJson(recorrido: RecorridoObject) => Promise
Devuelve la representacion del recorrido en formato geoJson
Parámetros
- recorrido:
RecorridoObject
recorrido.
Return
Promise
con el geoJson del recorrido.
getPlan(recorrido: Object) => Promise
Devuelve el plan del recorrido
Parámetros
- recorrido:
RecorridoObject
recorrido.
Return
Promise
con el plan del recorrido.
removePublicLayer(layerName: String)
Remueve una capa en base a su nombre
- layerName:
String
indicando el nombre de la capa
addMarker(latlng: Object, visible: boolean, draggable: boolean, goTo: boolean, activate: boolean, clickable: boolean, options: Object) => markerId: Number
Agrega un marcador en la posicion especificada, retornando su id
Parámetros
- latlng:
Object
posicion del marcador- lat:
Number
latitud - lng:
Number
longitud
- lat:
- visible:
boolean
indicando si el marcador debe estar visible - draggable:
boolean
indicando si el marcador puede ser arrastrado - goTo:
boolean
indicando si el mapa debe recentrarse en el marcador - activate:
boolean
indicando si se debe activar el marcador - clickable:
boolean
indicando si el marcador puede ser clickeado - options:
Object
datos a guardar dentro del marcador
Return
- markerId:
Number
id del marcador generado
selectMarker(markerId: String)
Selecciona el marcador indicado
Parámetros
- markerId:
Number
id del marcador a seleccionar
selectMarker(markerId: String) => boolean
Pregunta si el marcador esta activo
Parámetros
- markerId:
Number
id del marcador a analizar
removeMarker(markerId: String)
Remueve el marcador indicado
Parámetros
- markerId:
Number
id del marcador a remover
Return
- seleccionado:
boolean
indicando si el marcador esta seleccionado
addLocationMarker(position: Object, recenter: boolean, zoomIn: boolean) => L.Marker
Agrega al mapa un marcador de ubicación actual en la posicion especificada
Parámetros
- position:
Object
posicion del marcador- coords:
Object
- latitude:
Number
latitud - longitude:
Number
longitud
- latitude:
- coords:
- recenter:
boolean
indicando si el mapa debe recentrarse en la posicion del marcador - zoomIn:
boolean
indicando si se debe ajustar el nivel de zoom
Return
- marker:
L.marker
marcador agregado
mostrarRecorrido(recorrido: Object)
Agrega un recorrido al mapa
Parámetros
- recorrido:
Object
recorrido a ser agregado. El mismo debe seguir cierta estructura
ocultarRecorrido(recorrido: Object)
Remueve el recorrido del mapa
Parámetros
- recorrido:
Object
recorrido a ser removido.
RecorridoObject
Objeto que representa a un recorrido. El servicio devuelve este tipo de objetos al realizar una búsqueda.