@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
2
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/recorridosCó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.jsPara 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 arrivalsDeparturesWithPredictivearrivalsDeparturesWithPredictivedado 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:
RecorridoObjectrecorrido.
Return
Promisecon el geoJson del recorrido.
getPlan(recorrido: Object) => Promise
Devuelve el plan del recorrido
Parámetros
- recorrido:
RecorridoObjectrecorrido.
Return
Promisecon el plan del recorrido.
removePublicLayer(layerName: String)
Remueve una capa en base a su nombre
- layerName:
Stringindicando 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:
Objectposicion del marcador- lat:
Numberlatitud - lng:
Numberlongitud
- lat:
- visible:
booleanindicando si el marcador debe estar visible - draggable:
booleanindicando si el marcador puede ser arrastrado - goTo:
booleanindicando si el mapa debe recentrarse en el marcador - activate:
booleanindicando si se debe activar el marcador - clickable:
booleanindicando si el marcador puede ser clickeado - options:
Objectdatos a guardar dentro del marcador
Return
- markerId:
Numberid del marcador generado
selectMarker(markerId: String)
Selecciona el marcador indicado
Parámetros
- markerId:
Numberid del marcador a seleccionar
selectMarker(markerId: String) => boolean
Pregunta si el marcador esta activo
Parámetros
- markerId:
Numberid del marcador a analizar
removeMarker(markerId: String)
Remueve el marcador indicado
Parámetros
- markerId:
Numberid del marcador a remover
Return
- seleccionado:
booleanindicando 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:
Objectposicion del marcador- coords:
Object- latitude:
Numberlatitud - longitude:
Numberlongitud
- latitude:
- coords:
- recenter:
booleanindicando si el mapa debe recentrarse en la posicion del marcador - zoomIn:
booleanindicando si se debe ajustar el nivel de zoom
Return
- marker:
L.markermarcador agregado
mostrarRecorrido(recorrido: Object)
Agrega un recorrido al mapa
Parámetros
- recorrido:
Objectrecorrido a ser agregado. El mismo debe seguir cierta estructura
ocultarRecorrido(recorrido: Object)
Remueve el recorrido del mapa
Parámetros
- recorrido:
Objectrecorrido a ser removido.
RecorridoObject
Objeto que representa a un recorrido. El servicio devuelve este tipo de objetos al realizar una búsqueda.
