npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@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 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.