• Stars
    star
    107
  • Rank 323,587 (Top 7 %)
  • Language
    JavaScript
  • Created almost 10 years ago
  • Updated 2 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

JavaScript client for the GraphHopper Directions API

JavaScript client for the Directions API

Build Status

This project offers JavaScript clients and examples for the GraphHopper Directions API.

Try the live examples here.

Also see how we integrated the Routing and the Geocoding API to build a fully featured maps application called GraphHopper Maps

Getting Started

NPM

Install the lib with npm:

npm install graphhopper-js-api-client --save

You can either require the whole client enabling you to use every GraphHopper API, but you can also only require the pieces you need.

require('graphhopper-js-api-client');
 
window.onload = function() {
  let defaultKey = "[Sign-up for free and get your own key: https://www.graphhopper.com/products/]";
  let ghRouting = new GraphHopper.Routing({key: defaultKey}, {profile:"car", elevation: false});

  ghRouting.doRequest({points:[[8.534317, 47.400905], [8.538265, 47.394108]]})
    .then(function(json){
       // Add your own result handling here
       console.log(json);
    })
    .catch(function(err){
       console.error(err.message);
    });
};

Running Tests

In order to run the tests, you have to register for a key on GraphHopper. Either set your key as environment variable using export GHKEY=YOUR_KEY or set your key in spec/helpers/config.js. You can run all tests via npm test. If you only want to run a single spec file, you can use the --spec option, e.g., npm test --spec spec/GraphHopperRoutingSpec.js.

Dependencies

The API depends on superagent and bluebird which are packaged into the graphhopper-client.js.

The demo uses a couple of dependencies, but they are not required for requests to the API.

Integrate the APIs in your application

You can either use our bundled version, including all APIs or you can use only the pieces you need.

GraphHopper Routing API

GraphHopper Routing API screenshot

You need the routing client.

There is also a different client developed from the community here.

GraphHopper Route Optimization API

Route Optimization API screenshot

You need the optimization client.

GraphHopper Isochrone API

GraphHopper Isochrone API screenshot

You need the isochrone client

GraphHopper Matrix API

GraphHopper Matrix API screenshot

You need the matrix client.

GraphHopper Geocoding API

GraphHopper Geocoding API screenshot

You need the geocoding client.

GraphHopper Map Matching API

GraphHopper Map Matching API screenshot

You need the map matching client and the togeojson.js

Releasing a new Version to NPM

Releasing a new version to NPM is easy.

Set the version you like to publish in the package.json. It's important to understand, that every version can only be published once and cannot be overwritten.

Tag the commit you like to publish for example like this:

git log # get the commit hash of the commit you want to tag
git tag <tag> <commit-hash>
git push origin --tags

Travis will then build and publish the commit to NPM.

License

Code stands under Apache License 2.0

More Repositories

1

graphhopper

Open source routing engine for OpenStreetMap. Use it as Java library or standalone web server.
Java
5,059
star
2

jsprit

jsprit is a java based, open source toolkit for solving rich vehicle routing problems
Java
1,625
star
3

map-matching

The map matching functionality is now located in the main repository https://github.com/graphhopper/graphhopper#map-matching
Java
785
star
4

open-traffic-collection

Collection of open data resources for traffic information
395
star
5

graphhopper-navigation-example-legacy

GraphHopper Navigation as App
Java
93
star
6

graphhopper-maps

GraphHopper Maps - Open Source Route Planner UI
TypeScript
92
star
7

graphhopper-ios

iOS Port of the GraphHopper road routing engine
Objective-C
68
star
8

directions-api

Issues for the GraphHopper Directions API
60
star
9

directions-api-clients

API clients for various languages for the GraphHopper Directions API
C#
30
star
10

graphhopper-navigation

Provides a GraphHopper web service for navigation apps
Java
27
star
11

directions-api-java-client

Deprecated Repo for the Java and Android client for the GraphHopper Directions API
Java
27
star
12

timezone

Timezone project providing a simple way to turn location and unix timestamp into timezone and local time.
Java
24
star
13

graphhopper-navigation-example

GraphHopper Navigation Example using the Maplibre Android SDK
Kotlin
19
star
14

graphhopper-reader-shp

Read shapefiles e.g. from ESRI into GraphHopper
Java
11
star
15

jackson-datatype-jts

Jackson serializers for JTS Geometry objects
Java
11
star
16

geocoder-converter

Converts arbitrary geocoding responses to a GraphHopper response
Java
9
star
17

isochrone-experiments

Some experiments with isochrones
JavaScript
7
star
18

vehicle-charging-station-example

This example uses the GraphHopper Matrix API to pick a charging station for the overall fastest detour
JavaScript
5
star
19

custom-model-editor

Interactive text editor for creating GraphHopper's custom models
JavaScript
2
star
20

graphhopper-experiments

[deprecated] Experiments with lucene, neo4j and road routing via GraphHopper
Java
2
star
21

cheerpj-demo

GraphHopper running in the browser via CheerpยฎJ
JavaScript
1
star