Skip to content

Latest commit

 

History

History
1733 lines (1586 loc) · 178 KB

CHANGELOG.md

File metadata and controls

1733 lines (1586 loc) · 178 KB

UNRELEASED

  • Removed
  • Bug Fix
    • FIXED: incremental_build_tiles script works again #4909
    • FIXED: Fix ability to use Valhalla via cmake add_subdirectory #4930
    • FIXED: Fix valhalla_benchmark_loki benchmark application. #4981
    • FIXED: Double free crash during tiles build inside libxml2 on concurrent spatialite_cleanup_ex() calls #5005
    • FIXED: update CircleCI runners to Ubuntu 24.04 #5002
    • FIXED: Fixed a typo in the (previously undocumented) matrix-APIs responses algorithm field: timedistancbssematrix is now timedistancebssmatrix #5000.
    • FIXED: More trivial cases in CostMatrix #5001
  • Enhancement
    • ADDED: Consider smoothness in all profiles that use surface #4949
    • ADDED: admin_crossings request parameter for /route #4941
    • ADDED: include level change info in /route response #4942
    • ADDED: steps maneuver improvements #4960
    • ADDED: instruction improvements for node-based elevators #4988

Release Date: 2024-10-10 Valhalla 3.5.1

  • Removed
  • Bug Fix
    • FIXED: All logging in valhalla_export_edges now goes to stderr #4892
    • FIXED: Iterate over only kLandmark tagged values in AddLandmarks() #4873
    • FIXED: walk_or_snap mode edge case with loop routes #4895
    • FIXED: -Wdefaulted-function-deleted compilation warning/error in NarrativeBuilder #4877
    • FIXED: For a long time we were potentially wrongly encoding varints by using static_cast vs reinterpret_cast [#4877]#4925
  • Enhancement
    • CHANGED: voice instructions for OSRM serializer to work better in real-world environment #4756
    • ADDED: Add option edge.forward to trace attributes #4876
    • ADDED: Provide conditional speed limits from "maxspeed:conditional" in /locate and proto /route responses #4851
    • ADDED: Support multiple levels and level ranges #4879
    • ADDED: Level location search filter #4926

Release Date: 2024-08-21 Valhalla 3.5.0

  • Removed
    • REMOVED: needs_ci_run script #4423
    • REMOVED: unused vehicle types in AutoCost and segway; renamed kTruck to "truck" instead of "tractor_trailer" #4430
    • REMOVED: ./bench and related files/code #4560
    • REMOVED: unused headers #4829
  • Bug Fix
    • FIXED: gcc13 was missing some std header includes #4154
    • FIXED: when reclassifying ferry edges, remove destonly from ways only if the connecting way was destonly #4118
    • FIXED: typo in use value of map matching API (platform_connection was misspelled) #4174
    • FIXED: fix crash in timedistancebssmatrix.cc #4244
    • FIXED: missing protobuf CMake configuration to link abseil for protobuf >= 3.22.0 #4207
    • FIXED: broken links on the optimized route API page #4260
    • FIXED: remove clearing of headings while calculating a matrix #4288
    • FIXED: only recost matrix pairs which have connections found #4344
    • FIXED: arm builds. tons of errors due to floating point issues mostly #4213
    • FIXED: respond with correlated edges for format=valhalla and matrix #4335
    • FIXED: sources & targets for verbose matrix response was kinda broken due to #4335 above #4366
    • FIXED: recover proper shortest path to ferry connections (when multiple edges exist between node pair) #4361
    • FIXED: recover proper shortest path to ferry connections (make sure correct label index is used) #4378
    • FIXED: Allow all roads for motorcycles #4348
    • FIXED: motorcar:conditional should not apply to motorcycle and moped #4359
    • FIXED: break shortcuts when there are different restrictions on base edges #4326
    • FIXED: Incorrect edge_index assignment in thor_worker_t::build_trace #4413
    • FIXED: lots of issues with CostMatrix (primarily deadend logic) with a complete refactor modeling things very close to bidir A*, also to prepare for a unification of the two #4372
    • FIXED: diff_names check was missing for Graphfilter and Shortcutbuilder for AddEdgeInfo call. #4436
    • FIXED: updated timezone database and added code to keep compatibility with old servers/new data and vice versa #4446
    • FIXED: retry elevation tile download if the download failed for some reason or the downloaded tile was corrupt #4461
    • FIXED: base transition costs were getting overridden by osrm car turn duration #4463
    • FIXED: insane ETAs for motor_scooter on tracks #4468
    • FIXED: -j wasn't taken into account anymore #4483
    • FIXED: time distance matrix was always using time zone of last settled edge id #4494
    • FIXED: log to stderr in valhalla_export_edges #4498
    • FIXED: set capped speed for truck at 90 KPH #4493
    • FIXED: Config singleton multiple instantiation issue #4521
    • FIXED: Prevent GetShortcut to run into an infinite loop #4532
    • FIXED: fix config generator with thor.costmatrix_allow_second_pass #4567
    • FIXED: infinite loop or other random corruption in isochrones when retrieving partial shape of an edge #4547
    • FIXED: Aggregation updates: update opposing local idx after aggregating the edges, added classification check for aggregation, and shortcut length changes #4570
    • FIXED: Use helper function for only parsing out names from DirectedEdge when populating intersecting edges #4604
    • FIXED: Osmnode size reduction: Fixed excessive disk space for planet build #4605
    • FIXED: Conflict with signinfo's temporary linguistic node sequence file caused test failures. #4625
    • FIXED: CostMatrix for trivial routes with oneways #4626
    • FIXED: some entry points to creating geotiff isochrones output did not register the geotiff driver before attempting to use it #4628
    • FIXED: libgdal wasn't installed in docker image, so it never worked in docker #4629
    • FIXED: CostMatrix shapes for routes against trivial oneways #4633
    • FIXED: unidirectional_astar.cc doesn't work for date_time type = 2 #4652(#4652)
    • FIXED: a few fixes around the routing algorithms #4626
    • FIXED: no need to search for GDAL when building data #4651
    • FIXED: Fix segfault in OSRM serializer with bannerInstructions when destination is on roundabout #4480
    • FIXED: Fix segfault in costmatrix (date_time and time zone always added). #4530
    • FIXED: Fixed roundoff issue in Tiles Row and Col methods #4585
    • FIXED: Fix for assigning attributes has_(highway, ferry, toll) if directions_type is none #4465
    • FIXED: Have the valhalla_add_predicted_speeds summary always be created from mjolnir.tile_dir #4722
    • FIXED: Fix inconsistency in graph.lua for motor_vehicle_node #4723
    • FIXED: Missing algorithm include in baldr/admin.h #4766
    • FIXED: remove old code that allows bicycle access on hiking trails. #4781
    • FIXED: Handle list type arguments correctly when overriding config with valhalla_build_config #4799
    • FIXED: top_speed range not fully allowed for trucks #4793
    • FIXED: Trivial routes for CostMatrix #4634
    • FIXED: Reset not_thru_pruning in CostMatrix after second pass was used #4817
    • FIXED: wrong index used in CostMatrix expansion callback inside reverse connection check #4821
    • FIXED: oneway ferry connections classification #4828
    • FIXED: location search_filter ignored in certain cases #4835
    • FIXED: Ferry reclassification finds shortest path that is blocked by inaccessible node #4854
    • FIXED: (Nov - Mar) (and similar, months with spaces) condition parsing #4857
  • Enhancement
    • UPDATED: French translations, thanks to @xlqian #4159
    • CHANGED: -j flag for multithreaded executables to override mjolnir.concurrency #4168
    • CHANGED: moved the argparse boilerplate code to a private header which all programs can share #4169
    • ADDED: CI runs a spell check on the PR to detect spelling mistakes #4179
    • ADDED: preferred_side_cutoff parameter for locations #4182
    • ADDED: PBF output for matrix endpoint #4121
    • CHANGED: sped up the transit gtfs ingestion process by sorting the feeds before querying them and avoiding copying their structures. forked just_gtfs into the valhalla org to accomplish it #4167
    • CHANGED: write traffic tile headers in valhalla_build_extract #4195
    • ADDED: source_percent_along & target_percent_along to /trace_attributes JSON response #4199
    • ADDED: sqlite database to store landmarks along with interfaces of insert and bounding box queries #4189
    • CHANGED: refactor landmark database interface to use a pimpl #4202
    • ADDED: support for :forward and :backward for motor_vehicle, vehicle, foot and bicycle tag prefixes #4204
    • ADDED: add valhalla_build_landmarks to parse POIs from osm pbfs and store them as landmarks in the landmark sqlite database #4201
    • ADDED: add primary key in the landmark sqlite database and a method to retrieve landmarks via their primary keys #4224
    • ADDED: update graph tile to allow adding landmarks to edge info, and refactor edgeinfo.cc #4233
    • ADDED: sources_to_targets action for /expansion #4263
    • ADDED: option --extract-tar to valhalla_build_extract to create extracts from .tar files instead of tile directory #4255
    • ADDED: Support for bannerInstructions attribute in OSRM serializer via banner_instructions request parameter #4093
    • UPDATED: submodules which had new releases, unless it was a major version change #4231
    • ADDED: Support for elevation along a route. Add elevation to EdgeInfo within Valhalla tiles #4279
    • ADDED: the workflow to find landmarks in a graph tile, associate them with nearby edges, and update the graph tile to store the associations #4278
    • ADDED: update maneuver generation to add nearby landmarks to maneuvers as direction support #4293
    • CHANGED: the boost property tree config is now read into a singleton that doesn't need to be passed around anymore #4220
    • ADDED: Update the street name and sign data processing include language and pronunciations #4268
    • CHANGED: more sustainable way to work with protobuf in cmake #4334
    • CHANGED: use date_time API to retrieve timezone aliases instead of our own curated list #4382
    • CHANGED: less aggressive logging for nodes' headings & ferry connections [#4420][#4420]
    • ADDED: add documentation about historical traffic #4259
    • ADDED: config option to control how much memory we'll reserve for CostMatrix locations #4424
    • CHANGED: refactor EdgeLabel (and derived classes) to reduce memory use. #4439
    • ADDED: "shape" field to matrix response for CostMatrix only #4432
    • CHANGED: /expansion: add field prev_edge_id, make the GeoJSON features LineStrings #4275
    • ADDED: --optimize & --log-details to valhalla_run_matrix #4355
    • ADDED: most access restrictions to /locate response #4431
    • ADDED: hgv=destination and friends for truck-specific "destination_only" logic #4450
    • UPDATED: updated country access overrides #4460
    • CHANGED: date_time refactor as a preparation to return DST/timezone related offset in the response #4365
    • ADDED: find connection on backward search for bidir matrix algo #4329
    • CHANGED: Adjustment of walk speed when walking on slight downhill #4302
    • CHANGED: Do not reclassify ferry connections when no hierarchies are to be generated #4487
    • ADDED: Added a config option to sort nodes spatially during graph building #4455
    • ADDED: Timezone info in route and matrix responses #4491
    • ADDED: Support for voiceInstructions attribute in OSRM serializer via voice_instructions request parameter #4506
    • CHANGED: use pkg-config to find spatialite & geos and remove our cmake modules; upgraded conan's boost to 1.83.0 in the process #4253
    • ADDED: Added aggregation logic to filter stage of tile building #4512
    • UPDATED: tz to 2023d #4519
    • CHANGED: libvalhalla.pc generation to have finer controls; install third_party public headers; overhaul lots of CMake; remove conan support #4516
    • CHANGED: refactored matrix code to include a base class for all matrix algorithms to prepare for second passes on matrix #4535
    • ADDED: matrix second pass for connections not found in the first pass, analogous to /route #4536
    • UPDATED: cxxopts to 3.1.1 #4541
    • CHANGED: make use of vendored libraries optional (other than libraries which are not commonly in package managers or only used for testing) #4544
    • ADDED: Improved instructions for blind users #3694
    • ADDED: isochrone proper polygon support & pbf output for isochrone #4575
    • ADDED: return isotile grid as geotiff #4594
    • ADDED: ignore_non_vehicular_restrictions parameter for truck costing #4606
    • UPDATED: tz database to 2024a #4643
    • ADDED: hgv_no_penalty costing option to allow penalized truck access to hgv=no edges #4650
    • CHANGED: Significantly improve performance of graphbuilder #4669
    • UPDATED: Improved turn by turn api reference documentation #4675
    • CHANGED: contract nodes if connecting edges have different names or speed or non-conditional access restrictions #4613
    • CHANGED: CostMatrix switched from Dijkstra to A* #4650
    • ADDED: some missing documentation about request parameters #4687
    • ADDED: Consider more forward/backward tags for access restrictions and speeds #4686
    • CHANGED: change costmatrix max_distance threshold to a distance threshold instead of duration #4672
    • ADDED: PBF support for expansion #4614
    • ADDED: elapsed_cost field to map matching json response #4709
    • ADDED: error if we fail to find any matrix connection #4718
    • ADDED: Fail early in valhalla_ingest_transit if there's no valid GTFS feeds #4710
    • ADDED: Support for voiceLocale attribute in OSRM serializer via voice_instructions request parameter #4677
    • ADDED: Added ssmlAnnouncements for voice instructions and removed voice and banner instructions from last step. #4644
    • ADDED: deadend information in directed edge JSON for /locate #4751
    • ADDED: Dedupe option for expansion, significantly reducing the response size. #4601
    • ADDED: expansion_type property to /expansion #4784
    • ADDED: inline config arg for valhalla_build_elevation script #4787
    • ADDED: use_truck_route #4809
    • ADDED: Add option edge.country_crossing to trace attributes #4825
    • CHANGED: Unification of turn costs for ramps and roundabouts #4827
    • CHANGED: updated dockerfile to use ubuntu 24.04 #4805

Release Date: 2023-05-11 Valhalla 3.4.0

  • Removed
    • REMOVED: Docker image pushes to Dockerhub #4033
    • REMOVED: transitland references and scripts and replace with info for raw GTFS feeds #4033
  • Bug Fix
    • FIXED: underflow of uint64_t cast for matrix time results #3906
    • FIXED: update vcpkg commit for Azure pipelines to fix libtool mirrors #3915
    • FIXED: fix CHANGELOG release year (2022->2023) #3927
    • FIXED: avoid segfault on invalid exclude_polygons input #3907
    • FIXED: allow _WIN32_WINNT to be defined by build system #3933
    • FIXED: disconnected stop pairs in gtfs import #3943
    • FIXED: in/egress traversability in gtfs ingestion is now defaulted to kBoth to enable pedestrian access on transit connect edges and through the in/egress node #3948
    • FIXED: parsing logic needed implicit order of stations/egresses/platforms in the GTFS feeds #3949
    • FIXED: segfault in TimeDistanceMatrix #3964
    • FIXED: write multiple PBFs if the protobuf object gets too big #3954
    • FIXED: pin conan version to latest 1.x for now #3990
    • FIXED: Fix matrix_locations when used in pbf request #3997
    • FIXED: got to the point where the basic transit routing test works #3988
    • FIXED: fix build with LOGGING_LEVEL=ALL #3992
    • FIXED: transit stitching when determining whether a platform was generated #4020
    • FIXED: multimodal isochrones #4030
    • FIXED: duplicated recosting names should throw #4042
    • FIXED: Remove arch specificity from strip command of Python bindings to make it more compatible with other archs #4040
    • FIXED: GraphReader::GetShortcut no longer returns false positives or false negatives #4019
    • FIXED: Tagging with bus=permit or taxi=permit did not override access=no #4045
    • FIXED: Upgrade RapidJSON to address undefined behavior #4051
    • FIXED: time handling for transit service #4052
    • FIXED: multiple smaller bugs while testing more multimodal /route & /isochrones #4055
    • FIXED: FindLuaJit.cmake to include Windows paths/library names #4067
    • FIXED: Move complex turn restriction check out of can_form_shortcut() #4047
    • FIXED: fix clear methods on matrix algorithms and reserve some space for labels with a new config #4075
    • FIXED: fix valhalla_build_admins & valhalla_ways_to_edges argument parsing #4097
    • FIXED: fail early in valhalla_build_admins if parent directory can't be created, also exit with failure #4099
  • Enhancement
    • CHANGED: replace boost::optional with C++17's std::optional where possible #3890
    • ADDED: parse lit tag on ways and add it to graph #3893
    • ADDED: log lat/lon of node where children link edges exceed the configured maximum #3911
    • ADDED: log matrix algorithm which was used #3916
    • UPDATED: docker base image to Ubuntu 22.04 #3912
    • CHANGED: Unify handling of single-file -Werror in all modules #3910
    • CHANGED: Build skadi with -Werror #3935
    • ADDED: Connect transit tiles to the graph #3700
    • CHANGED: switch to C++17 master branch of just_gtfs #3947
    • ADDED: Support for configuring a universal request timeout #3966
    • ADDED: optionally include highway=platform edges for pedestrian access #3971
    • ADDED: use_lit costing option for pedestrian costing #3957
    • CHANGED: Removed stray NULL values in log output #3974
    • CHANGED: More conservative estimates for cost of walking slopes #3982
    • ADDED: An option to slim down matrix response #3987
    • CHANGED: Updated url for just_gtfs library #3994
    • ADDED: Docker image pushes to Github's docker registry #4033
    • ADDED: disable_hierarchy_pruning costing option to find the actual optimal route for motorized costing modes, i.e auto, motorcycle, motor_scooter, bus, truck & taxi. #4000
    • CHANGED: baldr directory: remove warnings and C++17 adjustments #4011
    • UPDATED: vcpkg to latest master, iconv wasn't building anymore #4066
    • CHANGED: pybind11 upgrade for python 3.11 #4067
    • CHANGED: added transit level to connectivity map #4082
    • ADDED: "has_transit_tiles" & "osm_changeset" to verbose status response #4062
    • ADDED: time awareness to CostMatrix for e.g. traffic support #4071
    • UPDATED: transifex translations #4102
    • ADDED: costing parameters to exclude certain edges exclude_tolls, exclude_bridges, exclude_tunnels, exclude_highways, exclude_ferries. They need to be enabled in the config with service_limits.allow_hard_exclusions. Also added location search filters exclude_ferry and exclude_toll to complement these changes. #4524

Release Date: 2023-01-03 Valhalla 3.3.0

  • Removed
  • Bug Fix
  • Enhancement
    • CHANGED: Upgraded from C++14 to C++17. #3878

Release Date: 2023-01-03 Valhalla 3.2.1

  • Removed
  • Bug Fix
    • FIXED: valhalla_run_route was missing config logic. #3824
    • FIXED: Added missing ferry tag if manoeuver uses a ferry. It's supposed to be there according to the docs. #3815
    • FIXED: Handle hexlifying strings with unsigned chars #3842
    • FIXED: Newer clang warns on sprintf which becomes a compilation error (due to Werror) so we use snprintf instead #3846
    • FIXED: Build all of Mjolnir with -Werror #3845
    • FIXED: Only set most destination information once for all origins in timedistancematrix #3830
    • FIXED: Integers to expansion JSON output were cast wrongly #3857
    • FIXED: hazmat=destination should be hazmat=false and fix the truckcost usage of hazmat #3865
    • FIXED: Make sure there is at least one path which is accessible for all vehicular modes when reclassifying ferry edges #3860
    • FIXED: valhalla_build_extract was failing to determine the tile ID to include in the extract #3864
    • FIXED: valhalla_ways_to_edges missed trimming the cache when overcommitted #3872
    • FIXED: Strange detours with multi-origin/destination unidirectional A* #3585
  • Enhancement
    • ADDED: Added has_toll, has_highway, has_ferry tags to summary field of a leg and route and a highway tag to a maneuver if it includes a highway. #3815
    • ADDED: Add time info to sources_to_targets #3795
    • ADDED: "available_actions" to the /status response #3836
    • ADDED: "waiting" field on input/output intermediate break(_through) locations to respect services times #3849
    • ADDED: --bbox & --geojson-dir options to valhalla_build_extract to only archive a subset of tiles #3856
    • CHANGED: Replace unstable c++ geos API with a mix of geos' c api and boost::geometry for admin building #3683
    • ADDED: optional write-access to traffic extract from GraphReader #3876
    • UPDATED: locales from Transifex #3879
    • CHANGED: Build most of Baldr with -Werror #3885
    • UPDATED: some documentation overhaul to slim down root's README #3881
    • CHANGED: move documentation hosting to Github Pages from readthedocs.io #3884
    • ADDED: inline config arguments to some more executables #3873

Release Date: 2022-10-26 Valhalla 3.2.0

  • Removed

    • REMOVED: "build-*" docker image to decrease complexity #3689
  • Bug Fix

    • FIXED: Fix precision losses while encoding-decoding distance parameter in openlr #3374
    • FIXED: Fix bearing calculation for openlr records #3379
    • FIXED: Some refactoring that was proposed for the PR 3379 #3381
    • FIXED: Avoid calling out "keep left/right" when passing an exit #3349
    • FIXED: Fix iterator decrement beyond begin() in GeoPoint::HeadingAtEndOfPolyline() method #3393
    • FIXED: Add string for Use:kPedestrianCrossing to fix null output in to_string(Use). #3416
    • FIXED: Remove simple restrictions check for pedestrian cost calculation. #3423
    • FIXED: Parse "highway=busway" OSM tag: https://wiki.openstreetmap.org/wiki/Tag:highway%3Dbusway #3413
    • FIXED: Process int_ref irrespective of use_directions_on_ways_ #3446
    • FIXED: workaround python's ArgumentParser bug to not accept negative numbers as arguments #3443
    • FIXED: Undefined behaviour on some platforms due to unaligned reads #3447
    • FIXED: Fixed undefined behavior due to invalid shift exponent when getting edge's heading #3450
    • FIXED: Use midgard::unaligned_read in GraphTileBuilder::AddSigns #3456
    • FIXED: Relax test margin for time dependent traffic test #3467
    • FIXED: Fixed missed intersection heading #3463
    • FIXED: Stopped putting binary bytes into a string field of the protobuf TaggedValue since proto3 protects against that for cross language support #3468
    • FIXED: valhalla_service uses now loki logging config instead of deprecated tyr logging #3481
    • FIXED: Docker image valhalla/valhalla:run-latest: conan error + python integration #3485
    • FIXED: fix more protobuf unstable 3.x API #3494
    • FIXED: fix one more protobuf unstable 3.x API #3501
    • FIXED: Fix valhalla_build_tiles imports only bss from last osm file #3503
    • FIXED: Fix total_run_stat.sh script. #3511
    • FIXED: Both hov:designated and hov:minimum have to be correctly set for the way to be considered hov-only #3526
    • FIXED: Wrong out index in route intersections #3541
    • FIXED: fix valhalla_export_edges: missing null columns separator #3543
    • FIXED: Removed/updated narrative language aliases that are not IETF BCP47 compliant #3546
    • FIXED: Wrong predecessor opposing edge in dijkstra's expansion #3528
    • FIXED: exit and exit_verbal in Russian locale should be same #3545
    • FIXED: Skip transit tiles in hierarchy builder #3559
    • FIXED: Fix some country overrides in adminconstants and add a couple new countries. #3578
    • FIXED: Improve build errors reporting #3579
    • FIXED: Fix "no elevation" values and /locate elevation response #3571
    • FIXED: Build tiles with admin/timezone support on Windows #3580
    • FIXED: admin "Saint-Martin" changed name to "Saint-Martin (France)" #3619
    • FIXED: openstreetmapspeeds global config with nulls now supported #3621
    • FIXED: valhalla_run_matrix was failing (could not find proper max_matrix_distance) #3635
    • FIXED: Removed duplicate degrees/radians constants #3642
    • FIXED: Forgot to adapt driving side and country access rules in #3619 #3652
    • FIXED: DateTime::is_conditional_active(...) incorrect end week handling #3655
    • FIXED: TimeDistanceBSSMatrix: incorrect initialization for destinations #3659
    • FIXED: Some interpolated points had invalid edge_index in trace_attributes response #3646
    • FIXED: Use a small node snap distance in map-matching. FIxes issue with incorrect turn followed by Uturn. #3677
    • FIXED: Conan error when building Docker image. #3689
    • FIXED: Allow country overrides for sidewalk #3711
    • FIXED: CostMatrix incorrect tile usage with oppedge. #3719
    • FIXED: Fix elevation serializing #3735
    • FIXED: Fix returning a potentially uninitialized value in PointXY::ClosestPoint #3737
    • FIXED: Wales and Scotland name change. #3746
    • FIXED: Pedestrian crossings are allowed for bikes #3751
    • FIXED: Fix for Mac OSx. Small update for the workdir for the admin_sidewalk_override test. #3757
    • FIXED: Add missing service road case from GetTripLegUse method. #3763
    • FIXED: Fix TimeDistanceMatrix results sequence #3738
    • FIXED: Fix status endpoint not reporting that the service is shutting down #3785
    • FIXED: Fix TimdDistanceMatrix SetSources and SetTargets #3792
    • FIXED: Added highway and surface factor in truckcost #3590
    • FIXED: Potential integer underflow in file suffix generation #3783
    • FIXED: Building Valhalla as a submodule #3781
    • FIXED: Fixed invalid time detection in GetSpeed #3800
    • FIXED: Osmway struct update: added up to 33 and not 32 #3808
    • FIXED: Fix out-of-range linestrings in expansion #4603
  • Enhancement

    • CHANGED: Pronunciation for names and destinations #3132
    • CHANGED: Requested code clean up for phonemes PR #3356
    • CHANGED: Refactor Pronunciation class to struct #3359
    • ADDED: Added support for probabale restrictions #3361
    • CHANGED: Refactored the verbal text formatter to handle logic for street name and sign #3369
    • CHANGED: return "version" and "tileset_age" on parameterless /status call #3367
    • CHANGED: de-singleton tile_extract by introducing an optional index.bin file created by valhalla_build_extract #3281
    • CHANGED: implement valhalla_build_elevation in python and add more --from-geojson & --from-graph options #3318
    • ADDED: Add boolean parameter to clear memory for edge labels from thor. #2789
    • CHANGED: Do not create statsd client in workers if it is not configured #3394
    • ADDED: Import of Bike Share Stations information in BSS Connection edges #3411
    • ADDED: Add heading to PathEdge to be able to return it on /locate #3399
    • ADDED: Add prioritize_bidirectional option for fast work and correct ETA calculation for depart_at date_time type. Smoothly stop using live-traffic #3398
    • CHANGED: Minor fix for headers #3436
    • CHANGED: Use std::multimap for polygons returned for admin and timezone queries. Improves performance when building tiles. #3427
    • CHANGED: Refactored GraphBuilder::CreateSignInfoList #3438
    • ADDED: Add support for LZ4 compressed elevation tiles #3401
    • CHANGED: Rearranged some of the protobufs to remove redundancy #3452
    • CHANGED: overhaul python bindings #3380
    • CHANGED: Removed all protobuf defaults either by doing them in code or by relying on 0 initialization. Also deprecated best_paths and do_not_track #3454
    • ADDED: isochrone action for /expansion endpoint to track dijkstra expansion #3215
    • CHANGED: remove boost from dependencies and add conan as prep for #3346 #3459
    • CHANGED: Remove boost.program_options in favor of cxxopts header-only lib and use conan to install header-only boost. #3346
    • CHANGED: Moved all protos to proto3 for internal request/response handling #3457
    • CHANGED: Allow up to 32 outgoing link edges on a node when reclassifying links #3483
    • CHANGED: Reuse sample::get implementation #3471
    • ADDED: Beta support for interacting with the http/bindings/library via serialized and pbf objects respectively #3464
    • CHANGED: Update xcode to 12.4.0 #3492
    • ADDED: Add JSON generator to conan #3493
    • CHANGED: top_speed option: ignore live speed for speed based penalties #3460
    • ADDED: Add include_construction option into the config to include/exclude roads under construction from the graph #3455
    • CHANGED: Refactor options protobuf for Location and Costing objects #3506
    • CHANGED: valhalla.h and config.h don't need cmake configuration #3502
    • ADDED: New options to control what fields of the pbf are returned when pbf format responses are requested #3207
    • CHANGED: Rename tripcommon to common #3516
    • ADDED: Indoor routing - data model, data processing. #3509
    • ADDED: On-demand elevation tile fetching #3391
    • CHANGED: Remove many oneof uses from the protobuf api where the semantics of optional vs required isnt necessary #3527
    • ADDED: Indoor routing maneuvers #3519
    • ADDED: Expose reverse isochrone parameter for reverse expansion #3528
    • CHANGED: Add matrix classes to thor worker so they persist between requests. #3560
    • CHANGED: Remove max_matrix_locations and introduce max_matrix_location_pairs to configure the allowed number of total routes for the matrix action for more flexible asymmetric matrices #3569
    • CHANGED: modernized spatialite syntax #3580
    • ADDED: Options to generate partial results for time distance matrix when there is one source (one to many) or one target (many to one). #3181
    • ADDED: Enhance valhalla_build_elevation with LZ4 recompression support #3607
    • CHANGED: removed UK admin and upgraded its constituents to countries #3619
    • CHANGED: expansion service: only track requested max time/distance #3532
    • ADDED: Shorten down the request delay, when some sources/targets searches are early aborted #3611
    • ADDED: add pre-commit hook for running the format.sh script #3637
    • CHANGED: upgrade pybind11 to v2.9.2 to remove cmake warning #3658
    • ADDED: tests for just_gtfs reading and writing feeds #3665
    • CHANGED: Precise definition of types of edges on which BSS could be projected #3658
    • CHANGED: Remove duplicate implementation of adjust_scores #3673
    • ADDED: convert GTFS data into protobuf tiles #3629
    • CHANGED: Use starts_with() instead of substr(0, N) getting and comparing to prefix #3702
    • ADDED: Ferry support for HGV #3710
    • ADDED: Linting & formatting checks for Python code #3713
    • CHANGED: rename Turkey admin to Türkiye #3720
    • CHANGED: bumped vcpkg version to "2022.08.15" #3754
    • CHANGED: chore: Updates to clang-format 11.0.0 #3533
    • CHANGED: Ported trace_attributes serialization to RapidJSON. #3333
    • ADDED: Add helpers for DirectedEdgeExt and save them to file in GraphTileBuilder #3562
    • ADDED: Fixed Speed costing option #3576
    • ADDED: axle_count costing option for hgv #3648
    • ADDED: Matrix action for gurka #3793
    • ADDED: Add warnings array to response. #3588
    • CHANGED: Templatized TimeDistanceMatrix for forward/reverse search #3773
    • CHANGED: Templatized TimeDistanceBSSMatrix for forward/reverse search #3778
    • CHANGED: error code 154 shows distance limit in error message #3779

Release Date: 2021-10-07 Valhalla 3.1.4

  • Removed

  • Bug Fix

    • FIXED: Revert default speed boost for turn channels #3232
    • FIXED: Use the right tile to get country for incident #3235
    • FIXED: Fix factors passed to RelaxHierarchyLimits #3253
    • FIXED: Fix TransitionCostReverse usage #3260
    • FIXED: Fix Tagged Value Support in EdgeInfo #3262
    • FIXED: TransitionCostReverse fix: revert internal_turn change #3271
    • FIXED: Optimize tiles usage in reach-based pruning #3294
    • FIXED: Slip lane detection: track visited nodes to avoid infinite loops #3297
    • FIXED: Fix distance value in a 0-length road #3185
    • FIXED: Trivial routes were broken when origin was node snapped and destnation was not and vice-versa for reverse astar #3299
    • FIXED: Tweaked TestAvoids map to get TestAvoidShortcutsTruck working #3301
    • FIXED: Overflow in sequence sort #3303
    • FIXED: Setting statsd tags in config via valhalla_build_config #3225
    • FIXED: Cache for gzipped elevation tiles #3120
    • FIXED: Current time conversion regression introduced in unidirectional algorithm refractor #3278
    • FIXED: Make combine_route_stats.py properly quote CSV output (best practice improvement) #3328
    • FIXED: Merge edge segment records in map matching properly so that resulting edge indices in trace_attributes are valid #3280
    • FIXED: Shape walking map matcher now sets correct edge candidates used in the match for origin and destination location #3329
    • FIXED: Better hash function of GraphId #3332
  • Enhancement

    • CHANGED: Favor turn channels more #3222
    • CHANGED: Rename valhalla::midgard::logging::LogLevel enumerators to avoid clash with common macros #3237
    • CHANGED: Move pre-defined algorithm-based factors inside RelaxHierarchyLimits #3253
    • ADDED: Reject alternatives with too long detours #3238
    • ADDED: Added info to /status endpoint #3008
    • ADDED: Added stop and give_way/yield signs to the data and traffic signal fixes #3251
    • ADDED: use_hills for pedestrian costing, which also affects the walking speed #3234
    • CHANGED: Fixed cost threshold for bidirectional astar. Implemented reach-based pruning for suboptimal branches #3257
    • ADDED: Added exclude_unpaved request parameter #3240
    • ADDED: Added support for routing onto HOV/HOT lanes via request parameters include_hot, include_hov2, and include_hov3 #3273
    • ADDED: Add Z-level field to EdgeInfo. #3261
    • CHANGED: Calculate stretch threshold for alternatives based on the optimal route cost #3276
    • ADDED: Add preferred_z_level as a parameter of loki requests. #3270
    • ADDED: Add preferred_layer as a parameter of loki requests. #3270
    • ADDED: Exposing service area names in passive maneuvers. #3277
    • ADDED: Added traffic signal and stop sign check for stop impact. These traffic signals and stop sign are located on edges. #3279
    • CHANGED: Improved sharing criterion to obtain more reasonable alternatives; extended alternatives search #3302
    • ADDED: pull ubuntu:20.04 base image before building #3233
    • CHANGED: Improve Loki nearest-neighbour performance for large radius searches in open space #3233
    • ADDED: testing infrastructure for scripts and valhalla_build_config tests #3308
    • ADDED: Shape points and information about where intermediate locations are placed along the legs of a route #3274
    • CHANGED: Improved existing hov lane transition test case to make more realistic #3330
    • CHANGED: Update python usage in all scripts to python3 #3337
    • ADDED: Added exclude_cash_only_tolls request parameter #3341
    • CHANGED: Update api-reference for street_names #3342
    • ADDED: Disable msse2 flags when building on Apple Silicon chip #3327

Release Date: 2021-07-20 Valhalla 3.1.3

  • Removed

    • REMOVED: Unused overloads of to_response function #3167
  • Bug Fix

    • FIXED: Fix heading on small edge #3114
    • FIXED: Added support for access=psv, which disables routing on these nodes and edges unless the mode is taxi or bus #3107
    • FIXED: Disables logging in CI to catch issues #3121
    • FIXED: Fixed U-turns through service roads #3082
    • FIXED: Added forgotten penalties for kLivingStreet and kTrack for pedestrian costing model #3116
    • FIXED: Updated the reverse turn bounds #3122
    • FIXED: Missing fork maneuver #3134
    • FIXED: Update turn channel logic to call out specific turn at the end of the turn channel if needed #3140
    • FIXED: Fixed cost thresholds for TimeDistanceMatrix. #3131
    • FIXED: Use distance threshold in hierarchy limits for bidirectional astar to expand more important lower level roads #3156
    • FIXED: Fixed incorrect dead-end roundabout labels. #3129
    • FIXED: googletest wasn't really updated in #3166 #3187
    • FIXED: Minor fix of benchmark code #3190
    • FIXED: avoid_polygons intersected edges as polygons instead of linestrings [#3194]((#3194)
    • FIXED: when binning horizontal edge shapes using single precision floats (converted from not double precision floats) allowed for the possibility of marking many many tiles no where near the shape #3204
    • FIXED: Fix improper iterator usage in ManeuversBuilder #3205
    • FIXED: Modified approach for retrieving signs from a directed edge #3166 #3208
    • FIXED: Improve turn channel classification: detect slip lanes #3196
    • FIXED: Compatibility with older boost::optional versions #3219
    • FIXED: Older boost.geometry versions don't have correct() for geographic rings #3218
    • FIXED: Use default road speed for bicycle costing so traffic does not reduce penalty on high speed roads. #3143
  • Enhancement

    • CHANGED: Refactor base costing options parsing to handle more common stuff in a one place #3125
    • CHANGED: Unified Sign/SignElement into sign.proto #3146
    • ADDED: New verbal succinct transition instruction to maneuver & narrativebuilder. Currently this instruction will be used in place of a very long street name to avoid repetition of long names #2844
    • ADDED: Added oneway support for pedestrian access and foot restrictions #3123
    • ADDED: Exposing rest-area names in passive maneuvers #3172
    • CHORE: Updates robin-hood-hashing third-party library
    • ADDED: Support barrier=yes|swing_gate|jersey_barrier tags #3154
    • ADDED: Maintain access=permit|residents tags as private #3149
    • CHANGED: Replace avoid_* API parameters with more accurate exclude_* #3093
    • ADDED: Penalize private gates #3144
    • CHANGED: Renamed protobuf Sign/SignElement to TripSign/TripSignElement #3168
    • CHORE: Updates googletest to release-1.11.0 #3166
    • CHORE: Enables -Wall on sif sources #3178
    • ADDED: Allow going through accessible barrier=bollard and penalize routing through it, when the access is private #3175
    • ADDED: Add country code to incident metadata #3169
    • CHANGED: Use distance instead of time to check limited sharing criteria #3183
    • ADDED: Introduced a new via_waypoints array on the leg in the osrm route serializer that describes where a particular waypoint from the root-level array matches to the route. #3189
    • ADDED: Added vehicle width and height as an option for auto (and derived: taxi, bus, hov) profile (#3179)
    • ADDED: Support for statsd integration for basic error and requests metrics #3191
    • CHANGED: Get rid of typeid in statistics-related code. #3227

Release Date: 2021-05-26 Valhalla 3.1.2

  • Removed

  • Bug Fix

    • FIXED: Change unnamed road intersections from being treated as penil point u-turns #3084
    • FIXED: Fix TimeDepReverse termination and path cost calculation (for arrive_by routing) #2987
    • FIXED: Isochrone (::Generalize()) fix to avoid generating self-intersecting polygons #3026
    • FIXED: Handle day_on/day_off/hour_on/hour_off restrictions #3029
    • FIXED: Apply conditional restrictions with dow only to the edges when routing #3039
    • FIXED: Missing locking in incident handler needed to hang out to scop lock rather than let the temporary dissolve #3046
    • FIXED: Continuous lane guidance fix #3054
    • FIXED: Fix reclassification for "shorter" ferries and rail ferries (for Chunnel routing issues) #3038
    • FIXED: Incorrect routing through motor_vehicle:conditional=destination. #3041
    • FIXED: Allow destination-only routing on the first-pass for non bidirectional Astar algorithms. #3085
    • FIXED: Highway/ramp lane bifurcation #3088
    • FIXED: out of bound access of tile hierarchy in base_ll function in graphheader #3089
    • FIXED: include shortcuts in avoid edge set for avoid_polygons #3090
  • Enhancement

    • CHANGED: Refactor timedep forward/reverse to reduce code repetition #2987
    • CHANGED: Sync translation files with Transifex command line tool #3030
    • CHANGED: Use osm tags in links reclassification algorithm in order to reduce false positive downgrades #3042
    • CHANGED: Use CircleCI XL instances for linux based builds #3043
    • ADDED: ci: Enable undefined sanitizer #2999
    • ADDED: Optionally pass preconstructed graphreader to connectivity map #3046
    • CHANGED: ci: Skip Win CI runs for irrelevant files #3014
    • ADDED: Allow configuration-driven default speed assignment based on edge properties #3055
    • CHANGED: Use std::shared_ptr in case if ENABLE_THREAD_SAFE_TILE_REF_COUNT is ON. #3067
    • CHANGED: Reduce stop impact when driving in parking lots #3051
    • ADDED: Added another through route test #3074
    • ADDED: Adds incident-length to metadata proto #3083
    • ADDED: Do not penalize gates that have allowed access #3078
    • ADDED: Added missing k/v pairs to taginfo.json. Updated PR template. #3101
    • CHANGED: Serialize isochrone 'contour' properties as floating point so they match user supplied value #3078
    • NIT: Enables compiler warnings as errors in midgard module #3104
    • CHANGED: Check all tiles for nullptr that reads from graphreader to avoid fails in case tiles might be missing. #3065

Release Date: 2021-04-21 Valhalla 3.1.1

  • Removed

    • REMOVED: The tossing of private roads in #1960 was too aggressive and resulted in a lot of no routes. Reverted this logic. #2934
    • REMOVED: stray references to node bindings #3012
  • Bug Fix

    • FIXED: Fix compression_utils.cc::inflate(...) throw - make it catchable #2839
    • FIXED: Fix compiler errors if HAVE_HTTP not enabled #2807
    • FIXED: Fix alternate route serialization #2811
    • FIXED: Store restrictions in the right tile #2781
    • FIXED: Failing to write tiles because of racing directory creation #2810
    • FIXED: Regression in stopping expansion on transitions down in time-dependent routes #2815
    • FIXED: Fix crash in loki when trace_route is called with 2 locations. #2817
    • FIXED: Mark the restriction start and end as via ways to fix IsBridgingEdge function in Bidirectional Astar #2796
    • FIXED: Dont add predictive traffic to the tile if it's empty #2826
    • FIXED: Fix logic bidirectional astar to avoid double u-turns and extra detours #2802
    • FIXED: Re-enable transition cost for motorcycle profile #2837
    • FIXED: Increase limits for timedep_* algorithms. Split track_factor into edge factor and transition penalty #2845
    • FIXED: Loki was looking up the wrong costing enum for avoids #2856
    • FIXED: Fix way_ids -> graph_ids conversion for complex restrictions: handle cases when a way is split into multiple edges #2848
    • FIXED: Honor access mode while matching OSMRestriction with the graph #2849
    • FIXED: Ensure route summaries are unique among all returned route/legs #2874
    • FIXED: Fix compilation errors when boost < 1.68 and libprotobuf < 3.6 #2878
    • FIXED: Allow u-turns at no-access barriers when forced by heading #2875
    • FIXED: Fixed "No route found" error in case of multipoint request with locations near low reachability edges #2914
    • FIXED: Python bindings installation #2751
    • FIXED: Skip bindings if there's no Python development version #2893
    • FIXED: Use CMakes built-in Python variables to configure installation #2931
    • FIXED: Sometimes emitting zero-length route geometry when traffic splits edge twice #2943
    • FIXED: Fix map-match segfault when gps-points project very near a node #2946
    • FIXED: Use kServiceRoad edges while searching for ferry connection #2933
    • FIXED: Enhanced logic for IsTurnChannelManeuverCombinable #2952
    • FIXED: Restore compatibility with gcc 6.3.0, libprotobuf 3.0.0, boost v1.62.0 #2953
    • FIXED: Dont abort bidirectional a-star search if only one direction is exhausted #2936
    • FIXED: Fixed missing comma in the scripts/valhalla_build_config #2963
    • FIXED: Reverse and Multimodal Isochrones were returning forward results #2967
    • FIXED: Map-match fix for first gps-point being exactly equal to street shape-point #2977
    • FIXED: Add missing GEOS:GEOS dep to mjolnir target #2901
    • FIXED: Allow expansion into a region when not_thru_pruning is false on 2nd pass #2978
    • FIXED: Fix polygon area calculation: use Shoelace formula #2927
    • FIXED: Isochrone: orient segments/rings according to the right-hand rule #2932
    • FIXED: Parsenodes fix: check if index is out-of-bound first #2984
    • FIXED: Fix for unique-summary logic #2996
    • FIXED: Isochrone: handle origin edges properly #2990
    • FIXED: Annotations fail with returning NaN speed when the same point is duplicated in route geometry #2992
    • FIXED: Fix run_with_server.py to work on macOS #3003
    • FIXED: Removed unexpected maneuvers at sharp bends #2968
    • FIXED: Remove large number formatting for non-US countries #3015
    • FIXED: Odin undefined behaviour: handle case when xedgeuse is not initialized #3020
  • Enhancement

    • Pedestrian crossing should be a separate TripLeg_Use #2950
    • CHANGED: Azure uses ninja as generator #2779
    • ADDED: Support for date_time type invariant for map matching #2712
    • ADDED: Add Bulgarian locale #2825
    • FIXED: No need for write permissions on tarball indices #2822
    • ADDED: nit: Links debug build with lld #2813
    • ADDED: Add costing option use_living_streets to avoid or favor living streets in route. #2788
    • CHANGED: Do not allocate mapped_cache vector in skadi when no elevation source is provided. #2841
    • ADDED: avoid_polygons logic #2750
    • ADDED: Added support for destination for conditional access restrictions #2857
    • CHANGED: Large sequences are now merge sorted which can be dramatically faster with certain hardware configurations. This is especially useful in speeding up the earlier stages (parsing, graph construction) of tile building #2850
    • CHANGED: When creating the initial graph edges by setting at which nodes they start and end, first mark the indices of those nodes in another sequence and then sort them by edgeid so that we can do the setting of start and end node sequentially in the edges file. This is much more efficient on certain hardware configurations #2851
    • CHANGED: Use relative cost threshold to extend search in bidirectional astar in order to find more alternates #2868
    • CHANGED: Throw an exception if directory does not exist when building traffic extract #2871
    • CHANGED: Support for ignoring multiple consecutive closures at start/end locations #2846
    • ADDED: Added sac_scale to trace_attributes output and locate edge output #2818
    • ADDED: Ukrainian language translations #2882
    • ADDED: Add support for closure annotations #2816
    • ADDED: Add costing option service_factor. Implement possibility to avoid or favor generic service roads in route for all costing options. #2870
    • CHANGED: Reduce stop impact cost when flow data is present #2891
    • CHANGED: Update visual compare script #2803
    • CHANGED: Service roads are not penalized for pedestrian costing by default. #2898
    • ADDED: Add complex mandatory restrictions support #2766
    • ADDED: Status endpoint for future status info and health checking of running service #2907
    • ADDED: Add min_level argument to valhalla_ways_to_edges #2918
    • ADDED: Adding ability to store the roundabout_exit_turn_degree to the maneuver #2941
    • ADDED: Penalize pencil point uturns and uturns at short internal edges. Note: motorcycle and motor_scooter models do not penalize on short internal edges. No new uturn penalty logic has been added to the pedestrian and bicycle costing models. #2944
    • CHANGED: Allow config object to be passed-in to path algorithms #2949
    • CHANGED: Allow disabling Werror
    • ADDED: Add ability to build Valhalla modules as STATIC libraries. #2957
    • NIT: Enables compiler warnings in part of mjolnir module #2922
    • CHANGED: Refactor isochrone/reachability forward/reverse search to reduce code repetition #2969
    • ADDED: Set the roundabout exit shape index when we are collapsing the roundabout maneuvers. #2975
    • CHANGED: Penalized closed edges if using them at start/end locations #2964
    • ADDED: Add shoulder to trace_attributes output. #2980
    • CHANGED: Refactor bidirectional astar forward/reverse search to reduce code repetition #2970
    • CHANGED: Factor for service roads is 1.0 by default. #2988
    • ADDED: Support for conditionally skipping CI runs #2986
    • ADDED: Add instructions for building valhalla on arm64 macbook #2997
    • NIT: Enables compiler warnings in part of mjolnir module #2995
    • CHANGED: nit(rename): Renames the encoded live speed properties #2998
    • ADDED: ci: Vendors the codecov script #3002
    • CHANGED: Allow None build type #3005
    • CHANGED: ci: Build Python bindings for Mac OS #3013

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 propagated 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 available) #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 maneuver. #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: Added unit test for BuildAdminFromPBF() to test GEOS 3.9 update. #2787
    • 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 commercial 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 serialized 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 additional 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. Adds about a 2% performance penalty 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 #2734
    • 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

Release Date: 2019-11-21 Valhalla 3.0.9

  • Bug Fix

    • FIXED: Changed reachability computation to consider both directions of travel wrt candidate edges #1965
    • FIXED: toss ways where access=private and highway=service and service != driveway. #1960
    • FIXED: Fix search_cutoff check in loki correlate_node. #2023
    • FIXED: Computes notion of a deadend at runtime in bidirectional a-star which fixes no-route with a complicated u-turn. #1982
    • FIXED: Fix a bug with heading filter at nodes. #2058
    • FIXED: Bug in map matching continuity checking such that continuity must only be in the forward direction. #2029
    • FIXED: Allow setting the time for map matching paths such that the time is used for speed lookup. #2030
    • FIXED: Don't use density factor for transition cost when user specified flag disables flow speeds. #2048
    • FIXED: Map matching trace_route output now allows for discontinuities in the match though multi match is not supported in valhalla route output. #2049
    • FIXED: Allows routes with no time specified to use time conditional edges and restrictions with a flag denoting as much #2055
    • FIXED: Fixed a bug with 'current' time type map matches. #2060
    • FIXED: Fixed a bug with time dependent expansion in which the expansion distance heuristic was not being used. #2064
  • Enhancement

    • ADDED: Establish pinpoint test pattern #1969
    • ADDED: Suppress relative direction in ramp/exit instructions if it matches driving side of street #1990
    • ADDED: Added relative direction to the merge maneuver #1989
    • ADDED: Refactor costing to better handle multiple speed datasources #2026
    • ADDED: Better usability of curl for fetching tiles on the fly #2026
    • ADDED: LRU cache scheme for tile storage #2026
    • ADDED: GraphTile size check #2026
    • ADDED: Pick more sane values for highway and toll avoidance #2026
    • ADDED: Refactor adding predicted speed info to speed up process #2026
    • ADDED: Allow selecting speed data sources at request time #2026
    • ADDED: Allow disabling certain neighbors in connectivity map #2026
    • ADDED: Allows routes with time-restricted edges if no time specified and notes restriction in response #1992
    • ADDED: Runtime deadend detection to timedependent a-star. #2059

Release Date: 2019-09-06 Valhalla 3.0.8

  • Bug Fix

    • FIXED: Added logic to detect if user is to merge to the left or right #1892
    • FIXED: Overriding the destination_only flag when reclassifying ferries; Also penalizing ferries with a 5 min. penalty in the cost to allow us to avoid destination_only the majority of the time except when it is necessary. #1895
    • FIXED: Suppress forks at motorway junctions and intersecting service roads #1909
    • FIXED: Enhanced fork assignment logic #1912
    • FIXED: Added logic to fall back to return country poly if no state and updated lua for Metro Manila and Ireland #1910
    • FIXED: Added missing motorway fork instruction #1914
    • FIXED: Use begin street name for osrm compat mode #1916
    • FIXED: Added logic to fix missing highway cardinal directions in the US #1917
    • FIXED: Handle forward traversable significant road class intersecting edges #1928
    • FIXED: Fixed bug with shape trimming that impacted Uturns at Via locations. #1935
    • FIXED: Dive bomb updates. Updated default speeds for urban areas based on roadclass for the enhancer. Also, updated default speeds based on roadclass in lua. Fixed an issue where we were subtracting 1 from uint32_t when 0 for stop impact. Updated reclassify link logic to allow residential roads to be added to the tree, but we only downgrade the links to tertiary. Updated TransitionCost functions to add 1.5 to the turncost when transitioning from a ramp to a non ramp and vice versa. Also, added 0.5f to the turncost if the edge is a roundabout. #1931
  • Enhancement

    • ADDED: Caching url fetched tiles to disk #1887
    • ADDED: filesystem::remove_all #1887
    • ADDED: Minimum enclosing bounding box tool #1887
    • ADDED: Use constrained flow speeds in bidirectional_astar.cc #1907
    • ADDED: Bike Share Stations are now in the graph which should set us up to do multimodal walk/bike scenarios #1852

Release Date: 2019-7-18 Valhalla 3.0.7

  • Bug Fix
    • FIXED: Fix pedestrian fork #1886

Release Date: 2019-7-15 Valhalla 3.0.6

  • Bug Fix

    • FIXED: Admin name changes. #1853 Ref: #1854
    • FIXED: valhalla_add_predicted_traffic was overcommitted while gathering stats. Added a clear. #1857
    • FIXED: regression in map matching when moving to valhalla v3.0.0 #1863
    • FIXED: last step shape in osrm serializer should be 2 of the same point #1867
    • FIXED: Shape trimming at the beginning and ending of the route to not be degenerate #1876
    • FIXED: Duplicate waypoints in osrm serializer #1880
    • FIXED: Updates for heading precision #1881
    • FIXED: Map matching allowed untraversable edges at start of route #1884
  • Enhancement

    • ADDED: Use the same protobuf object the entire way through the request process #1837
    • ADDED: Enhanced turn lane processing #1859
    • ADDED: Add global_synchronized_cache in valhalla_build_config #1851

Release Date: 2019-06-04 Valhalla 3.0.5

  • Bug Fix

    • FIXED: Protect against unnamed rotaries and routes that end in roundabouts not turning off rotary logic #1840
  • Enhancement

    • ADDED: Add turn lane info at maneuver point #1830

Release Date: 2019-05-31 Valhalla 3.0.4

  • Bug Fix
    • FIXED: Improved logic to decide between bear vs. continue #1798
    • FIXED: Bicycle costing allows use of roads with all surface values, but with a penalty based on bicycle type. However, the edge filter totally disallows bad surfaces for some bicycle types, creating situations where reroutes fail if a rider uses a road with a poor surface. #1800
    • FIXED: Moved complex restrictions building to before validate. #1805
    • FIXED: Fix bicycle edge filter when avoid_bad_surfaces = 1.0 #1806
    • FIXED: Replace the EnhancedTripPath class inheritance with aggregation #1807
    • FIXED: Replace the old timezone shape zip file every time valhalla_build_timezones is ran #1817
    • FIXED: Don't use island snapped edge candidates (from disconnected components or low reach edges) when we rejected other high reachability edges that were closer #1835

Release Date: 2019-05-08 Valhalla 3.0.3

  • Bug Fix

    • FIXED: Fixed a rare loop condition in route matcher (edge walking to match a trace).
    • FIXED: Fixed VACUUM ANALYZE syntax issue. #1704
    • FIXED: Fixed the osrm maneuver type when a maneuver has the to_stay_on attribute set. #1714
    • FIXED: Fixed osrm compatibility mode attributes. #1716
    • FIXED: Fixed rotary/roundabout issues in Valhalla OSRM compatibility. #1727
    • FIXED: Fixed the destinations assignment for exit names in OSRM compatibility mode. #1732
    • FIXED: Enhance merge maneuver type assignment. #1735
    • FIXED: Fixed fork assignments and on ramps for OSRM compatibility mode. #1738
    • FIXED: Fixed cardinal direction on reference names when forward/backward tag is present on relations. Fixes singly digitized roads with opposing directional modifiers. #1741
    • FIXED: Fixed fork assignment and narrative logic when a highway ends and splits into multiple ramps. #1742
    • FIXED: Do not use any avoid edges as origin or destination of a route, matrix, or isochrone. #1745
    • FIXED: Add leg summary and remove unused hint attribute for OSRM compatibility mode. #1753
    • FIXED: Improvements for pedestrian forks, pedestrian roundabouts, and continue maneuvers. #1768
    • FIXED: Added simplified overview for OSRM response and added use_toll logic back to truck costing. #1765
    • FIXED: temp fix for location distance bug #1774
    • FIXED: Fix pedestrian routes using walkway_factor #1780
    • FIXED: Update the begin and end heading of short edges based on use #1783
    • FIXED: GraphReader::AreEdgesConnected update. If transition count == 0 return false and do not call transition function. #1786
    • FIXED: Only edge candidates that were used in the path are send to serializer: #1788
    • FIXED: Added logic to prevent the removal of a destination maneuver when ending on an internal edge #1792
    • FIXED: Fixed instructions when starting on an internal edge #1796
  • Enhancement

    • Add the ability to run valhalla_build_tiles in stages. Specify the begin_stage and end_stage as command line options. Also cleans up temporary files as the last stage in the pipeline.
    • Add remove to filesystem namespace. #1752
    • Add TaxiCost into auto costing options.
    • Add preferred_side to allow per-location filtering of edges based on the side of the road the location is on and the driving side for that locale.
    • Slightly decreased the internal side-walk factor to .90f to favor roads with attached sidewalks. This impacts roads that have added sidewalk:left, sidewalk:right or sidewalk:both OSM tags (these become attributes on each directedEdge). The user can then avoid/penalize dedicated sidewalks and walkways, when they increase the walkway_factor. Since we slightly decreased the sidewalk_factor internally and only favor sidewalks if use is tagged as sidewalk_left or sidewalk_right, we should tend to route on roads with attached sidewalks rather than separate/dedicated sidewalks, allowing for more road names to be called out since these are labeled more.
    • Add via and break_through location types #1737
    • Add street_side_tolerance and search_cutoff to input location #1777
    • Return the Valhalla error Path distance exceeds the max distance limit for OSRM responses when the route is greater than the service limits. #1781

Release Date: 2019-01-14 Valhalla 3.0.2

  • Bug Fix
    • FIXED: Transit update - fix dow and exception when after midnight trips are normalized #1682
    • FIXED: valhalla_convert_transit segfault - GraphTileBuilder has null GraphTileHeader #1683
    • FIXED: Fix crash for trace_route with osrm serialization. Was passing shape rather than locations to the waypoint method.
    • FIXED: Properly set driving_side based on data set in TripPath.
    • FIXED: A bad bicycle route exposed an issue with bidirectional A* when the origin and destination edges are connected. Use A* in these cases to avoid requiring a high cost threshold in BD A*.
    • FIXED: x86 and x64 data compatibility was fixed as the structures weren't aligned.
    • FIXED: x86 tests were failing due mostly to floating point issues and the aforementioned structure misalignment.
  • Enhancement
    • Add a durations list (delta time between each pair of trace points), a begin_time and a use_timestamp flag to trace_route requests. This allows using the input trace timestamps or durations plus the begin_time to compute elapsed time at each edge in the matched path (rather than using costing methods).
    • Add support for polyline5 encoding for OSRM formatted output.
  • Note
    • Isochrones and openlr are both noted as not working with release builds for x86 (32bit) platforms. We'll look at getting this fixed in a future release

Release Date: 2018-11-21 Valhalla 3.0.1

  • Bug Fix
    • FIXED: Fixed a rare, but serious bug with bicycle costing. ferry_factor_ in bicycle costing shadowed the data member in the base dynamic cost class, leading to an uninitialized variable. Occasionally, this would lead to negative costs which caused failures. #1663
    • FIXED: Fixed use of units in OSRM compatibility mode. #1662

Release Date: 2018-11-21 Valhalla 3.0.0

  • NOTE
    • This release changes the Valhalla graph tile formats to make the tile data more efficient and flexible. Tile data is incompatible with Valhalla 2.x builds, and code for 3.x is incompatible with data built for Valahalla 2.x versions. Valhalla tile sizes are slightly smaller (for datasets using elevation information the size savings is over 10%). In addition, there is increased flexibility for creating different variants of tiles to support different applications (e.g. bicycle only, or driving only).
  • Enhancement
    • Remove the use of DirectedEdge for transitions between nodes on different hierarchy levels. A new structure, NodeTransition, is now used to transition to nodes on different hierarchy level. This saves space since only the end node GraphId is needed for the transitions (and DirectedEdge is a large data structure).
    • Change the NodeInfo lat,lon to use an offset from the tile base lat,lon. This potentially allows higher precision than using float, but more importantly saves space and allows support for NodeTransitions as well as spare for future growth.
    • Remove the EdgeElevation structure and max grade information into DirectedEdge and mean elevation into EdgeInfo. This saves space.
    • Reduce wayid to 32 bits. This allows sufficient growth when using OpenStreetMap data and frees space in EdgeInfo (allows moving speed limit and mean elevation from other structures).
    • Move name consistency from NodeInfo to DirectedEdge. This allows a more efficient lookup of name consistency.
    • Update all path algorithms to use NodeTransition logic rather than special DirectedEdge transition types. This simplifies PathAlgorithms slightly and removes some conditional logic.
    • Add an optional GraphFilter stage to tile building pipeline. This allows removal of edges and nodes based on access. This allows bicycle only, pedestrian only, or driving only datasets (or combinations) to be created - allowing smaller datasets for special purpose applications.
  • Deprecate
    • Valhalla 3.0 removes support for OSMLR.

Release Date: 2018-11-20 Valhalla 2.7.2

  • Enhancement
    • UPDATED: Added a configuration variable for max_timedep_distance. This is used in selecting the path algorithm and provides the maximum distance between locations when choosing a time dependent path algorithm (other than multi modal). Above this distance, bidirectional A* is used with no time dependencies.
    • UPDATED: Remove transition edges from priority queue in Multimodal methods.
    • UPDATED: Fully implement street names and exit signs with ability to identify route numbers. #1635
  • Bug Fix
    • FIXED: A timed-turned restriction should not be applied when a non-timed route is executed. #1615
    • FIXED: Changed unordered_map to unordered_multimap for polys. Poly map can contain the same key but different multi-polygons. For example, islands for a country or timezone polygons for a country.
    • FIXED: Fixed timezone db issue where TZIDs did not exist in the Howard Hinnant date time db that is used in the date_time class for tz indexes. Added logic to create aliases for TZIDs based on https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
    • FIXED: Fixed the ramp turn modifiers for osrm compat #1569
    • FIXED: Fixed the step geometry when using the osrm compat mode #1571
    • FIXED: Fixed a data creation bug causing issues with A* routes ending on loops. #1576
    • FIXED: Fixed an issue with a bad route where destination only was present. Was due to thresholds in bidirectional A*. Changed threshold to be cost based rather than number of iterations). #1586
    • FIXED: Fixed an issue with destination only (private) roads being used in bicycle routes. Centralized some "base" transition cost logic in the base DynamicCost class. #1587
    • FIXED: Remove extraneous ramp maneuvers #1657

Release Date: 2018-10-02 Valhalla 2.7.1

  • Enhancement
    • UPDATED: Added date time support to forward and reverse isochrones. Add speed lookup (predicted speeds and/or free-flow or constrained flow speed) if date_time is present.
    • UPDATED: Add timezone checks to multimodal routes and isochrones (updates localtime if the path crosses into a timezone different than the start location).
  • Data Producer Update
    • UPDATED: Removed boost date time support from transit. Now using the Howard Hinnant date library.
  • Bug Fix
    • FIXED: Fixed a bug with shortcuts that leads to inconsistent routes depending on whether shortcuts are taken, different origins can lead to different paths near the destination. This fix also improves performance on long routes and matrices.
    • FIXED: We were getting inconsistent results between departing at current date/time vs entering the current date/time. This issue is due to the fact that the iso_date_time function returns the full iso date_time with the timezone offset (e.g., 2018-09-27T10:23-07:00 vs 2018-09-27T10:23). When we refactored the date_time code to use the new Howard Hinnant date library, we introduced this bug.
    • FIXED: Increased the threshold in CostMatrix to address null time and distance values occurring for truck costing with locations near the max distance.

Release Date: 2018-09-13 Valhalla 2.7.0

  • Enhancement
    • UPDATED: Refactor to use the pbf options instead of the ptree config #1428 This completes #1357
    • UPDATED: Removed the boost/date_time dependency from baldr and odin. We added the Howard Hinnant date and time library as a submodule. #1494
    • UPDATED: Fixed 'Drvie' typo #1505 This completes #1504
    • UPDATED: Optimizations of GetSpeed for predicted speeds #1490
    • UPDATED: Isotile optimizations
    • UPDATED: Added stats to predictive traffic logging
    • UPDATED: resample_polyline - Breaks the polyline into equal length segments at a sample distance near the resolution. Break out of the loop through polyline points once we reach the specified number of samplesthen append the last polyline point.
    • UPDATED: added android logging and uses a shared graph reader
    • UPDATED: Do not run a second pass on long pedestrian routes that include a ferry (but succeed on first pass). This is a performance fix. Long pedestrian routes with A star factor based on ferry speed end up being very inefficient.
  • Bug Fix
    • FIXED: A* destination only
    • FIXED: Fixed through locations weren't honored #1449

Release Date: 2018-08-02 Valhalla 3.0.0-rc.4

  • Node Bindings
    • UPDATED: add some worker pool handling #1467

Release Date: 2018-08-02 Valhalla 3.0.0-rc.3

  • Node Bindings
    • UPDATED: replaced N-API with node-addon-api wrapper and made the actor functions asynchronous #1457

Release Date: 2018-07-24 Valhalla 3.0.0-rc.2

  • Node Bindings
    • FIXED: turn on the autocleanup functionality for the actor object. #1439

Release Date: 2018-07-16 Valhalla 3.0.0-rc.1

  • Enhancement
    • ADDED: exposed the rest of the actions to the node bindings and added tests. #1415

Release Date: 2018-07-12 Valhalla 3.0.0-alpha.1

NOTE: There was already a small package named valhalla on the npm registry, only published up to version 0.0.3. The team at npm has transferred the package to us, but would like us to publish something to it ASAP to prove our stake in it. Though the bindings do not have all of the actor functionality exposed yet (just route), we are going to publish an alpha release of 3.0.0 to get something up on npm.

  • Infrastructure:
    • ADDED: add in time dependent algorithms if the distance between locations is less than 500km.
    • ADDED: TurnLanes to indicate turning lanes at the end of a directed edge.
    • ADDED: Added PredictedSpeeds to Valhalla tiles and logic to compute speed based on predictive speed profiles.
  • Data Producer Update
    • ADDED: is_route_num flag was added to Sign records. Set this to true if the exit sign comes from a route number/ref.
    • CHANGED: Lower speeds on driveways, drive-thru, and parking aisle. Set destination only flag for drive thru use.
    • ADDED: Initial implementation of turn lanes. Bug Fix
    • CHANGED: Fix destination only penalty for A* and time dependent cases.
    • CHANGED: Use the distance from GetOffsetForHeading, based on road classification and road use (e.g. ramp, turn channel, etc.), within tangent_angle function.
  • Map Matching
    • FIXED: Fixed trace_route edge_walk server abort #1365
  • Enhancement
    • ADDED: Added post process for updating free and constrained speeds in the directed edges.
    • UPDATED: Parse the json request once and store in a protocol buffer to pass along the pipeline. This completed the first portion of #1357
    • UPDATED: Changed the shape_match attribute from a string to an enum. Fixes #1376
    • ADDED: Node bindings for route #1341
    • UPDATED: Use a non-linear use_highways factor (to more heavily penalize highways as use_highways approaches 0).

Release Date: 2018-07-15 Valhalla 2.6.3

  • API:
    • FIXED: Use a non-linear use_highways factor (to more heavily penalize highways as use_highways approaches 0).
    • FIXED: Fixed the highway_factor when use_highways < 0.5.
    • ENHANCEMENT: Added logic to modulate the surface factor based on use_trails.
    • ADDED: New customer test requests for motorcycle costing.

Release Date: 2018-06-28 Valhalla 2.6.2

  • Data Producer Update
    • FIXED: Complex restriction sorting bug. Check of has_dt in ComplexRestrictionBuilder::operator==.
  • API:
    • FIXED: Fixed CostFactory convenience method that registers costing models
    • ADDED: Added use_tolls into motorcycle costing options

Release Date: 2018-05-28 Valhalla 2.6.0

  • Infrastructure:
    • CHANGED: Update cmake buildsystem to replace autoconf #1272
  • API:
    • CHANGED: Move trace_options parsing to map matcher factory #1260
    • ADDED: New costing method for AutoDataFix #1283

Release Date: 2018-05-21 Valhalla 2.5.0

  • Infrastructure