¿cómo generar aplicaciones utilizando openstreetmap?

hace unas semanas estuve desarrollando una aplicación que toma datos de Buenos Aires Data, particularmente los datos referidos a la utilización de las bicicletas públicas, para ser claro y simple, dejo un video del funcionamiento de la aplicación:

https://www.youtube.com/watch?v=5K35pb40uaY

necesito (quiero) avanzar en una cosa más en esta aplicación, y es que:

  • quiero montarla sobre un mapa de openstreetmap y una vez hecho esto
  • indicarle a las bicicletas que tomen recorridos reales (simplemente indicarle que elija el recorrido más corto de punto a punto, ya que los datos de Buenos Aires Data indican punto de origen y punto de destino, no tienen gps las bicis).

ahora mismo el mapa es una imagen estática que fue escalada de forma que los puntos de origen y destino (que vienen en coordenadas) coincidan. sobre esta imagen no hay modo de indicarle a las partículas que representan a las bicicletas que se agarren de las lineas de calle.

la aplicación está desarrollada en java, no tengo idea cómo hacer esa interacción con el openstreetmap.
¿podrían orientarme?

muchas gracias.

Va una punta de la madeja https://wiki.openstreetmap.org/wiki/Routing#Developers