HSL Map project

This is a collection repository for links and general documentation about all projects belonging to the Map project.

Architecture and data flow diagrams

Projects and apps

A list of all current and relevant repositories under the map project umbrella. Each repository includes more detailed documentation.

  • hsl-map-publisher - the backend component of the stop poster generator app. Also includes the poster React app and poster parts as SVG files. Also the base ofhsl-timetable-container hosted by Digitransit team

  • hsl-map-publisher-ui - the frontend component of the stop poster generator app.

  • hsl-routemap-server - a spin-off project from the stop poster project for generating route maps. This is the server component.

  • hsl-map-generator-server - the server that generates map images with HSL's map style. Used for stop posters and station maps.

  • hsl-map-generator-ui - an UI for generating static map images. Essentially a frontend for hsl-map-generator-server and hsl-routemap-server

  • hsl-map-web-ui - also known as "kuljettajaohje", it's a relatively simple map app that shows all current HSL routes.

  • hsl-route-map-poc - a simple map app that shows all HSL's routes.

  • hsl-map-site - The application redirects from a stop URL to the route planner.

  • hsl-jore-postgis a repository containing build scripts for PostgreSQL database for storing Jore data

  • jore-graphql-import - the data importer for the JORE GraphQL API. Contains the schema for the PostgreSQL database as well as SQL functions and data import logic. It runs from a Docker container that automatically downloads the newest JORE export and imports it into the jore-graphql PostgreSQL database, overwriting the previous data.

  • jore-graphql - a repository containing the Dockerfile that builds the Postgraphile-powered JORE GraphQL API from hsl-jore-postgis.

  • jore-tileserver - Jore stops and routes from hsl-jore-postgis as vector tiles.

  • hsl-map-style - the Mapbox-compatible vector style for all HSL maps. Used in most other apps.

  • hsl-map-server - Tessera server that hosts different types of tiles (vector, raster). The server is currently hosted by the Reittiopas team, and this server is responsible for hosting map tiles for all background maps used by HSL.

  • OpenMapTiles - a library for generating vector tiles from OSM data.

  • osm2vectortiles - a deprecaded library for generating vector tiles from OSM data. OpenMapTiles is going to replace this, but still used until old maps are closed.

  • tilelive-hsl-ticket-sale - serializes ticket sales vector tiles to protobufs.

  • tilelive-hsl-parkandride - - serializes park & ride places vector tiles to protobufs.

  • tilelive-otp-citybikes - serializes city bike vector tiles to protobufs.

  • tilelive-otp-stops - serializes otp stops to protobufs.

  • tilelive-gl - a fork of another project called tilelive-gl. This was used until recently in the map-generator-server, and still in hsl-map-server. The main repo is unmaintained, Mapbox-gl-native should be used directly instead.

  • tilelive-geojson - Used in hsl-map-server to create vector tiles from GeoJSON files for custom layers.

  • orthotiles Occassionally used scripts and instructions to generate new orthoimagenary for HSL.

Unreleased projects

These projects are still being worked on and are not yet ready for primetime. Some of them could be discarded and the release is unsure.

Deprecated or unused projects

This is a list of deprecated or otherwise older or unused projects that were started by the Map project.

  • jore-geometry-matcher - this should be executed after running jore-graphql-import to smoothen out the routes and match them to map geometry. Currently integrated to jore-graphql-import repository
  • pymapmatch - forked helper module used in the jore-geometry-matcher.
  • hsl-ticket-zone-map - a very simple embeddable map that shows the new ticket zones that will come into effect in 2019. Superseded by the zones showing up in the journey planner (Digitransit).
  • tile-merge-stream - helper module. Not used as far as we know.
  • map-utils - Python map utils and a stop query in Javascript. Unused as far as we know.
  • hsl-map-deployer - deprecated repository for deploying projects into dev & prod servers. Contains the docker-compose and ngnix configs. This can be used for creating local dev environment.
  • tilelive-otp-routes - serializes otp routes to protobufs.
  • hsl-map-deployer Reverse proxy and deployer for hsl-map and jore- repositories. Deprecated after environment change.

URLs and endpoints

These are the most important URL's and endpoints we use in the map project. Consult the readme of the specific project you are working on for more detailed information.

  • https://kartat.hsl.fi - this is the production server. The base url will redirect to hsl.fi, so you need to append the correct subdirectory where the app that you want to access lives.
  • https://dev.kartat.hsl.fi - this is the development server. Do not expect it or any apps running on it to be available at any time, it is used for testing things that are in active development. The base url also redirects to hsl.fi on this server, so be sure to append the subdirectory of the project that you want to access.
  • /kuljettaja - the driver instruction app, or "kuljettajaohje", lives here. Project: hsl-map-web-ui.
  • /kartta - the url for the map generator UI. Project: hsl-map-generator-ui. Requires login.
  • /map-generator/generateImage - the POST endpoint for the map generator server. Check projects that use it for usage, like generator-ui and publisher. Project: hsl-map-generator-server.
  • /linjakartta - where you can view the simple route map. Project: hsl-route-map-poc.
  • /julkaisin - this is the UI of the service that generates stop posters. Requires login.
  • /julkaisin-render - Rendering service for stop poster generation, used with julkaisin-server API Documented on Swagger
  • /jore/graphql - the graphQL endpoint for the JORE API. Contains a subset of data from the JORE database. POST only. Replace the last segment with /graphiql to access the GraphiQL documentation. Projects: jore-graphql and jore-graphql-import.