Struggling with public transport isochrones on local install


I’m trying to get a locally installed version of the isochrone api working but this is my first tango with anything Java related, so I’m struggling. I’ve tried with the unstable 0.13.0-pre12 and 0.12.0 but I’m running into different problems for both.

My problem with 0.12.0

For 0.12.0 I’m having problems as during startup, it throws the following error, even after increasing bytes_for_flags in the config file to 12.

java.lang.IllegalArgumentException: Encoders are requesting 69 bits, more than 64 bits of edge flags. (Attempt to add EncodedValue car.average_speed) Decrease the number of vehicles or increase the flags to take long via graph.bytes_for_flags: 8
        at com.graphhopper.routing.util.EncodingManager.addEncodedValue(

(Plus I wanna use the improved geojson response, once it’s done)

So I moved on to the latest release

… which is currently 0.13.0-pre12
Here I can start the API service successfully with the attached config file, but the isochrone API doesn’t seem to behave as I expect it to.

Problem 1: pt.earliest_departure_time is a required parameter

This is an error that’s thrown nicely by the API and I can quickly add the parameter, it’s just not matching the documentation of the official API. Nonetheless, I understand why it’s needed.
The following two problems hurt more than this one.

Problem 2: vehicle=pt, vehicle=car and vehicle=foot isochrones are identical

I’m using the vehicle url parameter to specify whether I want to look at public transport or other types of isochrones, but this doesn’t seem to be doing anything and I always seem to be getting the public transport isochrone.
After doing a bit of testing I realized that if a gtfs file is specified in the config file, then vehicle will default to ‘pt’ without the possibility to customize through the url.
I think it would be welcome to either:

  • separate ptisochrone and isochrone into separate endpoints (since their behaviour is quite different, incl. parameters)
  • or have a truly configurable isochrone endpoint, where the vehicle parameter works regardless whether a gtfs file is loaded.

Problem 3: No buckets for public transport

The public transport isochrone does not make use of the bucket url parameter and returns a single (multi)polygon. This is not only unexpected but it also results in extra requests on the API. I suspect the values for all buckets could be put out in a single traversal of the graph. (Unless the traversal for pt and other vehicles are fundamentally different and I’m unaware)
My specific use case will produce graduated isochrones with numerous buckets so this one really slows down my application.

Config file and data files

GTFS and OSM files will be in comments due to restrictions on new users.
Config file -

Budapest PBF -
Budapest GTFS -

Powered by Discourse