GraphHopper v5.0 Release Notes

Release Date: 2022-03-23 // 8 months ago
    • ๐Ÿ‘‰ Use routing.instructions to disable instructions on the server side. datareader.instructions is used to disable the name parsing (#2537)
    • 0๏ธโƒฃ no more explicit passByDefaultBarriers in FlagEncoders, blockByDefaultBarriers was renamed to just barriers, no more handling of highway=ford (#2538)
    • OSMReader no longer sets the artificial estimated_distance tag, but sets the edge_distance and point_list tags for all edges, the way_distance for selected ways and additionally the duration:seconds and speed_from_duration tags when the duration tag is present (#2528)
    • ๐Ÿ›  fixed speed calculation for ferry routes with duration tags (#2528)
    • request gzipping for matrix and route clients (#2511)
    • ๐Ÿ›  bugfix: client-hc now considers headings and custom models (#2009, #2535)
    • the artificial tag duration:seconds is now a long, no longer a string, commit 6d81d8ae8de52987522991edd835e42c8d2046cf
    • โž• added FlagEncoder#getName (use just like toString() before), commit 86f6a8b5209ad8ef47c24d935f5746e7694eb11c
    • faster edge-based CH preparation, especially with large u-turn costs and GermanyCountryRule (many large weight edges due to access=destination on tracks) (#2522)
    • consider subnetworks when evaluating curbside constraints (#2502)
    • ๐Ÿ‘Œ improved node-based CH performance (faster preparation and less shortcuts(=memory usage)) (#2491)
    • ๐Ÿšš the GraphHopperApplication class was moved from com.graphhopper.http to com.graphhopper.application (#2487)
    • it is now possible to add CH preparations to an existing graph folder, CH graphs no longer need to be added before GraphHopperStorage#freeze (#2481)
    • 0๏ธโƒฃ the two EncodedValue implementations accept now negative values too. The default value can now only be 0 or Double.Infinity, but this option will be removed later too, see discussion in #2473
    • throw MaximumNodesExceededException instead of a generic IllegalArgumentException (#2464)
    • โœ‚ removed graphhopper.sh script. Use java command directly instead. (#2431)
    • โœ‚ removed the ferry argument of TagParser#handleWayTags. ferry ways can be recognized using the reader way (#2467)
    • โœ‚ removed RoadEnvironment.SHUTTLE_TRAIN. this is covered by FERRY (#2466)
    • create edge flags per edge, not per way. increases custom_area precision. areas are recognized by points along the edges now -> (#2457, #2472)
    • ๐Ÿ›  fixed handling of too large mtb:scale tags (#2458)
    • โž• added Toll.MISSING; custom models must be adapted to check for explicit toll values e.g toll != NO -> toll == HGV || toll == ALL (#2164)
    • ๐Ÿ‘‰ use GraphHopper#setGraphHopperLocation before calling load() instead of GraphHopper#load(graphHopperLocation) (#2437)
    • barrier nodes at junctions are now ignored (#2433)
    • AbstractFlagEncoder#handleNodeTags was replaced by AbstractFlagEncoder#isBarrier (#2434)
    • consider heading when snapping coordinates to the road network, this is especially important for navigation (#2411)
    • OSMReader no longer sets the artificial 'estimated_center' tag and processNode also receives EMPTY_NODEs (971d686)

Previous changes from v4.0

    • faster node-based CH preparation (~20%), (#2390)
    • ๐Ÿ‘ more flexible ElevationProvider interface, support providing elevation via node tags (#2374, #23281)
    • โž• added country encoded value for all countries (#2353)
    • bike improvements (#2357, #2371, #2389)
    • ๐Ÿ‘Œ improved handling of barriers (#2345, #2340, #2406)
    • โœ‚ removed spatial rules, replaced by country rules and custom areas (#2353)
    • โœ‚ removed api module and moved it into web-api, no more Jackson MixIns (#2372)
    • flag encoders are no longer versioned (#2355)
    • JSON route response contains now bbox if start and end are identical
    • renamed PriorityCode enums: AVOID_IF_POSSIBLE -> SLIGHT_AVOID, REACH_DEST -> AVOID, AVOID_AT_ALL_COSTS -> AVOID_MORE, WORST -> BAD
    • โž• added smoothness encoded value, used to determine bike speed (#2303)
    • maps: custom_model is now included in URL (#2328)
    • maps/isochrone: works for different profiles now (#2332)
    • ๐Ÿš€ there is no stable tag anymore, either use master or one of the release branches like 2.x, 3.x, ...
    • ๐Ÿšš moved custom model editor to github.com/graphhopper/custom-model-editor
    • PointList#getSize() -> PointList#size()
    • โœ… migrated tests from junit 4 to 5 (#2324)
    • ๐Ÿ‘€ barriers do no longer block by default for car; remove block_barriers config option (see discussion in #2340)