github valhalla/valhalla 3.1.0

latest releases: 3.4.0, test_tag, 3.3.0...
3 years ago

Release Date: 2021-01-25 Valhalla 3.1.0

  • Removed

    • REMOVED: Remove Node bindings. #2502
    • REMOVED: appveyor builds. #2550
    • REMOVED: Removed x86 CI builds. #2792
  • Bug Fix

    • FIXED: Crazy ETAs. If a way has forward speed with no backward speed and it is not oneway, then we must set the default speed. The reverse logic applies as well. If a way has no backward speed but has a forward speed and it is not a oneway, then set the default speed. #2102
    • FIXED: Map matching elapsed times spliced amongst different legs and discontinuities are now correct #2104
    • FIXED: Date time information is now propogated amongst different legs and discontinuities #2107
    • FIXED: Adds support for geos-3.8 c++ api #2021
    • FIXED: Updated the osrm serializer to not set junction name for osrm origin/start maneuver - this is not helpful since we are not transitioning through the intersection. #2121
    • FIXED: Removes precomputing of edge-costs which lead to wrong results #2120
    • FIXED: Complex turn-restriction invalidates edge marked as kPermanent #2103
    • FIXED: Fixes bug with inverted time-restriction parsing #2167
    • FIXED: Fixed several bugs with numeric underflow in map-matching trip durations. These may
      occur when serializing match results where adjacent trace points appear out-of-sequence on the
      same edge #2178
      • MapMatcher::FormPath now catches route discontinuities on the same edge when the distance
        percentage along don't agree. The trip leg builder builds disconnected legs on a single edge
        to avoid duration underflow.
      • Correctly populate edge groups when matching results contain loops. When a loop occurs,
        the leg builder now starts at the correct edge where the loop ends, and correctly accounts
        for any contained edges.
      • Duration over-trimming at the terminating edge of a match.
    • FIXED: Increased internal precision of time tracking per edge and maneuver so that maneuver times sum to the same time represented in the leg summary #2195
    • FIXED: Tagged speeds were not properly marked. We were not using forward and backward speeds to flag if a speed is tagged or not. Should not update turn channel speeds if we are not inferring them. Added additional logic to handle PH in the conditional restrictions. Do not update stop impact for ramps if they are marked as internal. #2198
    • FIXED: Fixed the sharp turn phrase #2226
    • FIXED: Protect against duplicate points in the input or points that snap to the same location resulting in nan times for the legs of the map match (of a 0 distance route) #2229
    • FIXED: Improves restriction check on briding edge in Bidirectional Astar #2228
    • FIXED: Allow nodes at location 0,0 #2245
    • FIXED: Fix RapidJSON compiler warnings and naming conflict #2249
    • FIXED: Fixed bug in resample_spherical_polyline where duplicate successive lat,lng locations in the polyline resulting in nan for the distance computation which shortcuts further sampling #2239
    • FIXED: Update exit logic for non-motorways #2252
    • FIXED: Transition point map-matching. When match results are on a transition point, we search for the sibling nodes at that transition and snap it to the corresponding edges in the route. #2258
    • FIXED: Fixed verbal multi-cue logic #2270
    • FIXED: Fixed Uturn cases when a not_thru edge is connected to the origin edge. #2272
    • FIXED: Update intersection classes in osrm response to not label all ramps as motorway #2279
    • FIXED: Fixed bug in mapmatcher when interpolation point goes before the first valid match or after the last valid match. Such behavior usually leads to discontinuity in matching. #2275
    • FIXED: Fixed an issue for time_allowed logic. Previously we returned false on the first time allowed restriction and did not check them all. Added conditional restriction gurka test and datetime optional argument to gurka header file. #2286
    • FIXED: Fixed an issue for date ranges. For example, for the range Jan 04 to Jan 02 we need to test to end of the year and then from the first of the year to the end date. Also, fixed an emergency tag issue. We should only set the use to emergency if all other access is off. #2290
    • FIXED: Found a few issues with the initial ref and direction logic for ways. We were overwriting the refs with directionals to the name_offset_map instead of concatenating them together. Also, we did not allow for blank entries for GetTagTokens. #2298
    • FIXED: Fixed an issue where MatchGuidanceViewJunctions is only looking at the first edge. Set the data_id for guidance views to the changeset id as it is already being populated. Also added test for guidance views. #2303
    • FIXED: Fixed a problem with live speeds where live speeds were being used to determine access, even when a live
      speed (current time) route wasn't what was requested. #2311
    • FIXED: Fix break/continue typo in search filtering #2317
    • FIXED: Fix a crash in trace_route due to iterating past the end of a vector. #2322
    • FIXED: Don't allow timezone information in the local date time string attached at each location. #2312
    • FIXED: Fix short route trimming in bidirectional astar #2323
    • FIXED: Fix shape trimming in leg building for snap candidates that lie within the margin of rounding error #2326
    • FIXED: Fixes route duration underflow with traffic data #2325
    • FIXED: Parse mtb:scale tags and set bicycle access if present #2117
    • FIXED: Fixed segfault. Shape was missing from options for valhalla_path_comparison and valhalla_run_route. Also, costing options was missing in valhalla_path_comparison. #2343
    • FIXED: Handle decimal numbers with zero-value mantissa properly in Lua #2355
    • FIXED: Many issues that resulted in discontinuities, failed matches or incorrect time/duration for map matching requests. #2292
    • FIXED: Seeing segfault when loading large osmdata data files before loading LuaJit. LuaJit fails to create luaL_newstate() Ref: #2158 Resolution is to load LuaJit before loading the data files. #2383
    • FIXED: Store positive/negative OpenLR offsets in bucketed form #2405
    • FIXED: Fix on map-matching return code when breakage distance limitation exceeds. Instead of letting the request goes into meili and fails in finding a route, we check the distance in loki and early return with exception code 172. #2406
    • FIXED: Don't create edges for portions of ways that are doubled back on themselves as this confuses opposing edge index computations #2385
    • FIXED: Protect against nan in uniform_resample_spherical_polyline. #2431
    • FIXED: Obvious maneuvers. #2436
    • FIXED: Base64 encoding/decoding #2452
    • FIXED: Added post roundabout instruction when enter/exit roundabout maneuvers are combined #2454
    • FIXED: openlr: Explicitly check for linear reference option for Valhalla serialization. #2458
    • FIXED: Fix segfault: Do not combine last turn channel maneuver. #2463
    • FIXED: Remove extraneous whitespaces from ja-JP.json. #2471
    • FIXED: Checks protobuf serialization/parsing success #2477
    • FIXED: Fix dereferencing of end for std::lower_bound in sequence and possible UB #2488
    • FIXED: Make tile building reproducible: fix UB-s #2480
    • FIXED: Zero initialize EdgeInfoInner.spare0_. Uninitialized spare0_ field produced UB which causes gurka_reproduce_tile_build to fail intermittently. 2499
    • FIXED: Drop unused CHANGELOG validation script, straggling NodeJS references #2506
    • FIXED: Fix missing nullptr checks in graphreader and loki::Reach (causing segfault during routing with not all levels of tiles availble) #2504
    • FIXED: Fix mismatch of triplegedge roadclass and directededge roadclass #2507
    • FIXED: Improve german destination_verbal_alert phrases #2509
    • FIXED: Undefined behavior cases discovered with undefined behavior sanitizer tool. 2498
    • FIXED: Fixed logic so verbal keep instructions use branch exit sign info for ramps #2520
    • FIXED: Fix bug in trace_route for uturns causing garbage coordinates #2517
    • FIXED: Simplify heading calculation for turn type. Remove undefined behavior case. #2513
    • FIXED: Always set costing name even if one is not provided for osrm serializer weight_name. #2528
    • FIXED: Make single-thread tile building reproducible: fix seed for shuffle, use concurrency configuration from the mjolnir section. #2515
    • FIXED: More Windows compatibility: build tiles and some run actions work now (including CI tests) #2300
    • FIXED: Transcoding of c++ location to pbf location used path edges in the place of filtered edges. #2542
    • FIXED: Add back whitelisting action types. #2545
    • FIXED: Allow uturns for truck costing now that we have derived deadends marked in the edge label #2559
    • FIXED: Map matching uturn trimming at the end of an edge where it wasn't needed. #2558
    • FIXED: Multicue enter roundabout #2556
    • FIXED: Changed reachability computation to take into account live speed #2597
    • FIXED: Fixed a bug where the temp files were not getting read in if you started with the construct edges or build phase for valhalla_build_tiles. #2601
    • FIXED: Updated fr-FR.json with partial translations. #2605
    • FIXED: Removed superfluous const qualifier from odin/signs #2609
    • FIXED: Internal maneuver placement #2600
    • FIXED: Complete fr-FR.json locale. #2614
    • FIXED: Don't truncate precision in polyline encoding #2632
    • FIXED: Fix all compiler warnings in sif and set to -Werror #2642
    • FIXED: Remove unnecessary maneuvers to continue straight #2647
    • FIXED: Linear reference support in route/mapmatch apis (FOW, FRC, bearing, and number of references) #2645
    • FIXED: Ambiguous local to global (with timezone information) date time conversions now all choose to use the later time instead of throwing unhandled exceptions #2665
    • FIXED: Overestimated reach caused be reenquing transition nodes without checking that they had been already expanded #2670
    • FIXED: Build with C++17 standard. Deprecated function calls are substituted with new ones. #2669
    • FIXED: Improve German post_transition_verbal instruction #2677
    • FIXED: Lane updates. Add the turn lanes to all edges of the way. Do not "enhance" turn lanes if they are part of a complex restriction. Moved ProcessTurnLanes after UpdateManeuverPlacementForInternalIntersectionTurns. Fix for a missing "uturn" indication for intersections on the previous maneuver, we were serializing an empty list. #2679
    • FIXED: Fixes OpenLr serialization #2688
    • FIXED: Internal edges can't be also a ramp or a turn channel. Also, if an edge is marked as ramp and turn channel mark it as a ramp. 2689
    • FIXED: Check that speeds are equal for the edges going in the same direction while buildig shortcuts #2691
    • FIXED: Missing fork or bear instruction #2683
    • FIXED: Eliminate null pointer dereference in GraphReader::AreEdgesConnected #2695
    • FIXED: Fix polyline simplification float/double comparison #2698
    • FIXED: Weights were sometimes negative due to incorrect updates to elapsed_cost #2702
    • FIXED: Fix bidirectional route failures at deadends #2705
    • FIXED: Updated logic to call out a non-obvious turn #2708
    • FIXED: valhalla_build_statistics multithreaded mode fixed #2707
    • FIXED: If infer_internal_intersections is true then allow internals that are also ramps or TCs. Without this we produce an extra continue manuever. #2710
    • FIXED: We were routing down roads that should be destination only. Now we mark roads with motor_vehicle=destination and motor_vehicle=customers or access=destination and access=customers as destination only. #2722
    • FIXED: Replace all Python2 print statements with Python3 syntax #2716
    • FIXED: Some HGT files not found #2723
    • FIXED: Fix PencilPointUturn detection by removing short-edge check and updating angle threshold #2725
    • FIXED: Fix invalid continue/bear maneuvers #2729
    • FIXED: Fixes an issue that lead to double turns within a very short distance, when instead, it should be a u-turn. We now collapse double L turns or double R turns in short non-internal intersections to u-turns. #2740
    • FIXED: fixes an issue that lead to adding an extra maneuver. We now combine a current maneuver short length non-internal edges (left or right) with the next maneuver that is a kRampStraight. #2741
    • FIXED: Reduce verbose instructions by collapsing small end ramp forks #2762
    • FIXED: Remove redundant return statements #2776
    • FIXED: Add support for geos-3.9 c++ api #2739
    • FIXED: Fix check for live speed validness #2797
  • Enhancement

    • ADDED: Matrix of Bike Share #2590
    • ADDED: Add ability to provide custom implementation for candidate collection in CandidateQuery. #2328
    • ADDED: Cancellation of tile downloading. #2319
    • ADDED: Return the coordinates of the nodes isochrone input locations snapped to #2111
    • ADDED: Allows more complicated routes in timedependent a-star before timing out #2068
    • ADDED: Guide signs and junction names #2096
    • ADDED: Added a bool to the config indicating whether to use commercially set attributes. Added logic to not call IsIntersectionInternal if this is a commercial data set. #2132
    • ADDED: Removed commerical data set bool to the config and added more knobs for data. Added infer_internal_intersections, infer_turn_channels, apply_country_overrides, and use_admin_db. #2173
    • ADDED: Allow using googletest in unit tests and convert all tests to it (old test.cc is completely removed). #2128
    • ADDED: Add guidance view capability. #2209
    • ADDED: Collect turn cost information as path is formed so that it can be seralized out for trace attributes or osrm flavored intersections. Also add shape_index to osrm intersections. #2207
    • ADDED: Added alley factor to autocost. Factor is defaulted at 1.0f or do not avoid alleys. #2246
    • ADDED: Support unlimited speed limits where maxspeed=none. #2251
    • ADDED: Implement improved Reachability check using base class Dijkstra. #2243
    • ADDED: Gurka integration test framework with ascii-art maps #2244
    • ADDED: Add to the stop impact when transitioning from higher to lower class road and we are not on a turn channel or ramp. Also, penalize lefts when driving on the right and vice versa. #2282
    • ADDED: Added reclassify_links, use_direction_on_ways, and allow_alt_name as config options. If use_direction_on_ways = true then use direction and int_direction on the way to update the directional for the ref and int_ref. Also, copy int_efs to the refs. #2285
    • ADDED: Add support for live traffic. #2268
    • ADDED: Implement per-location search filters for functional road class and forms of way. #2289
    • ADDED: Approach, multi-cue, and length updates #2313
    • ADDED: Speed up timezone differencing calculation if cache is provided. #2316
    • ADDED: Added rapidjson/schema.h to baldr/rapidjson_util.h to make it available for use within valhalla. #2330
    • ADDED: Support decimal precision for height values in elevation service. Also support polyline5 for encoded polylines input and output to elevation service. #2324
    • ADDED: Use both imminent and distant verbal multi-cue phrases. #2353
    • ADDED: Split parsing stage into 3 separate stages. #2339
    • CHANGED: Speed up graph enhancing by avoiding continuous unordered_set rebuilding #2349
    • CHANGED: Skip calling out to Lua for nodes/ways/relations with not tags - speeds up parsing. #2351
    • CHANGED: Switch to LuaJIT for lua scripting - speeds up file parsing #2352
    • ADDED: Ability to create OpenLR records from raw data. #2356
    • ADDED: Revamp length phrases #2359
    • CHANGED: Do not allocate memory in skadi if we don't need it. #2373
    • CHANGED: Map matching: throw error (443/NoSegment) when no candidate edges are available. #2370
    • ADDED: Add sk-SK.json (slovak) localization file. #2376
    • ADDED: Extend roundabout phrases. #2378
    • ADDED: More roundabout phrase tests. #2382
    • ADDED: Update the turn and continue phrases to include junction names and guide signs. #2386
    • ADDED: Add the remaining guide sign toward phrases #2389
    • ADDED: The ability to allow immediate uturns at trace points in a map matching request #2380
    • ADDED: Add utility functions to Signs. #2390
    • ADDED: Unified time tracking for all algorithms that support time-based graph expansion. #2278
    • ADDED: Add rail_ferry use and costing. #2408
    • ADDED: street_side_max_distance, display_lat and display_lon to locations in input for better control of routing side of street #1769
    • ADDED: Add addtional exit phrases. #2421
    • ADDED: Add Japanese locale, update German. #2432
    • ADDED: Gurka expect_route refactor #2435
    • ADDED: Add option to suppress roundabout exits #2437
    • ADDED: Add Greek locale. #2438
    • ADDED (back): Support for 64bit wide way ids in the edgeinfo structure with no impact to size for data sources with ids 32bits wide. #2422
    • ADDED: Support for 64bit osm node ids in parsing stage of tile building #2422
    • CHANGED: Point2/PointLL are now templated to allow for higher precision coordinate math when desired #2429
    • ADDED: Optional OpenLR Encoded Path Edges in API Response #2424
    • ADDED: Add explicit include for sstream to be compatible with msvc_x64 toolset. #2449
    • ADDED: Properly split returned path if traffic conditions change partway along edges #2451
    • ADDED: Add Dutch locale. #2464
    • ADDED: Check with address sanititizer in CI. Add support for undefined behavior sanitizer. #2487
    • ADDED: Ability to recost a path and increased cost/time details along the trippath and json output #2425
    • ADDED: Add the ability to do bikeshare based (ped/bike) multimodal routing #2031
    • ADDED: Route through restrictions enabled by introducing a costing option. #2469
    • ADDED: Migrated to Ubuntu 20.04 base-image #2508
    • CHANGED: Speed up parseways stage by avoiding multiple string comparisons #2518
    • CHANGED: Speed up enhance stage by avoiding GraphTileBuilder copying #2468
    • ADDED: Costing options now includes shortest flag which favors shortest path routes #2555
    • ADDED: Incidents in intersections #2547
    • CHANGED: Refactor mapmatching configuration to use a struct (instead of boost::property_tree::ptree). #2485
    • ADDED: Save exit maneuver's begin heading when combining enter & exit roundabout maneuvers. #2554
    • ADDED: Added new urban flag that can be set if edge is within city boundaries to data processing; new use_urban_tag config option; added to osrm response within intersections. #2522
    • ADDED: Parses OpenLr of type PointAlongLine #2565
    • ADDED: Use edge.is_urban is set for serializing is_urban. #2568
    • ADDED: Added new rest/service area uses on the edge. #2533
    • ADDED: Dependency cache for Azure #2567
    • ADDED: Added flexibility to remove the use of the admindb and to use the country and state iso from the tiles; #2579
    • ADDED: Added toll gates and collection points (gantry) to the node; #2532
    • ADDED: Added osrm serialization for rest/service areas and admins. #2594
    • CHANGED: Improved Russian localization; #2593
    • ADDED: Support restricted class in intersection annotations #2589
    • ADDED: Added trail type trace #2606
    • ADDED: Added tunnel names to the edges as a tagged name. #2608
    • CHANGED: Moved incidents to the trip leg and cut the shape of the leg at that location #2610
    • ADDED: Costing option to ignore_closures when routing with current flow #2615
    • ADDED: Cross-compilation ability with MinGW64 #2619
    • ADDED: Defines the incident tile schema and incident metadata #2620
    • ADDED: Moves incident serializer logic into a generic serializer #2621
    • ADDED: Incident loading singleton for continually refreshing incident tiles#2573
    • ADDED: One shot mode to valhalla_service so you can run a single request of any type without starting a server #2624
    • ADDED: Adds text instructions to OSRM output #2625
    • ADDED: Adds support for alternate routes #2626
    • CHANGED: Switch Python bindings generator from boost.python to header-only pybind11#2644
    • ADDED: Add support of input file for one-shot mode of valhalla_service #2648
    • ADDED: Linear reference support to locate api #2645
    • ADDED: Implemented OSRM-like turn duration calculation for car. Uses it now in auto costing. #2651
    • ADDED: Enhanced turn lane information in guidance #2653
    • ADDED: top_speed option for all motorized vehicles #2667
    • CHANGED: Move turn_lane_direction helper to odin/util #2675
    • ADDED: Add annotations to osrm response including speed limits, unit and sign conventions #2668
    • ADDED: Added functions for predicted speeds encoding-decoding #2674
    • ADDED: Time invariant routing via the bidirectional algorithm. This has the effect that when time dependent routes (arrive_by and depart_at) fall back to bidirectional due to length restrictions they will actually use the correct time of day for one of the search directions #2660
    • ADDED: If the length of the edge is greater than kMaxEdgeLength, then consider this a catastrophic error if the should_error bool is true in the set_length function. 2678
    • ADDED: Moved lat,lon coordinates structures from single to double precision. Improves geometry accuracy noticibly at zooms above 17 as well as coordinate snapping and any other geometric operations. Addes about a 2% performance pentalty for standard routes. Graph nodes now have 7 digits of precision. #2693
    • ADDED: Added signboards to guidance views. #2687
    • ADDED: Regular speed on shortcut edges is calculated with turn durations taken into account. Truck, motorcycle and motorscooter profiles use OSRM-like turn duration. #2662
    • CHANGED: Remove astar algorithm and replace its use with timedep_forward as its redundant #2706
    • ADDED: Recover and recost all shortcuts in final path for bidirectional astar algorithm #2711
    • ADDED: An option for shortcut recovery to be cached at start up to reduce the time it takes to do so on the fly #2714
    • ADDED: If width <= 1.9 then no access for auto, truck, bus, taxi, emergency and hov. #2713
    • ADDED: Centroid/Converge/Rendezvous/Meet API which allows input locations to find a least cost convergence point from all locations #2713
    • ADDED: Added support to process the sump_buster tag. Also, fixed a few small access bugs for nodes. #2731
    • ADDED: Log message if failed to create tiles directory. #2738
    • CHANGED: Tile memory is only owned by the GraphTile rather than shared amongst copies of the graph tile (in GraphReader and TileCaches). #2340
    • ADDED: Add Estonian locale. #2748
    • CHANGED: Handle GraphTile objects as smart pointers #2703
    • CHANGED: Improve stability with no RTTI build #2759 and #2760
    • CHANGED: Change generic service roads to a new Use=kServiceRoad. This is for highway=service without other service= tags (such as driveway, alley, parking aisle) #2419
    • ADDED: Isochrones support isodistance lines as well #2699
    • ADDED: Add support for ignoring live traffic closures for waypoints #2685
    • ADDED: Add use_distance to auto cost to allow choosing between two primary cost components, time or distance #2771
    • CHANGED: nit: Enables compiler warnings in part of loki module #2767
    • CHANGED: Reducing the number of uturns by increasing the cost to for them to 9.5f. Note: Did not increase the cost for motorcycles or motorscooters. #2770
    • ADDED: Add option to use thread-safe GraphTile's reference counter. #2772
    • CHANGED: nit: Enables compiler warnings in part of thor module #2768
    • ADDED: Add costing option use_tracks to avoid or favor tracks in route. #2769
    • CHANGED: chore: Updates libosmium #2786
    • CHANGED: Optimize double bucket queue to reduce memory reallocations. #2719
    • CHANGED: Collapse merge maneuvers #2773
    • CHANGED: Add shortcuts to the tiles' bins so we can find them when doing spatial lookups. #2744

Don't miss a new valhalla release

NewReleases is sending notifications on new releases.