DEPRECATED: The up-to-date documentation for valhalla can be found in the main repository.
Clone or download

README.md

valhalla-docs

This repository contains most of the documentation for the Valhalla routing project. Deeper technical information about individual components of Valhalla can be found in the individual repositories contained with the Valhalla organization. This document gives some hints on where to look for specific information.

Documentation available within the valhalla-docs repository includes:

  • Introduction - This is the early history of Valhalla. Introduces the core team and describes overall objectives of the project and some insight on why we chose the name Valhalla.
  • Terminology - Contains commonly used terms and definitions within Valhalla. Also lists the various repositories.
  • Route API Reference - The structure of API requests and responses to a Valhalla routing service is described here. This shows the JSON inputs and describes the JSON responses to form routes and directions.
  • Map Matching API Reference - The structure of API requests and responses to a Valhalla map matching service is described here. This shows the JSON inputs and describes the JSON responses to perform map-matching. There are two flavors: 1) trace_route: froms a route result from the path that matches the input geometry, and 2) trace_attributes: returns detailed attribution along the path that matches the input geometry.
  • Locate API Reference - The structure of API requests and responses to a Valhalla locate service is described here. This shows the JSON inputs and describes the JSON responses to get detailed information about streets and interesections near a location.
  • Matrix API Reference - The structure of API requests and responses to a Valhalla time distance matrix service is described here. This shows the JSON inputs and describes the JSON responses to retrieve times and distances between locations.
  • Optimized Route API Reference - The structure of API requests and responses to a Valhalla optimized route service is described here. This shows the JSON inputs and describes the JSON responses to retrieve the route which optimizes the path through the input locations. This is essentially the Traveling Salesman Problem (TSP)
  • Elevation API Reference - The structure of API requests and responses to a Valhalla elevation service is described here. This shows the JSON inputs and describes the JSON responses to query elevation at specific locations.
  • Isochrone API Reference - The structure of API requests and responses to a Valhalla isochrone service is described here. This shows the JSON inputs and describes the JSON responses to query accessibility polygons around specific locations.
  • Release Notes - Contains information about changes to the API, changes to the data import processing, new features, and general software updates of importance.
  • Add Routing to a Map - A tutorial showing how to add Valhalla routing to web based maps using the Leaflet Routing Machine with Valhalla plugins.
  • Decoding Shape - Describes how to decode the route path's shape (returned as an encoded polyline). Contains sample code in several languages.
  • Tile Description - Describes the tiling system used within Valhalla. Discusses the road hierarchy and tile numbering system.
  • Speed information - Describes the use of speed information and how OpenStreetMap tags impact speeds.

Data source listing and attribution information can be found here:

Technical descriptions available in other Valhalla repositories includes:

  • Why Tiles? - Some of the objectives and reasons for designing a tiled, routing data set are included here.
  • OSM Connectivity Map - Discusses creation of a "Connectivity Map" of OSM that uses Valhalla routing tiles to provide a first order of approximation of connectivity between locations.
  • Use of Administrative Data in Valhalla - Discusses the importance of administrative information to routing and some of the ways that Valhalla uses adminstrative information.
  • Dynamic Costing - Describes the basics of the dynamic, run-time path costing provided within the sif repository.
  • Elevation Influenced Bicycle Routing - Discusses how elevation is factored into bicycle costing to allow features such as "avoid hills".