Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Moves incident serializer logic into a generic serializer #2621

Merged
merged 9 commits into from Sep 30, 2020

Conversation

purew
Copy link
Contributor

@purew purew commented Sep 30, 2020

No description provided.

danpat
danpat previously approved these changes Sep 30, 2020
@purew purew merged commit 2e81e7a into master Sep 30, 2020
@purew purew deleted the common-serializer branch September 30, 2020 17:53
acannistra added a commit to trailbehind/valhalla that referenced this pull request Jan 5, 2021
* [Do Not Merge] New Urban Area Flag (valhalla#2522)

* Added new urban flag logic to the node and is set to true if within city boundaries.  This is set on the node instead of the edge due to the average logic in FormTilesInNewLevel function in the HierarchyBuilder.
* Added is_urban flag to response in osrm serializer within intersections
* Added use_urban_tag to the config

* Multicue enter roundabout (valhalla#2556)

* Enable multicue for entering roundabout

* Updated to not have multicue for exit then enter to match previous behavior

* Added another eu roundabout test

* Fixed multi-cue enter roundabout test

* Added gurka test to verify enter roundabout multicue

* fixed filename

* updated changelog for valhalla#2556

* nit: Adds missing incident-string (valhalla#2564)

* nit: Adds missing incident-string

* nit: Enables -Wall -Werror on a per-file basis

for proto_conversions.cc

* Only run Werr/Wall on UNIX

* valhalla_build_tiles: Add build manifest and separate edge construction stage (valhalla#2511)

* This PR refactors `valhalla_build_tiles` to make it easier to partition and parallelize tile
construction on a batch processing system. To do so, it pulls out edge construction into a new
`constructedges` phase. `constructedges` constructs edges on a global dataset, and also emits a
manifest file of Valhalla tile IDs that can be partitioned and be used to process in parallel during
the build phase. For more about the tile manifest, see comment in `mjolnir/graphbuilder.h`.

This update is intended _not_ to break downstream users of these tools. For example,
`valhalla_build_tiles --start build --end build ...` will create a tile manifest if one does not
already exist in the expected location.

/cc @gknisely @kevinkreiser @merkispavel

* Update tests.

* Updating tests.

* Move manifest into util header

* Test coverage

* Unit test coverage.

* Updated tests

* Actual round trip test.

* Test tile build.

* Cleanup and fix tests.

* Fix formatting issue.

* Code review feedback.

* Future TODO comment to make constructedges fully required.

* Reduce test running parallelism in build-release-x86.

* Revert "Reduce test running parallelism in build-release-x86."

This reverts commit 8279515.

* Update util_mjolnir.cc

* Update graphbuilder.cc

Co-authored-by: Pavel Merkis <pavel.merkis@mapbox.com>
Co-authored-by: Kevin Kreiser <kevinkreiser@gmail.com>

* set conccurency = 1 (valhalla#2569)

* Ensure edge.is_urban is set for serializing is_urban (valhalla#2568)

* Ensure has_density is set for serializing is_urban

* Adjust to use a new edge.is_urban filter attribute

* Remove leftover print

* Fix test

* Cleanup unused variable

* Update changelog

* Nit minor compiler warnings (valhalla#2566)

* Data tools build fix (valhalla#2571)

* benchmarks require ENABLE_DATA_TOOLS to be ON.

* Move several tests into ENABLE_DATA_TOOLS section that require utrecht tiles.

* 2544 remove appveyor (valhalla#2550)

* remove redundant appveyor build config

* add changelog entry

* Azure cache (valhalla#2567)

* [ci skip] vcpkg needs to be installed of course..

* try caching azure

* [ci skip] minor change

* [ci skip] single/double quote mixup

* why noooot... works exactly like that in MS STL repo.. back to old script

* see if at least x86 hits the cache. guess triplet should go into the cache key as well, maybe x64 will fail

* triplet in cache key; only install vcpkg and deps if cache wasn't hit

* add to CHANGELOG

* typo & put changelog entry at end of list

* reset order for previous PRs

* Add missing Use (kLivingStreet) to fix exception thrown when trace logging is enabled. (valhalla#2583)

* Add Costing Options: ingore_restrictions, ignore_oneways, ignore_access (valhalla#2469)

* wip restriction matching

* fix unit test in routing.cc

* using cost options instead of option

* change log

* add tests for restriction ignoring in costing options for both matching and routing

* for map matching we want to force real map match rather than fast in gurka for now. later we can allow the option

* do speed types in the same place

* clangformat

* changes on code review

* re-ordering he parameters

* conflicts

* renumber

* add ignores for access and for direction of travel along an edge

* Use ignore_restrictions/oneway/access in costing logic

* prove that ignoring oneways works for cars

* Use 'ignore constraints' options in DynamicCost::GetEdgeFilter method

* Test ignore_access/oneways costring options

* Use 'ignore restriction' options for node filtering; add tests

* Move some shared code from costing classes into DynamicCost

* Don't check restrictions when they are none

Co-authored-by: Buro Mookerji <buro.mookerji@mapbox.com>
Co-authored-by: Kevin Kreiser <kevinkreiser@gmail.com>
Co-authored-by: Henadzi Klimuk <genadz.klimuk@mapbox.com>

* New Rest/Service Areas Use (valhalla#2533)

* Added Rest and Service Areas to Edge Uses in the tiles
* Added mjolnir data_processing config option called use_rest_areas, defaulting to false
* Will be adding serialization code for future PR

Co-authored-by: Daniel Paz-Soldan <daniel.pazsoldan@gmail.com>
Co-authored-by: Greg Knisely <greg@mapzen.com>

* New Toll Gantry NodeType (valhalla#2532)

* Add toll booths and gantry node types in tiles

* Add Flexibility to Remove Use of AdminDB (valhalla#2579)

* Added logic to allow capability to disable admin db and to get the admin iso codes from tiles instead; Also added test_admin gurka

Co-authored-by: Greg Knisely <greg.knisely@mapbox.com>

* simplify triplegbuilder::build (valhalla#2576)

* code motion to simplify triplegbuilder::build

* move transit trip leg builder guts to private header

* remove special case for single edge route and handle shape accordingly

* add single edge routes and add ability to store raw json

* Adds parsing of OpenLr type PointAlongLine (valhalla#2565)

* WIP Parsing PointAlongLine openlr

* Enables Wall/Werr on test/openlr.cc

* Tests passing

* Adds test of Orientation and SideOfRoad

* More Wall/Werr

* Renames LineLocation to OpenLr

* Trailing comma

* fmt

* missing initializer

* Less warnings

* virtual destructor

* Updates changelog

* Attempts cast to a bitfield

* Uses bitfields instead of manual bitoperations

* Cleanup

* Short comment

* Constexpr all the things

* Fixing nits

* fix test from using the 60th minute of the hour, which is obviously bogus (valhalla#2596)

* Add a TrailType to the Maneuver class. This will allow distinguishing named (valhalla#2595)

cycleways/walkways/MTB trails from unnamed (in addition to just identifying
unnamed trails). This can lead to more complex logic when transitioning
between trails of different types and with different naming (e.g. named vs.
unnamed).

* nit: Fixes some compiler warnings (valhalla#2599)

* nix: Fixes some compiler warnings

* More cpp, less c

* Review changes

* nit: Moves kInvalidLabel to graph_constants.h for access in EdgeLabel

* Update serialization for rest_stop and admins (valhalla#2594)

* Update serialization for rest_stop and admins

* Move to iso.h to tyr, use pragma once

* Fix path

* Wrong directory

* Move iso2_to_iso3 into serializer so we don't grow the public interface

* Update CHANGELOG.md

* util updates.  (valhalla#2601)

* fixed a bug where the temp files were not getting read in if you started with the construct edges or build phase.

* udpated.

* nit: Try to satisfy CI (valhalla#2602)

* Support restricted class in intersection annotations (valhalla#2589)

* Support restricted class in intersection annotations

Added support for restricted road class in intersection annotations.
Fixes valhalla#2588

* update changelog

* Added more tests

* Added trail type trace (valhalla#2606)

* Added trail type trace

* updated changelog for valhalla#2606

* Use live traffic in edge filter (valhalla#2597)

* Replace 'EdgeFilter' functor with virtual method

* Check live speed in edge filter

* Add gurka tests to check waypoints on closures

* Update changelog. Fix code style

* Remove outdated 'GetNodeFilter' method; use 'Allowed' instead

* Review fixes

* Small optimizations fix

* Move 'IsClosedDueToTraffic' in 'if' statement

* Use GraphId::IsValid() method  explicitly

* Remove superfluous const qualifier from function return signature (valhalla#2609)

Returning by const-value prevents rvalue moves (C++11 and higher), which
can degrade performance, and offer almost no benefit. Removed few
instances of it from odin/signs module.

Fixes valhalla#2387

* Update fr-FR.json (valhalla#2605)

* Update fr-FR.json

* Fix spacing

* Update changelog

* Fixes

* Lowercase ferry

* Adding Tunnel Names to Intersection Object (valhalla#2608)

* added tunnel name accessor functions and setting tunnel name in pbfgraphparser

* added bool only_tagged_names to GetNames and bool include_tagged_names GetNamesAndTypes.  Also added the function GetTaggedNamesAndTypes() to retrun the tagged name and it's type. Defaults to false.

* updated AddEdgeInfo with new param tagged_names.  tagged_names are added to the names now and the ni.tagged_ bit is set now.

* added tests for all new/updated functions


Co-authored-by: Greg Knisely <greg.knisely@mapbox.com>
Co-authored-by: Daniel Paz-Soldan <daniel.pazsoldan@gmail.com>

* Update CHANGELOG.md

* Internal maneuver placement (valhalla#2600)

* Initial internal maneuver placement update

* Updated the straight internal upper and lower bounds
Always copy turn lanes

* Added the test_instructions_internal_intersection gurka test

* Added valhalla#2600 to changelog

* Extended the gurka test capability - add the expect_maneuver_begin_path_indexes method
Added more internal tests
- turn lanes
- start and end on internal

* moved valhalla#2600 to bottom of the changelog

Co-authored-by: Daniel Paz-Soldan <daniel.pazsoldan@gmail.com>

* nit(GraphTile::FileSuffix): Allows specifying suffix (valhalla#2611)

* Complete rework of the Russian localization (valhalla#2593)

* Complete rework of the Russian localization

* Changed the test for Russian localization to pass

* Include Russian localization improvement into CHANGELOG

* fix the typo in Russian localization

Co-authored-by: Kevin Kreiser <kevinkreiser@gmail.com>
Co-authored-by: Daniel Paz-Soldan <daniel.pazsoldan@gmail.com>

* Complete fr-FR.json locale (valhalla#2614)

* Complete fr-FR.json locale

* Update changelog

* Add Incidents to TripLeg (valhalla#2610)

* move intersecting edges tripleg building into private header

* failing test for false nodes at incidents

* try to go a little bit more down the path of separating incident cutting from the rest of the shape cutting but failed

* ok its not compiling the tests yet but now the initial simplified implementation is done

* all tests passing but the new one

* passing test, now to add more

* fix another test, prepare for more

* more tests

* one test to go!

* code worked, brain couldnt comprehend the test..

* update changelog

* shutup tidy, cleanup test a bit

* oops left scratch code around

* rename loop variable to be more descriptive

* incident_type in the json is redundant, be gone

* add ignore closures option (valhalla#2615)

* add ignore closures option

* just need to fix one traffic test yet

* dont used closed roads in get speed of graphtile

* lint

* remove IDE generated comment

* fix wrong tile bug

* if the speed didnt cover the whole edge use other speed sources to cover the rest (valhalla#2616)

* cowboy superfluous assignment

* More reach fixes (valhalla#2617)

* dont pass tile pointer by reference to enqueue method, let it take copy of the pointer cache, otherwise the filter gets the wrong value in the next loop if the edge leaves the tile in the enqueue method

* add more protections against wrong node/edge lookup on tile

* Defines the incident tile schema and incident metadata (valhalla#2620)

* Defines the incident tile schema and incident metadata

from protobuf schema.

Adopts the triplegbuilder.cc to use this new format.

An incident tile looks like the following due to the sparseness of
incidents. There is an array `edge_to_incidents` which relates
graph-edges to a respective fat `Incident` struct in the `incidents`
array.

```
 message IncidentsTile {
   // Sorted list of edge_ids describing what incidents are attached to an edge_id
   repeated EdgeToIncident edge_to_incidents = 1;
   // Look at `edge_to_incidents` to find how to index this array
   repeated Incident incidents = 2;
 }
```

* Renames proto package

* Renaming EdgeToIncident to IncidentLocation

* Renaming Incident to IncidentMetadata

* fmt

* refactors GetIncidents return type

* debugging

* last unittest, sigsegv

* tests pass

* compiler nit

* Simplify nit

* nit don't do needless work

* Renames the incident protobuf pieces for better clarity

* Remove unnecessary incidents-tile

* More cleanup

* Compiler nits

* Removes unnecessary edge_index in test

* Adds changelog

* Moves incident serializer logic into a generic serializer (valhalla#2621)

* move country code into metadata
* remove name redundancy

Co-authored-by: Kevin Kreiser <kevinkreiser@gmail.com>

* Refactor incident serializer to be reusable by code that doesn't have a TripLeg object (valhalla#2623)

* Incident Loading Singleton (valhalla#2573)

* some ideas around synchronizing incident tiles from disk

* graphreader primes incidents and incident singleton notifies when first run is complete. throws when incidents excpected but cannot be loaded

* darwin_time_t ok..

* add some log infos for testing

* works in changelog mode

* incident singleton is working in both modes

* reenable incidents in route incident test

* dont call singleton if incidents arent enabled

* Only log when the incident watcher is unhealthy. better to serve routes with stale incidents than to fail

* constify incident tile access

* simplify test a bit

* update config

* dont store empty tiles either

* add logs about what mode the watcher thread is configured for

* remove superfluous member variable

* use scoped lock around cache updates and update comment about threading

* newline revert

* Serializes some more properties

* Test serialization of u64 incident ids

* Serialize incident-id as uint64

* dont suicide the background thread, it will LOG if its unhealthy but otherwise what is there to do? better some incident refreshing than nothing

Co-authored-by: Anders Bennehag <anders@bennehag.com>

* add one shot mode to valhalla_service (valhalla#2624)

* add one shot mode to valhalla_service

* Update CHANGELOG.md

* force stderr logger so only desired output goes to terminal

* Update CHANGELOG.md

* Add maneuver.instruction in osrm response (valhalla#2625)

* Add maneuver.instruction in osrm response

* Update changelog

* add support to cross-compile with mingw64 (valhalla#2619)

* compile valhalla lib & TOOLS on fedora's mingw for windows

* format and changelog

* undefine win-specific NOGDI globally and only define inplaces where explicitly needed

* try a github action for mingw build

* [skip ci] run action on PR

* [skip ci] forgot we're inside container where git isn't installed

* [skip ci] CIs are my nemesis..

* trigger all CIs one last time

* revert 466f5fd, MSVC didn't like that change..

* st_stat.st_mtime for mingw as well, introduced with incident singleton PR

* Alternate Route Support (valhalla#2626)

* add alternate routes support in bidirectional a*

Co-authored-by: Daniel Paz-Soldan <daniel.pazsoldan@gmail.com>

* update changelog

Co-authored-by: Daniel Paz-Soldan <daniel.pazsoldan@gmail.com>

* Emit incident ID as a string rather than a numeric value to avoid limits to numeric parsing by some clients. (valhalla#2634)

Co-authored-by: Daniel Patterson <danpat@danpat.net>

* Activate directional turn lanes within step (valhalla#2613)

* Activate directional turn lanes within step

* Rework to use prev/curr/next maneuver

* Add --verbose-lanes options to valhalla_run_route for RAD testing

* Use uint32_t instead of auto, and fix remaining_step_distance calculation

* Fix valhalla_run_route verbose lanes missing last node

* Fix A->G test

* README: Fix CircleCI badge to show status of master branch [ci skip] (valhalla#2638)

* remove notice from 2018 (valhalla#2640)

* remove notice from 2018

removes what was added in 2018 in valhalla@63bfd80
proposed in valhalla#2637 (comment)

disclaimer: I know nothing about Valhalla

* explain why graph tile formats were changed

* Fix all compiler warnings in sif and set to -Werror (valhalla#2642)

* Fix all compiler warnings in sif and set to -Werror

* Update changelog

* Cleanup unused variables

* some more unused params

* More unused params

* Fix unused-params with clang-tidy

Co-authored-by: Anders Bennehag <anders@bennehag.com>

* Fixing some includes  (valhalla#2646)

* Fixing some includes that don't resolve correctly when including Valhalla as a library in another project

* Formatter changes

* Didn't need to change this include after all

* Now the linter wants to put this back

Co-authored-by: John Famiglietti <johnf@wahoofitness.com>

* add file input for one-shot functionality (valhalla#2648)

* add file input for one-shot functionality

* linting

* mild simplifications

Co-authored-by: Kevin Kreiser <kevinkreiser@gmail.com>

* Switch python generator to pybind11 (valhalla#2644)

* try to do something easy with actions

* no clue what im doing

* try a debug build [ci skip] NO_CI

* kick

* [ci skip]

* add pybind11 as submodule

* try pybind on mingw

* one more option

* actions work now; cleaned up a bit and added the other methods

* changelog and format

* add python fix for windows

* remove the gh actions yaml

* PYTHON_BINDINGS=ON in windows CI builds; revert valhalla_run_route change

* for some reason the __init__.py.in wasn't committed

* [ci skip] ***NO_CI*** include the right links

* try to install 32 bit python on runner

* NULL->nullptr; whatever's wrong with mingw CI build.. [ci skip] NO_CI

* slightly better logic for combo win-python

* pull the overloads to the header

* pull the overloads to python.cc

* rename python module to old name

* format

* revert superfluous change

* remove redundant parameter in actor_t helper class

* please don't tell me it's a trailing slash for some messed-up reason

* [ci skip] NO_CI try alternative (& semantically same) syntax

* [ci skip] NO_CI remove python lines, used to work before

* whitespace.. really?

* [ci skip] re-add the python lines to cmake

* resolve win curl issues; add some lines for win support for python

Co-authored-by: Kevin Kreiser <kevinkreiser@gmail.com>

* use OSRM-like turn durations in auto costing (valhalla#2651)

* Implement OSRM-like costing

* Fix unit tests

* per ideas

* faster exp approximation

* lint

* on second thought, how about a lookup table

* seems to have missed a spot

* add back old one..

* clean up naming a bit and tidy lint

* Fix lint

* dont need roadclass for nodes anymore that was from valhalla v2

* update changelog

* Fix formatting

* Fix cases of removed road class parameter in nodeinfo

* Fix lint

Co-authored-by: Svetlana Bayarovich <svetlana.bayarovich@mapbox.com>

* Fixed typo (valhalla#2658)

* Remove unnecessary maneuvers to continue straight (valhalla#2647)

* Remove unnecessary maneuvers to continue straight
Updated and extended gurka test

* update changelog for valhalla#2647

* Incident loading tests (valhalla#2631)

* add some new documentation on how incidents work

* prepare for unit testing a bit

* read_tile unit test

* more tests for updating the cache

* scaffold for more testing of watch method

* almost done with the hardest unit test of all the modes of operation

* finish unit tests

* add watcher thread contract to javadoc

Co-authored-by: Anders Bennehag <anders.bennehag@mapbox.com>

* more locate output (valhalla#2645)

* more locate info

* add openlr to locate output

* fix linear reference support in routing/mapmatch apis. fixes include: FOW, FRC, number of references per leg, bearing

* changelog

* mac CI complaint

* remove unneeded scoping

* add locate gurka test and validate new behavior

* resolve pr comment by moving traffic code into traffic header

* oops test was looking in the wrong place and forgot a return after refactor

* openlr is in baldr not midgard

* Shortest-ish (valhalla#2555)

* add plumbing for shortest distance(ish) routes for just auto costing

* changelog stub

* Update CHANGELOG.md

* typos

* add gurka test for shortest auto

* add truck shortest

* add shortest to other profiles, update test; motor_scooter & bike still failing, ped necessary?

* add to docs

* add stashed changes

* format

* comment scooter/bike/ped test until better solution has been found

* fix tests for ped, bike, scooter

* fix tests for ped, bike, scooter

* some more docu info

* strike-through auto_shorter

* resolve error in debug-lint build

* choose a saner tag combo so it doesn't break in the future

* sidewalk_factor was missing in docs

* wrong assert for ferry speed

* missed shortest_ in other overload

* resolve conflict with master

* some major flaws in ped/bike edgecost computation; some places (transitioncosts mostly) were missing shortest conditions

* profiles -> costing models

* revert change to get road speed in pedestrian edgecost

* introduce code to change auto_shorter to auto with shortest: true; add test

* remove auto_shorter from other locations

* revert removing auto_shorter from codebase

* patch up bicycle cost for shortest and fix base_cost to retain the time information

* further gut costing stuff that is no longer needed, update tests

* move deprecation tests into other tests and only test parsing

* remove redundant test from cmakelists

* consistent use of rapidjson shortcut methods

* profile is an osrm term

* simplify test

Co-authored-by: nilsnolde <nils.nolde@gmail.com>

* improve README a little bit

more classic MD style headings; add one-shot mode documentation; mention pre-commit hook (valhalla#2663)

* Add option json-file to route utility (valhalla#2656)

The json query string passed on the command line can get long and messy.
Add the option "--json-file" to load the query string from a file. This
option will override the string on the command line if one is supplied.

Signed-off-by: Francis Giraldeau <francis.giraldeau@gmail.com>

* disable incident loading test with race condition

* bad cowboy, apologies

* Enhanced turn lane information (valhalla#2653)

The turn lane object (intersection.lanes) within a step is enhanced with
new attributes:
* "active": Set to true for lanes which are most appropriate to be in,
considering the current and next maneuver. false otherwise.
* "valid_indication": An optional attribute containing the active lane's
arrow indication in the direction of the maneuver. Eg: if active lane has
"indications: [ left, straight ]" and we're turning left from this lane,
then "valid_indication" will be "left".

The existing attribute "valid", will be set to true for lanes which can
be taken for completing the maneuver, but might not be the best lane to
be in, considering the next maneuver.

* fix race condition in incident loading tests (valhalla#2664)

* Ambiguous Local Time when Within DST Change Hour (valhalla#2665)

* add test for ambiguous local time

* choose the later time if a local time is ambiguous (takes place during the gained or lost hour due to DST clock changes)

* test valhalla rather than date library

* fix reach counting of transition nodes (valhalla#2670)

* fix reach counting of transition nodes

* changelog

* lint

* Fix C++17 compatibility (valhalla#2669)

* Fix C++17 compatibility

Change deprecated std::random_shuffle calls to std::shuffle, use
std::bind instead of deprecated std::bind1st

* Fix Clang-tidy comments

* Add annotations to osrm response including speed limits, unit and sign conventions (valhalla#2668)

* Add maxspeed annotations to osrm response including unit and sign conventions

* Fixes

* Add more speed limit info countries

* Update changelog

* Apply clang-tidy fixes

* More maxspeed serliazer tests in gurka

* More gurka

* Encode predicted speeds (valhalla#2674)

* Implement encoder for predicted speeds

* Add unit tests for predicted speeds encoder-decoder

* Use decoding function in 'valhalla_add_predicted_traffic' script

* Add convertion from little enditan to big endian

* Update changelog

Co-authored-by: Kevin Kreiser <kevinkreiser@gmail.com>

* Move turn_lane_direction helper to odin/util (valhalla#2675)

* Move turn_lane_direction helper to odin/util

* Update changelog

* Move common serializer strings to a shared header

* Improve German post_transition_verbal instruction (valhalla#2677)

* Improve German post_transition_verbal instruction

* Update changelog

* Update test

* clang-tidy got me

* bidirectional a* routing with specified time (valhalla#2660)

* make it so that you can specify you want to use the same time for the whole route

* let bidirectional use the localtime without accounting for time travel

* lint away a gotch for future us

* move historical traffic customization into unit test helper function

* force triplegbuilder to name the algorithms used in making the leg

* more structure in tests

* add unit tests for algorithm selection

* try reorganizing test target common dependencies

* make just one test library target

* fix reach will port to another pr

* add traffic to the test, future proof time tracking in bidira* as per comments

* fix tests. still need lint

* tidy

* more tidy with one tidy skip

* satisfy clang on osx

* more overrides to make apple happy

* even more overrides to make apple happy

* even more overrides to make apple happy

* more lint

* cleanup items mention in review

* lint

* fix typos, hardened tests found a missing spot in bidira*

* tidy

* for older protobuf

* comment about how now timedep failover to bidira* is somewhat timedependent instead of completely time independent

* small cleanups for predicted speed decoding

* changelog entry

Co-authored-by: Daniel Paz-Soldan <daniel.pazsoldan@gmail.com>

* Edge length check (valhalla#2678)

* added tests for DE lengths.

* added edge length check to fail if greater than the max

* updated.

* moved logic to the set_length function.

* added bool for erroring or not on length > kMaxEdgeLength

* updated

* lint

* clean up

* use ASSERT_NO_THROW and ASSERT_THROW.  much cleaner.

* cleanup

* round integer coords for polyline encoding (valhalla#2632)

* round integer coords for polyline encoding

* Update CHANGELOG.md

* remove ambiguity from search filter test

* update encoded stringsJ

* fix isochrone and minbb tests

* fix more tests

* 32bit passes now as well, lets pray for osx

* find a test case that works on all platforms

* try to fix azure [ci skip]

* try longer allowance for azure

* fix(openlr): Fixes km to meter conversion in OpenLr serializer (valhalla#2688)

* fix(openlr): Fixes km to meter conversion in OpenLr serializer

Also renames TripLeg.Edge.length to TripLeg.Edge.length_km

* Updates changelog

* Lane updates (valhalla#2679)

* Add failing test for missing turn:lanes on split edge

* set lanes on all the edges for the way.  removed temp use of not_thru bit.  removed way_prior and way_next

* spare was wrong so no need to update.  removed way_next and way_prior

* testing out no enhancing for turn_lanes.

* reverted back.

* only enhance if not part of a complex restriction.

* clean up

* clean up

* clean up

* added to all edges.

* cp and paste fail.

* Updated the ManeuversBuilder::MoveInternalEdgeToPreviousManeuver method to check
if the internal edge does not have turn lanes
then copy the turn lanes from the previous edge

* added examples for long ways with lane information.

* clean up

* merged back in

* updated.

* updated.

* reverted back.

* added TurnLanesUTurns back.

* clean up

* Fix for missing uturn indication on pre-maneuver intersections

* added internal and restriction testing.

* move ProcessTurnLanes after UpdateManeuverPlacementForInternalIntersectionTurns

* added more tests with internals and turn channels

* format

* updated.

* Update CHANGELOG.md

Co-authored-by: Daniel Paz-Soldan <daniel.pazsoldan@gmail.com>

* Update src/odin/maneuversbuilder.cc

Co-authored-by: Daniel Paz-Soldan <daniel.pazsoldan@gmail.com>

* format.

* fixed tests.

* Fix serialization of uturns for left and right side driving

* Add more uturn routes to turn_lane_routes.txt

Co-authored-by: Daniel Paz-Soldan <daniel.pazsoldan@gmail.com>
Co-authored-by: Duane Gearhart <duane.gearhart@mapbox.com>

* nit: Updates libosmium (valhalla#2690)

* Improve speed checks during shortcut building (valhalla#2691)

* Stop building shortcut if edges going in the same direction have different speeds

* Do not care for equality of speeds on outgoing edges in shortcut building

* Move osrm_car_duration.h to includes directory

* Add test for shortcut creation

* Update changelog

* No internals on ramps or TCs (valhalla#2689)

* no internal edges on tc and ramps.

* can't be a tc and and ramp.  ramp wins.

* Update graphbuilder.cc

clean up

* found a bug where we always set the turn_channel attribute and did not check infer_turn_channels flag.

* added tests for internals with ramps and tcs.

* formatting.

* updated.

* Missing fork or bear instruction (valhalla#2683)

* Initial fork code for non-motorway and non-ramp roads

* refactored fork code to restrict more by road class

* Updated logc for bear vs. continue
Added RAD test files

* updated fork comment

* Update for fork/bear
Added the HasSimilarStraightSignificantRoadClassXEdge method

* added the HasSimilarStraightNonRampOrSameNameRampXEdge method and improved highway guidance

* added Jim's roundabout example

* Adde the HasForwardTraversableUseXEdge method to improve transition at ramp

* Updated tests to match the new fork logic

* clean up and update pointer checks for unit tests

* Added non-highway fork tests
Refactored realted tests

* tidy cleanup

* Added bear test

* added valhalla#2683

* Double precision for lon lat (valhalla#2693)

* Introduce Point2d and Vector2d

* Use double precision for GeoPoint

* Read ll from json as double

* Fix unit tests

* Fix double precision for height action

* Continue fix tests

* hopefully reduce pointll hash collisions, fix long standing but benign bugs in decode7/encode7

* allow differnt precision on encode/decode7

* use 7 digits of precision for finding other places precision is lost

* make 7digit precision possible with a preprocessor defintion

* store 7bits of precision in OSMNode daat tile building time

* Fix hash collisions for PointXY

* Fix tiles unit test

* Don't loose precision while setting lon,lat to OSMNode

* Fix test_trimming

* Fix thor_worker test

* Fix matrix test

* 7 digits of precision for nodeinfo ll

* refactor TileHierarchy while tracking down a typo :(

* update isochrone test

* update summary shape

* fix map match test

* fix astar test

* lint

* update summary

* use double precision for path edges in loki search

* use our own hash_combine since older boost doesnt ahve it at same place

* more doubles in place of floats

* more doubles to shut up clang

* working on bss tests

* fixed one test in the suite

* slight differences to bss testing

* roll our own hash_combine for since boost relocates it

* forgot to remove header

* explicit instantiations

* tidy

* smarter isochrone test

* cleanup comments etc

* changelog derp

Co-authored-by: Kevin Kreiser <kevinkreiser@gmail.com>

* Fix undefined behavior in nav-native tests (valhalla#2696)

* Fix polyline simplification float/double comparison (valhalla#2698)

* Fix polyline simplification float/double comparison

* Fix comment

* Fix comment

* Update changelog

* Use template types

* Fix

* Fix ASAN error

* Include turn durations in shortcut building (valhalla#2662)

* Include turn duration in shortcuts

* Add test for shortcuts speed

* fix review

* Recalculate shortcut speed for trucks

* Test for truck speed on shortcuts

* Single point for obtaining conditional truck speed

* Fix constness

* Assert speed is not zero

* Fix incorrect behavior. Add test for new parameter in GetSpeed

* Use OSRM-like car turn durations for truck profile

* OSRM-like turn durations for motorcycle and motorscooter

* Update changelog

* Simplify tests for shortcuts. Add case for partially set truck speed. Fix typo

* request generation for RAD testing a small area

* usage

Co-authored-by: Kevin Kreiser <kevinkreiser@gmail.com>

* Update elapsed_cost.cost properly when collapsing non-break via/through locations. (valhalla#2702)

* Rework recost function to use TimeInfo (valhalla#2697)

* Use TimeInfo in recost function

* Rename TimeInfo::empty -> TimeInfo::invalid; fix times for triplegbuilder

Co-authored-by: Kevin Kreiser <kevinkreiser@gmail.com>

* remove astar since its redundant with timedep_forward (valhalla#2706)

* dont use astar its redundant with timedep_forward

* actually remove references to astar, should we rename timedep to astar?

* lint

* changelog

* build all targets not just check

* am be abit more clear about how we are relaxing

* Updated logic to call out a non-obvious turn (valhalla#2708)

* Updated logic to call out a non-obvious turn
Added related gurka and RAD tests

* Added valhalla#2708 to changelog

* Fix bidirectional route failures at deadends (valhalla#2705)

* Add failing test for route failures in deadends

* Update expansion methods to return false for non-expandable edges allowing uturn edge to be used

* Add route cost to route summary in route_serializer_valhalla

* Add deadends.txt request file

* Also fixes route failures at barriers by allowing a uturn at the node

* Fix lint

* Update changelog

* Add same uturn at barrier fix from bidirectional to timedep_forward/reverse

* Missed a variable rename

* Fix lint

* Add cost to leg summary and maneuver in valhalla serializer

* Fix valhalla build statistics (valhalla#2707)

* Fix valhalla build statistics

* Changelog

* fix clang_tidy warnings: removed trivial ctor with wrong order trivial initializations and unused param commented

* add top_speed for all motorized vehicles (valhalla#2667)

* add top_speed for auto & truck

* add top_speed to other motorized vehicles

* move top_speed mostly to dynamiccost

* cleanup

* override default top_speed for motorscooter

* try to fix inline test for motorscooter

* revert astar changes

* forgot to set default top_speed when no costing_options are provided

* default top_speed to kMaxSpeedKph for all vehicles, but motor_scooter

* uhh? works locally.. maybe protobuf version? try Get() instead of at()

* make astar heuristic use top_speed if smaller than kMaxAssumedSpeed

* address kevin's review

* forgot to remove asserts in hov & taxi

* truck edgecost wasn't using the right speed; remove edge_search.cc

* breakfix for internals (valhalla#2710)

* if infer_internal_intersections is true then allow internals that are also ramps or TCs

* added test for when infer_internal_intersections is set to true then we allow internals that are also ramps or TCs

* updated.

* Adding signboard info to data processing and triplegbuilder (valhalla#2687)

* adding signboard info to data processing and triplegbuilder

Co-authored-by: Greg Knisely <greg.knisely@mapbox.com>

* if width <= 1.9 then no access (valhalla#2713)

* if width < 1.9 then no access for auto, truck, bus, taxi, emergency, and hov

* added maxwidth test.

* updated.

* added more tests.  changed to <= 1.9.

* Update CHANGELOG.md

* added some RAD tests.

Co-authored-by: kdiluca <kristen.diluca@mapbox.com>

* Moved enum to string conversion for guidance views to proto_conversions (valhalla#2715)

* shortcut recovery singleton and cache option (valhalla#2714)

* shortcut recovery singleton and cache option

* finish changelog and actually attach file

* default to turning shortcut cache off

* cleanup

* signpost enum to string updates (valhalla#2721)

* Replace all Python2 print statements with Python3 syntax (valhalla#2718)

* Replace all Python2 print statements with Python3 syntax

* python2 test stuff still around

* cmon..

* Destination updates (valhalla#2722)

* updated due to destination updates.

* added destination and customers to private

* lint

* added test.

* added some RAD tests.

* updated.

* Fix invalid continue/bear maneuvers (valhalla#2729)

* IsStraightest and IsFork logic and test updates
Added a new script to create a diff report based on two multi_run.sh result sets

* new gurka test

* new RAD file

* update changelog for valhalla#2729

* removed extra space

* Added description of script

* Fix: check if edge is null before using it (valhalla#2727)

* Fix: check if edge is null before using it

* Null check before edgestatus lookup

* Optimize away an if branch

* Fix PencilPointUturn threshold to use km rather than meters (valhalla#2725)

* Fix PencilPointUturn threshold to use km rather than meters

* Update changelog

* Decided to ditch the length check altogether

* Missed one

* Adds simple gurka test

* Update changelog

* Fix gurka test

* added sump buster logic. (valhalla#2731)

* added sump buster logic.

* clean up

* lint.

* added sump buster tests.

* added RAD tests for sump busters.

* more tests

* fixed access issue with not using the tags when motor_vehicle was set.  Also, need to look at auto_tag for hov_tag and taxi_tag.

* added tests for access updates.

* lint

* cleanup.  just loop over costing, run a route, and check the expected result.

* updated

* clang-tidy

* Add log message if failed to create tiles directory (valhalla#2738)

* Make GraphTile own their memory (valhalla#2340)

* CMake: Use generated path to executable instead of building it manually

* Make GraphTile noncopyable and move *Cache classes to use std::shared_ptr<GraphTile>

* Make GraphTile always own its memory

GraphTiles that were loaded from an mmaped tar file didn't own their memory. This commit changes this so that the GraphTile now gets a shared pointer to the midgard::tar object it is loaded from.

* lint

* address comment about include what you use

* revert cmake changes for windows builds

* Revert use of shared_ptr in *TileCache

* Fix merge conflicts

* Fix code review comments

* Update CHANGELOG.md

Co-authored-by: Kevin Kreiser <kevinkreiser@gmail.com>
Co-authored-by: Aliaksei <aliaksei.verkhaturau@mapbox.com>

* Collapse Maneuvers (scenario1) (valhalla#2740)

* logic and tests for collapsing double L turns or double R turns in short non-internal intersections to u-turns

* Refactored the logic to make sure the u-turn maneuver type at an unspecified internal maneuver is assigned properly

* Added script to append a tag to list of directories

Co-authored-by: Duane Gearhart <duane.gearhart@mapbox.com>

* Handle GraphTile objects as boost::intrusive_ptr (valhalla#2730)

* Use boost::intrusive_ptr for graph tiles

* Fix code review comments

* Fix code review comments

* isolate graph tile pointer definition and give it an alias

* lint

* Code review fixes

* fix typo

* revert tons of what look like clang-tidy changes incorrectly moving things just to pass them by const reference. removed checks for tiles with no nodes in mjolnir. reverted many bugs where we asserted instead of bailed when we needed to worry about regional tile packs boundaires. reverted unrelated changes to tar checksum

* dont do stuff in assertions haha

* Update CHANGELOG.md

Co-authored-by: Kevin Kreiser <kevinkreiser@gmail.com>

* Add Estonian locale (valhalla#2748)

* Add Estonian locale

* Update changelog

* Fixes problem with generating valid HGT file names (valhalla#2723) (valhalla#2724)

* Fixes problem with generating valid HGT file names (valhalla#2723)

* Use testable_sample_t for testing

* Forgot to run the formatter

* move body of hgt file name generation into the member function

* missed a spot

Co-authored-by: Kevin Kreiser <kevinkreiser@gmail.com>

* Sanitize Logging and Add Timing (valhalla#2717)

* shortcut recovery singleton and cache option

* finish changelog and actually attach file

* default to turning shortcut cache off

* cleanup

* gut analytics logging, improve other logging, track timing of main methods in pbf

* move the bulk of the timing stuf out to a common worker function can call that

* lint

* Improve stability with no-rtti (valhalla#2759)

* Update getting_started_guide.md (valhalla#2756)

Make the sample more consistent.

* New Use=kService - identifies generic service roads (valhalla#2419)

* Add Use:kService for generic highway=service roads where there are no service
tags to specialize the use to driveway, alley, parking aisle, etc. This new use
separates service roads from other road uses.

* Add Gurka test for a bicycle route cutting through a service road to
shortcut a turn at a regular intersection. Add an is_road method to
DirectedEdge to check if use is either Road or ServiceRoad. Add new use
for service road and living street in trip proto.

* Initial gurka test for using service roads to cut a corner. Fails
until bicycle costing is updated

* Add a 15 second (default) penalty when transitioning onto a service road.
This is to prevent cutting corners over service roads near regular intersections.

* formatting

* Allow service_penalty to be a configurable costing option for bicycle costing.
Set it to 0 for the bicycle isochrone tests so they pass again.

* Formatting

* Update isochrone test. Viewed visual diffs from prior - pretty much the same
isochrone shape, just a few minor diffs.

* Update CHANGELOG

* Formatting

Co-authored-by: kdiluca <kristen.diluca@mapbox.com>
Co-authored-by: Duane Gearhart <dgearhart@users.noreply.github.com>
Co-authored-by: Anders Bennehag <anders.bennehag@mapbox.com>
Co-authored-by: Buro Mookerji <buro.mookerji@mapbox.com>
Co-authored-by: Pavel Merkis <pavel.merkis@mapbox.com>
Co-authored-by: Kevin Kreiser <kevinkreiser@gmail.com>
Co-authored-by: Daniel Paz-Soldan <daniel.pazsoldan@gmail.com>
Co-authored-by: David Nesbitt <dnesbitt61@gmail.com>
Co-authored-by: Nils <nils.nolde@gmail.com>
Co-authored-by: Yuzhe <yuzhe.yan@mapbox.com>
Co-authored-by: Henadzi Klimuk <genadz.klimuk@mapbox.com>
Co-authored-by: Greg Knisely <greg@mapzen.com>
Co-authored-by: Greg Knisely <greg.knisely@mapbox.com>
Co-authored-by: Mandeep Sandhu <mandeep.sandhu@mapbox.com>
Co-authored-by: Sergei Zotov <s.zotow@gmail.com>
Co-authored-by: Daniel Patterson <danpat@danpat.net>
Co-authored-by: Anders Bennehag <anders@bennehag.com>
Co-authored-by: Mateusz Łoskot <mateusz@loskot.net>
Co-authored-by: Mateusz Konieczny <matkoniecz@gmail.com>
Co-authored-by: John Famiglietti <john@codeandrun.com>
Co-authored-by: John Famiglietti <johnf@wahoofitness.com>
Co-authored-by: Andrea Borghi <danduk82@users.noreply.github.com>
Co-authored-by: Svetlana Bayarovich <svetlana.bayarovich@mapbox.com>
Co-authored-by: Felix Wehnert <flashspys@gmail.com>
Co-authored-by: Francis Giraldeau <francis.giraldeau@gmail.com>
Co-authored-by: averkhaturau <aliaksei.verkhaturau@mapbox.com>
Co-authored-by: Duane Gearhart <duane.gearhart@mapbox.com>
Co-authored-by: Svetlana Bayarovich <50918075+SvetlanaBayarovich@users.noreply.github.com>
Co-authored-by: LaGrunge <leontodys@gmail.com>
Co-authored-by: Konstantin Käfer <mail@kkaefer.com>
Co-authored-by: homtec <thomas.hecker@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants