@usig-gcba/recorridos-multimodo

0.1.0 • Public • Published

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 funciones

    • setConfig, 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 arrivalsDeparturesWithPredictive

  • arrivalsDeparturesWithPredictive 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
  • 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
  • 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.

Package Sidebar

Install

npm i @usig-gcba/recorridos-multimodo

Weekly Downloads

0

Version

0.1.0

License

USIG

Unpacked Size

1.36 MB

Total Files

39

Last publish

Collaborators

  • dgcinfo_npm
  • aanthieni
  • danieldcm