"Fossies" - the Fresh Open Source Software Archive  

Source code changes of the file "README.md" between
graphhopper-2.4.tar.gz and graphhopper-3.0.tar.gz

About: GraphHopper is a routing engine (mainly for OpenStreetMap) usable as Java library or server.

README.md  (graphhopper-2.4):README.md  (graphhopper-3.0)
# GraphHopper Routing Engine # GraphHopper Routing Engine
[![Build Status](https://secure.travis-ci.org/graphhopper/graphhopper.png?branch =master)](http://travis-ci.org/graphhopper/graphhopper) [![Build Status](https://secure.travis-ci.org/graphhopper/graphhopper.png?branch =master)](http://travis-ci.org/graphhopper/graphhopper)
GraphHopper is a fast and memory efficient Java routing engine, released under A pache License 2.0. GraphHopper is a fast and memory efficient Java routing engine, released under A pache License 2.0.
By default it uses OpenStreetMap and GTFS data, but it can import other data sou rces. By default it uses OpenStreetMap and GTFS data, but it can import other data sou rces.
# Community # Community
We have a prospering community and welcome everyone. Let us know your problems, use cases or just [say hello](https://discuss.graphhopper.com/). Please see our [community guidelines](https://graphhopper.com/agreements/cccoc.html). We have an open community and welcome everyone. Let us know your problems, use c ases or just [say hello](https://discuss.graphhopper.com/). Please see our [comm unity guidelines](https://graphhopper.com/agreements/cccoc.html).
## Questions ## Questions
All questions go to our [forum](https://discuss.graphhopper.com/) where we also All questions go to our [forum](https://discuss.graphhopper.com/) where we also
have subsections specially for developers, mobile usage (iOS&Android), and [our have subsections specially for developers, mobile usage, and [our map matching c
map matching component](https://github.com/graphhopper/map-matching). Another pl omponent](./map-matching). You can also search [Stackoverflow](http://stackoverf
ace to ask questions low.com/questions/tagged/graphhopper) for answers. Please do not use our issue s
is on [Stackoverflow](http://stackoverflow.com/questions/tagged/graphhopper). Do ection for questions :)
**not** use our issue section for questions.
## Contribute ## Contribute
Read through [how to contribute](CONTRIBUTING.md) for information on topics Read through [how to contribute](CONTRIBUTING.md) for information on topics
like finding and fixing bugs and improving our documentation or translations! like finding and fixing bugs and improving our documentation or translations!
We even have [good first issues](https://github.com/graphhopper/graphhopper/issu es?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22) to get started.
## Get Started ## Get Started
To get started, read through our documentation and install the GraphHopper Web S ervice locally. To get started you can try [GraphHopper Maps](README.md#graphhopper-maps), read through our documentation and install the GraphHopper Web Service locally.
* 1.0: [stable documentation](https://github.com/graphhopper/graphhopper/blob/1 * 3.x: [documentation](https://github.com/graphhopper/graphhopper/blob/3.x/docs
.0/docs/index.md), [web service jar](https://graphhopper.com/public/releases/gra /index.md), [web service jar](https://graphhopper.com/public/releases/graphhoppe
phhopper-web-1.0.jar), [Android APK](https://graphhopper.com/public/releases/gra r-web-3.0.jar), [announcement](https://www.graphhopper.com/blog/2021/05/18/graph
phhopper-android-1.0.apk), [announcement](https://www.graphhopper.com/blog/2020/ hopper-routing-engine-3-0-released/)
05/25/graphhopper-routing-engine-1-0-released/) * unstable master: [documentation](https://github.com/graphhopper/graphhopper/b
* unstable: [unstable documentation](https://github.com/graphhopper/graphhopper lob/master/docs/index.md)
/blob/master/docs/index.md), [web service jar](https://oss.sonatype.org/content/
groups/public/com/graphhopper/graphhopper-web/2.0-SNAPSHOT/) <details><summary>Click to see older releases</summary>
* 0.13.0: [stable documentation](https://github.com/graphhopper/graphhopper/blo
b/0.13/docs/index.md), [web service jar](https://graphhopper.com/public/releases * See our [changelog file](./CHANGELOG.md) for Java API Changes.
/graphhopper-web-0.13.0.jar), [Android APK](https://graphhopper.com/public/relea * 2.x: [documentation](https://github.com/graphhopper/graphhopper/blob/2.x/docs
ses/graphhopper-android-0.13.0.apk), [announcement](https://www.graphhopper.com/ /index.md), [web service jar](https://graphhopper.com/public/releases/graphhoppe
blog/2019/09/18/graphhopper-routing-engine-0-13-released/) r-web-2.4.jar), [announcement](https://www.graphhopper.com/blog/2020/09/30/graph
hopper-routing-engine-2-0-released/)
* 1.0: [documentation](https://github.com/graphhopper/graphhopper/blob/1.0/docs
/index.md), [web service jar](https://graphhopper.com/public/releases/graphhoppe
r-web-1.0.jar), [Android APK](https://graphhopper.com/public/releases/graphhoppe
r-android-1.0.apk), [announcement](https://www.graphhopper.com/blog/2020/05/25/g
raphhopper-routing-engine-1-0-released/)
* 0.13.0: [documentation](https://github.com/graphhopper/graphhopper/blob/0.13/
docs/index.md), [web service jar](https://graphhopper.com/public/releases/graphh
opper-web-0.13.0.jar), [Android APK](https://graphhopper.com/public/releases/gra
phhopper-android-0.13.0.apk), [announcement](https://www.graphhopper.com/blog/20
19/09/18/graphhopper-routing-engine-0-13-released/)
* 0.12.0: [documentation](https://github.com/graphhopper/graphhopper/blob/0.12/ docs/index.md), [web service jar](https://graphhopper.com/public/releases/graphh opper-web-0.12.0.jar), [Android APK](https://graphhopper.com/public/releases/gra phhopper-android-0.12.0.apk), [announcement](https://www.graphhopper.com/blog/20 19/03/26/graphhopper-routing-engine-0-12-released/) * 0.12.0: [documentation](https://github.com/graphhopper/graphhopper/blob/0.12/ docs/index.md), [web service jar](https://graphhopper.com/public/releases/graphh opper-web-0.12.0.jar), [Android APK](https://graphhopper.com/public/releases/gra phhopper-android-0.12.0.apk), [announcement](https://www.graphhopper.com/blog/20 19/03/26/graphhopper-routing-engine-0-12-released/)
* 0.11.0: [documentation](https://github.com/graphhopper/graphhopper/blob/0.11/ docs/index.md), [web service jar](https://graphhopper.com/public/releases/graphh opper-web-0.11.0.jar), [Android APK](https://graphhopper.com/public/releases/gra phhopper-android-0.11.0.apk), [announcement](https://www.graphhopper.com/blog/20 18/09/17/graphhopper-routing-engine-0-11-release-open-sourcing-the-isochrone-mod ule/) * 0.11.0: [documentation](https://github.com/graphhopper/graphhopper/blob/0.11/ docs/index.md), [web service jar](https://graphhopper.com/public/releases/graphh opper-web-0.11.0.jar), [Android APK](https://graphhopper.com/public/releases/gra phhopper-android-0.11.0.apk), [announcement](https://www.graphhopper.com/blog/20 18/09/17/graphhopper-routing-engine-0-11-release-open-sourcing-the-isochrone-mod ule/)
* 0.10.0: [documentation](https://github.com/graphhopper/graphhopper/blob/0.10/ docs/index.md), [web service zip](https://graphhopper.com/public/releases/graphh opper-web-0.10.3-bin.zip), [Android APK](https://graphhopper.com/public/releases /graphhopper-android-0.10.3.apk), [announcement](https://www.graphhopper.com/blo g/2018/03/08/graphhopper-routing-engine-0-10-released/) * 0.10.0: [documentation](https://github.com/graphhopper/graphhopper/blob/0.10/ docs/index.md), [web service zip](https://graphhopper.com/public/releases/graphh opper-web-0.10.3-bin.zip), [Android APK](https://graphhopper.com/public/releases /graphhopper-android-0.10.3.apk), [announcement](https://www.graphhopper.com/blo g/2018/03/08/graphhopper-routing-engine-0-10-released/)
* 0.9.0: [documentation](https://github.com/graphhopper/graphhopper/blob/0.9/do cs/index.md), [web service zip](https://graphhopper.com/public/releases/graphhop per-web-0.9.0-bin.zip), [Android APK](https://graphhopper.com/public/releases/gr aphhopper-android-0.9.0.apk), [announcement](https://www.graphhopper.com/blog/20 17/05/31/graphhopper-routing-engine-0-9-released/) * 0.9.0: [documentation](https://github.com/graphhopper/graphhopper/blob/0.9/do cs/index.md), [web service zip](https://graphhopper.com/public/releases/graphhop per-web-0.9.0-bin.zip), [Android APK](https://graphhopper.com/public/releases/gr aphhopper-android-0.9.0.apk), [announcement](https://www.graphhopper.com/blog/20 17/05/31/graphhopper-routing-engine-0-9-released/)
* 0.8.2: [documentation](https://github.com/graphhopper/graphhopper/blob/0.8/do cs/index.md), [web service zip](https://graphhopper.com/public/releases/graphhop per-web-0.8.2-bin.zip), [Android APK](https://graphhopper.com/public/releases/gr aphhopper-android-0.8.2.apk), [announcement](https://www.graphhopper.com/blog/20 16/10/18/graphhopper-routing-engine-0-8-released/) * 0.8.2: [documentation](https://github.com/graphhopper/graphhopper/blob/0.8/do cs/index.md), [web service zip](https://graphhopper.com/public/releases/graphhop per-web-0.8.2-bin.zip), [Android APK](https://graphhopper.com/public/releases/gr aphhopper-android-0.8.2.apk), [announcement](https://www.graphhopper.com/blog/20 16/10/18/graphhopper-routing-engine-0-8-released/)
* 0.7.0: [documentation](https://github.com/graphhopper/graphhopper/blob/0.7/do cs/index.md), [web service zip](https://graphhopper.com/public/releases/graphhop per-web-0.7.0-bin.zip), [Android APK](https://graphhopper.com/public/releases/gr aphhopper-android-0.7.0.apk), [announcement](https://www.graphhopper.com/blog/20 16/06/15/graphhopper-routing-engine-0-7-released/) * 0.7.0: [documentation](https://github.com/graphhopper/graphhopper/blob/0.7/do cs/index.md), [web service zip](https://graphhopper.com/public/releases/graphhop per-web-0.7.0-bin.zip), [Android APK](https://graphhopper.com/public/releases/gr aphhopper-android-0.7.0.apk), [announcement](https://www.graphhopper.com/blog/20 16/06/15/graphhopper-routing-engine-0-7-released/)
</details>
### Java API Changes ## Installation
See our [changelog file](./core/files/changelog.txt).
### Docker
Run a dockerized GraphHopper from sources: To install the [GraphHopper Maps](https://graphhopper.com/maps/) and the web ser vice locally you just do:
```bash ```bash
docker build -t graphhopper:master . # download and install a JVM that supports at least Java 8 (https://adoptopenjdk
docker run -d --name graphhopper -v <path_data_directory>/data:/data -p 8989:898 .net)
9 graphhopper:master wget https://graphhopper.com/public/releases/graphhopper-web-3.0.jar https://raw
.githubusercontent.com/graphhopper/graphhopper/stable/config-example.yml http://
download.geofabrik.de/europe/germany/berlin-latest.osm.pbf
java -Ddw.graphhopper.datareader.file=berlin-latest.osm.pbf -jar *.jar server co
nfig-example.yml
``` ```
See also the builds at [Docker Hub](https://hub.docker.com/r/graphhopper/graphho After a while you see a log message with 'Server - Started', then go to http://l
pper) ocalhost:8989/ and
you'll see a map of Berlin. You should be able to right click on the map to crea
te a route.
### DEB or RPM package For more details about the installation, see [here](./docs/web/quickstart.md).
[There is an experimental step by step guide](https://github.com/graphhopper/gra phhopper/issues/561#issuecomment-473567727) that creates a debian or rpm package from the cloned and compiled repository. Before we can recommend this we need s ome more testers and feedback :) ## GraphHopper Maps
## For the Web To see the road routing feature of GraphHopper in action please go to [GraphHopp
er Maps](https://graphhopper.com/maps).
See the road routing feature of GraphHopper in action on [GraphHopper Maps](http
s://graphhopper.com/maps) and [install it](../stable/docs/index.md) on your own
machine:
[![GraphHopper Maps](https://karussell.files.wordpress.com/2014/12/graphhopper-m aps-0-4-preview.png)](https://graphhopper.com/maps) [![GraphHopper Maps](https://karussell.files.wordpress.com/2014/12/graphhopper-m aps-0-4-preview.png)](https://graphhopper.com/maps)
GraphHopper Maps uses the [Directions API for Business](https://graphhopper.com/ GraphHopper Maps uses the commercial offering the [GraphHopper Directions API](h
#directions-api) under the hood, which provides ttps://www.graphhopper.com) under the hood, which provides the Routing API (base
a Routing API via GraphHopper, a Route Optimization API via [jsprit](http://jspr d on this routing engine), a Route Optimization API based on [jsprit](http://jsp
it.github.io/), a fast Matrix API rit.github.io/), a fast Matrix API and an address search based on [photon](https
and an address search via [Photon](https://github.com/komoot/photon). Additional ://github.com/komoot/photon). The photon project is also supported by the GraphH
ly, map tiles from various providers are used opper GmbH. Additionally to the GraphHopper Directions API, map tiles from vario
where the default is [Omniscale](http://omniscale.com/). All of these are availa us providers are used
ble for free, via encrypted connections and from German servers for a nice and p where the default is [Omniscale](http://omniscale.com/). All this is available f
rivate route planning experience! or free, via encrypted connections and from German servers for a nice and privat
e route planning experience!
## For Public Transit ## Public Transit
[Get started](./reader-gtfs/README.md#quick-start) [Get started](./reader-gtfs/README.md#quick-start)
[![Realtime Demo](https://www.graphhopper.com/wp-content/uploads/2018/05/Screen- Shot-2018-05-16-at-21.23.25-600x538.png)](./reader-gtfs/README.md#quick-start) [![Realtime Demo](https://www.graphhopper.com/wp-content/uploads/2018/05/Screen- Shot-2018-05-16-at-21.23.25-600x538.png)](./reader-gtfs/README.md#quick-start)
## For Mobile Apps ## Mobile Apps
### Offline ### Online
There are subprojects to make GraphHopper work offline on Android and [iOS](http ://github.com/graphhopper/graphhopper-ios) There is a [web service](./navigation) that can be consumed by [our navigation A ndroid client](https://github.com/graphhopper/graphhopper-navigation-example).
[![simple routing](https://www.graphhopper.com/wp-content/uploads/2016/10/androi d-demo-screenshot-2.png)](./android/README.md) [![android navigation demo app](https://raw.githubusercontent.com/graphhopper/gr aphhopper-navigation-example/master/files/graphhopper-navigation-example.png)](h ttps://github.com/graphhopper/graphhopper-navigation-example)
### Online ### Offline
There is a [server-side endpoint](./navigation) that is usable by an [online nav Offline routing is [no longer officially supported](https://github.com/graphhopp
igation Android client](https://github.com/graphhopper/graphhopper-navigation-ex er/graphhopper/issues/1940) but should still work. See
ample). [version 1.0](https://github.com/graphhopper/graphhopper/blob/1.0/docs/android/i
ndex.md) with still an Android
demo and [this pull request](http://github.com/graphhopper/graphhopper-ios) of t
he iOS fork including a demo for iOS.
[![android navigation demo app](https://raw.githubusercontent.com/graphhopper/gr aphhopper-navigation-example/master/files/graphhopper-navigation-example.png)](h ttps://github.com/graphhopper/graphhopper-navigation-example) [![simple routing](https://www.graphhopper.com/wp-content/uploads/2016/10/androi d-demo-screenshot-2.png)](./android/README.md)
## For Analysis ## Analysis
There is the isochrone subproject to calculate and visualize the reachable area for a certain travel mode Use isochrones to calculate and visualize the reachable area for a certain trave l mode
**[Isochrone Web API](../stable/docs/web/api-doc.md#isochrone)** ### [Isochrone Web API](../stable/docs/web/api-doc.md#isochrone)
[![Isochrone API image](./docs/isochrone/images/isochrone.png)](../stable/docs/w eb/api-doc.md#isochrone) [![Isochrone API image](./docs/isochrone/images/isochrone.png)](../stable/docs/w eb/api-doc.md#isochrone)
**[Shortest Path Tree API](//www.graphhopper.com/blog/2018/07/04/high-precision- reachability/)** ### [Shortest Path Tree API](//www.graphhopper.com/blog/2018/07/04/high-precisio n-reachability/)
[![high precision reachability image](https://www.graphhopper.com/wp-content/upl oads/2018/06/berlin-reachability-768x401.png)](https://www.graphhopper.com/blog/ 2018/07/04/high-precision-reachability/) [![high precision reachability image](https://www.graphhopper.com/wp-content/upl oads/2018/06/berlin-reachability-768x401.png)](https://www.graphhopper.com/blog/ 2018/07/04/high-precision-reachability/)
To support these high precision reachability approaches there is the /spt To support these high precision reachability approaches there is the /spt
endpoint (shortest path tree). [See #1577](https://github.com/graphhopper/graphh opper/pull/1577) endpoint (shortest path tree). [See #1577](https://github.com/graphhopper/graphh opper/pull/1577)
### [Map Matching](./map-matching)
There is the map matching subproject to snap GPX traces to the road.
[![map-matching-example](https://raw.githubusercontent.com/graphhopper/direction
s-api-doc/master/web/img/map-matching-example.gif)](./map-matching)
# Technical Overview # Technical Overview
GraphHopper supports several routing algorithms, such as GraphHopper supports several routing algorithms, such as
<a href="https://en.wikipedia.org/wiki/Dijkstra%27s_algorithm">Dijkstra</a> and <a href="https://en.wikipedia.org/wiki/Dijkstra%27s_algorithm">Dijkstra</a> and
<a href="https://en.wikipedia.org/wiki/A*_search_algorithm">A</a>`*` and its bid irectional variants. <a href="https://en.wikipedia.org/wiki/A*_search_algorithm">A</a>`*` and its bid irectional variants.
Furthermore, it allows you to use Furthermore, it allows you to use
<a href="https://en.wikipedia.org/wiki/Contraction_hierarchies">Contraction Hier archies</a> (CH) <a href="https://en.wikipedia.org/wiki/Contraction_hierarchies">Contraction Hier archies</a> (CH)
very easily. We call this **speed mode**; without this CH preparation, we call i t **flexible mode**. very easily. We call this **speed mode**; without this CH preparation, we call i t **flexible mode**.
The speed mode comes with very fast and lightweight (less RAM) responses, althou The speed mode comes with very fast and lightweight (less RAM) responses and it
gh it does not use heuristics does not use heuristics.
in its default settings. The downsides are that the speed mode allows only pre-d The downsides are that the speed mode allows only pre-defined vehicle profiles (
efined vehicle profiles (multiple possible in GraphHopper) multiple possible in GraphHopper)
and requires a time consuming and resource-intensive preparation. and requires a time consuming and resource-intensive preparation.
Then there is the **hybrid mode** which also requires preparation time and memor y, Then there is the **hybrid mode** which also requires preparation time and memor y,
but it is much more flexible regarding changing properties per request or e.g. i ntegrating traffic data and more. but it is much more flexible regarding changing properties per request or e.g. i ntegrating traffic data.
Furthermore, this hybrid mode is slower than the speed mode, but it is an Furthermore, this hybrid mode is slower than the speed mode, but it is an
order of magnitude faster than the flexible mode and uses also less RAM for one order of magnitude faster than the flexible mode and uses less RAM for one reque
request. st.
If the preparations exist you can switch between all modes at request time.
You can switch between all modes at request time. Read more about the technical details [here](./docs/core/technical.md).
## License ## License
We chose the Apache License to make it easy for you to embed GraphHopper in your products, even closed source. We chose the Apache License to make it easy for you to embed GraphHopper in your products, even closed source.
We suggest that you contribute back your changes, as GraphHopper evolves fast, We suggest that you contribute back your changes, as GraphHopper evolves fast,
but of course this is not necessary. but of course this is not necessary.
## OpenStreetMap Support ## OpenStreetMap Support
OpenStreetMap is directly supported by GraphHopper. Without the amazing data fro m OpenStreetMap is directly supported by GraphHopper. Without the amazing data fro m
OpenStreetMap, GraphHopper wouldn't be possible at all. OpenStreetMap, GraphHopper wouldn't be possible at all.
Other map data will need a custom import procedure, see e.g. <a href="https://gi thub.com/graphhopper/graphhopper/issues/277">Ordnance Survey</a>, Other map data will need a custom import procedure, see e.g. <a href="https://gi thub.com/graphhopper/graphhopper/issues/277">Ordnance Survey</a>,
<a href="https://github.com/graphhopper/graphhopper-reader-shp">Shapefile like E SRI</a> or <a href="https://github.com/knowname/morituri">Navteq</a>. <a href="https://github.com/graphhopper/graphhopper-reader-shp">Shapefile like E SRI</a> or <a href="https://github.com/OPTITOOL/morituri">Navteq</a>.
## Written in Java ## Written in Java
GraphHopper is written in Java and has been known to run on Linux, Mac OS X, GraphHopper is written in Java and officially runs on Linux, Mac OS X and Window
Windows, BSD, Solaris, Raspberry Pi, Android, Blackberry, and even iOS. s.
### Maven ### Maven
Embed GraphHopper with OpenStreetMap support into your Java application via the following snippet: Embed GraphHopper with OpenStreetMap support into your Java application via the following snippet:
```xml ```xml
<dependency> <dependency>
<groupId>com.graphhopper</groupId> <groupId>com.graphhopper</groupId>
<artifactId>graphhopper-reader-osm</artifactId>
<version>[LATEST-VERSION]</version>
</dependency>
```
If you want to write your own import procedure, then use:
```xml
<dependency>
<groupId>com.graphhopper</groupId>
<artifactId>graphhopper-core</artifactId> <artifactId>graphhopper-core</artifactId>
<version>[LATEST-VERSION]</version> <version>[LATEST-VERSION]</version>
</dependency> </dependency>
``` ```
See [our example application](./example/src/main/java/com/graphhopper/example/Ro
utingExample.java) to get started fast.
## Customizable ## Customizable
We've built the GraphHopper class which makes simple things easy and complex thi ngs like multi-modal routing possible. We've built the GraphHopper class which makes simple things easy and complex thi ngs like multi-modal routing possible.
Still, you can use the low level API of GraphHopper and you'll see that Still, you can use the low level API of GraphHopper and you'll see that
it was created to allow fast and memory efficient use of the underlying data str uctures and algorithms. it was created to allow fast and memory efficient use of the underlying data str uctures and algorithms.
### Web UI and API ### Web UI and API
With the web module, we provide code to query GraphHopper over HTTP and decrease bandwidth usage as much as possible. With the web module, we provide code to query GraphHopper over HTTP and decrease bandwidth usage as much as possible.
For that we use an efficient polyline encoding, the Ramer–Douglas–Peucker algori thm, and a simple For that we use an efficient polyline encoding, the Ramer–Douglas–Peucker algori thm, and a simple
skipping to change at line 195 skipping to change at line 197
Here is a list of the more detailed features: Here is a list of the more detailed features:
* Based on Java and simple start for developers via Maven. * Based on Java and simple start for developers via Maven.
* Works out of the box with OpenStreetMap (osm/xml and pbf) and can be adapted to custom data * Works out of the box with OpenStreetMap (osm/xml and pbf) and can be adapted to custom data
* OpenStreetMap integration: stores and considers road type, speed limit, the s urface, barriers, access restrictions, ferries, [conditional access restrictions ](https://github.com/graphhopper/graphhopper/pull/621), ... * OpenStreetMap integration: stores and considers road type, speed limit, the s urface, barriers, access restrictions, ferries, [conditional access restrictions ](https://github.com/graphhopper/graphhopper/pull/621), ...
* GraphHopper is fast. And with the so called "Contraction Hierarchies" it can be even faster (enabled by default). * GraphHopper is fast. And with the so called "Contraction Hierarchies" it can be even faster (enabled by default).
* Memory efficient data structures, algorithms and [the low and high level API] (../stable/docs/core/low-level-api.md) is tuned towards ease of use and efficien cy * Memory efficient data structures, algorithms and [the low and high level API] (../stable/docs/core/low-level-api.md) is tuned towards ease of use and efficien cy
* Provides a simple [web API](../stable/docs/web/api-doc.md) including JavaScri pt and Java clients * Provides a simple [web API](../stable/docs/web/api-doc.md) including JavaScri pt and Java clients
* Multiple weightings (fastest/shortest/custom/...) and pre-built routing profi les: car, bike, racing bike, mountain bike, foot, hike, motorcycle, wheelchair, ... * Multiple weightings (fastest/shortest/custom/...) and pre-built routing profi les: car, bike, racing bike, mountain bike, foot, hike, motorcycle, wheelchair, ...
* [Customization of these profiles](../stable/docs/core/profiles.md#custom-prof iles) are possible to get truck and cargo bike support or individual improvement s * [Customization of these profiles](../stable/docs/core/profiles.md#custom-prof iles) are possible to get truck and cargo bike support or individual improvement s
* Does [map matching](./map-matching)
* Supports public transit routing and [GTFS](../stable/reader-gtfs/README.md). * Supports public transit routing and [GTFS](../stable/reader-gtfs/README.md).
* Offers turn instructions in more than 42 languages, contribute or improve [he re](../stable/docs/core/translations.md) * Offers turn instructions in more than 42 languages, contribute or improve [he re](../stable/docs/core/translations.md)
* Displays and takes into account [elevation data](../stable/docs/core/elevatio n.md) * Displays and takes into account [elevation data](../stable/docs/core/elevatio n.md)
* Can apply [real time changes to edge weights](https://graphhopper.com/blog/20 15/04/08/visualize-and-handle-traffic-information-with-graphhopper-in-real-time- for-cologne-germany-koln/) (flexible and hybrid mode only) * Can apply [real time changes to edge weights](https://graphhopper.com/blog/20 15/04/08/visualize-and-handle-traffic-information-with-graphhopper-in-real-time- for-cologne-germany-koln/) (flexible and hybrid mode only)
* [Alternative routes](https://discuss.graphhopper.com/t/alternative-routes/424 ) * [Alternative routes](https://discuss.graphhopper.com/t/alternative-routes/424 )
* [Turn costs and restrictions](../stable/docs/core/turn-restrictions.md) * [Turn costs and restrictions](../stable/docs/core/turn-restrictions.md)
* Country specific routing via SpatialRules * Country specific routing via SpatialRules
* The core uses only a few dependencies (hppc, jts and slf4j) * The core uses only a few dependencies (hppc, jts, janino and slf4j)
* Scales from small indoor-sized to world-wide-sized graphs * Scales from small indoor-sized to world-wide-sized graphs
* Finds nearest point on street e.g. to get elevation or 'snap to road' or bein g used as spatial index (see [#1485](https://github.com/graphhopper/graphhopper/ pull/1485)) * Finds nearest point on street e.g. to get elevation or 'snap to road' or bein g used as spatial index (see [#1485](https://github.com/graphhopper/graphhopper/ pull/1485))
* Does [map matching](https://github.com/graphhopper/map-matching)
* Calculates isochrones and [shortest path trees](https://github.com/graphhoppe r/graphhopper/pull/1577) * Calculates isochrones and [shortest path trees](https://github.com/graphhoppe r/graphhopper/pull/1577)
* Shows the whole road network in the browser for debugging purposes ("vector t ile support") [#1572](https://github.com/graphhopper/graphhopper/pull/1572) * Shows the whole road network in the browser for debugging purposes ("vector t ile support") [#1572](https://github.com/graphhopper/graphhopper/pull/1572)
* Shows details along a route like road_class or max_speed ("path details") [#1 142](https://github.com/graphhopper/graphhopper/pull/1142) or for the whole road network via vector tiles * Shows details along a route like road_class or max_speed ("path details") [#1 142](https://github.com/graphhopper/graphhopper/pull/1142)
 End of changes. 39 change blocks. 
85 lines changed or deleted 102 lines changed or added

Home  |  About  |  Features  |  All  |  Newest  |  Dox  |  Diffs  |  RSS Feeds  |  Screenshots  |  Comments  |  Imprint  |  Privacy  |  HTTP(S)