Michael Bell
d96960f9cc
Support snapping to multiple ways at an input location
...
This PR improves routing results by adding support for snapping to
multiple ways at input locations.
This means all edges at the snapped location can act as source/target
candidates for routing search, ensuring we always find the best route,
and not the one dependent on the edge selected.
2022-08-27 11:28:25 +01:00
Michael Bell
5266ac1635
Add support for multiple via-way restrictions ( #5907 )
...
Currently OSRM only supports turn restrictions with a single via-node or one
via-way. OSM allows for multiple via-ways to represent longer and more
complex restrictions.
This PR extends the use of duplicate nodes for representng via-way turn
restrictions to also support multi via-way restrictions. Effectively, this
increases the edge-based graph size by the number of edges in multi via-way
restrictions. However, given the low number of these restrictions it
has little effect on total graph size.
In addition, we add a new step in the extraction phase that constructs
a restriction graph to support more complex relationships between restrictions,
such as nested restrictions and overlapping restrictions.
2020-12-20 13:59:57 -08:00
Daniel Patterson
50d9632ed7
Upgrade formatting to clang-format 10 ( #5895 )
...
* Update formatting tools to clang-format-10
* Reformat using clang-format-10.0.09
2020-11-26 07:21:39 -08:00
Daniel Patterson
4f0ec785f6
Configurable snapping behaviour ( #5361 )
2019-02-14 17:14:50 -08:00
Lev Dragunov
8b45ff7a18
Store metadata about original OSM data, and return it in the API response, if available.
2019-01-30 15:31:56 -08:00
Daniel Patterson
81bc2f41a6
When matching, ignore 'is_startpoint' propert, snap to any edge ( #5297 )
...
Includes all edges in the rtree, but adds an `is_startpoint` flag to each. Most plugin behaviour remains unchanged (non-startpoint edges aren't used as snapping candidates), but for map matching, we allow snapping to any edge. This fixes map-matching across previously non-is_startpoint edges, like ferries, private service roads, and a few others.
2018-12-13 17:10:32 -07:00
Kajari Ghosh
14860b62e9
Unpack paths and return total distance in matrix plugin for CH ( #4990 )
2018-04-20 18:18:55 -04:00
Michael Krasnyk
8d8042ebae
Use ranges with fixed types
2018-04-09 11:05:01 +02:00
Kajari Ghosh
be123cd72f
Use ranges in datafacade instead of vectors
...
Range type must use immutable references due to a
regression in `boost::any_range`.
References:
https://svn.boost.org/trac10/ticket/10493
https://stackoverflow.com/questions/42427395/boostany-range-with-optimization-level-o2-causes-crash/42427662
2018-04-09 11:05:01 +02:00
Patrick Niklaus
9fc2c32408
Fix errors when loading an incompatible dataset.
2018-04-04 12:38:40 +02:00
Patrick Niklaus
bed53f5fd5
Remove timestamp file
2018-03-26 11:02:31 +00:00
Daniel Patterson
5531cace7f
Support maneuver relations ( #4676 )
2018-02-10 05:32:09 +11:00
Michael Krasnyk
10de243556
Move guidance turn generation out of EBGF
2018-02-02 11:33:38 -05:00
Michael Krasnyk
988b6e3311
Split intersection analysis and guidance code
...
Intersection analysis occupy in osrm::extractor::intersection namespace
and guidance code osrm::guidance
2018-02-02 11:33:38 -05:00
Michael Krasnyk
36877e4de5
Move guidance pre-processing code into GUIDANCE library
2018-02-02 11:33:38 -05:00
Kajari Ghosh
155772f01f
Refactor isThroughStreet/Intersection options ( #4751 )
...
* refactor isThroughStreet
* refactor HaveIdenticalName
* fix a typo in the unit tests
2018-01-19 13:49:00 -05:00
vng
32e6ccb037
Code review fixes.
2017-11-16 15:08:30 +01:00
Daniel J. Hofmann
aed7bd852d
Prints turn types and modifiers as strings
2017-11-06 14:38:21 -05:00
Denis Koronchik
4b8daac104
Fix formatting
2017-10-16 12:15:12 +01:00
Denis Koronchik
0dfec13c0a
Fix some problems
2017-10-16 12:15:12 +01:00
karenzshea
2a13f9d10b
fallback to CH, when coreCH used
2017-10-13 14:53:49 +01:00
Michael Krasnyk
545097cf06
Don't use location cache if not needed
2017-10-04 10:03:42 +02:00
Michael Krasnyk
3c399e5c28
Propagate is_left_hand_driving from profile to data facade
2017-10-04 10:03:42 +02:00
Denis Koronchik
c2fd64d3cc
Apply clang format
2017-09-14 20:00:05 +02:00
Denis Koronchik
f79bcc6b8d
Pass relation data to way and node functions
2017-09-14 20:00:05 +02:00
Denis Koronchik
f2b63ba0aa
LUA binding for a relation processing
2017-09-14 20:00:05 +02:00
Patrick Niklaus
61c430c098
Implement exclude flags on CH using shared core
...
The core is fully contracted for each exclude flag
and stored in a merged graph data structure.
2017-09-01 21:26:00 +02:00
Patrick Niklaus
d09f5c0e3a
Avoid -> Exclude
2017-08-21 13:00:12 +02:00
Patrick Niklaus
c6be2e768a
Throw an error for invalid classes
2017-08-21 13:00:12 +02:00
Patrick Niklaus
6339395cba
Fix clang format
2017-08-21 13:00:12 +02:00
Patrick Niklaus
bd6492bb38
Fix compilation after rebase
2017-08-21 13:00:12 +02:00
Patrick Niklaus
303a8fae32
Refactor cell weights and durations to own file and allow for multiple metrics
2017-08-21 13:00:12 +02:00
Moritz Kobitzsch
bbcf343e40
compress traffic signals
...
- handle penalties within edges (not phantom nodes)
- changes model from providing penalties on turns to using additional segments
2017-08-04 11:19:32 +02:00
Patrick Niklaus
44739f2dc3
Allow users to specify a class for each way
...
This adds the ability to mark ways with a user-defined
class in the profile. This class information will be included
in the response as property of the RouteStep object.
2017-07-06 09:17:49 +00:00
Daniel J. Hofmann
7d900e3b5a
Implements Exit Numbers + Names (junction:ref way tag for now)
2017-07-04 20:58:19 +00:00
Patrick Niklaus
e5464526c8
Port isc file
2017-06-27 09:58:19 +00:00
FILLAU Jean-Maxime
c573cdb0ae
Use formating script.
...
Signed-off-by: FILLAU Jean-Maxime <jean-maxime.fillau@mapotempo.com>
2017-05-30 10:19:41 +00:00
FILLAU Jean-Maxime
82a149eb87
Propagating approach parameter to every phantom nodes search function.
...
Propagating approach parameter for plugins :
- tabler
- nearest
- trip
Signed-off-by: FILLAU Jean-Maxime <jean-maxime.fillau@mapotempo.com>
2017-05-30 10:19:41 +00:00
FILLAU Jean-Maxime
089c98a107
Adding support for left left hand driving.
...
Signed-off-by: FILLAU Jean-Maxime <jean-maxime.fillau@mapotempo.com>
2017-05-30 10:19:41 +00:00
FILLAU Jean-Maxime
f65299d665
Rename side API
...
Side -> Approach
- DEFAULT -> CURB
- BOTH -> UNRESTRICTED
- remove OPPOSITE param
Signed-off-by: FILLAU Jean-Maxime <jean-maxime.fillau@mapotempo.com>
2017-05-30 10:19:41 +00:00
FILLAU Jean-Maxime
ec7934ea33
Change qi::lit for qi::symbols for the sides parameter parser.
...
Refactor code :
- Suppress StartSide Enum
- Change Side Structure for Enum
Signed-off-by: FILLAU Jean-Maxime <jean-maxime.fillau@mapotempo.com>
2017-05-30 10:19:41 +00:00
FILLAU Jean-Maxime
8e70c87e64
New "sides" setting in base parameters for phantom nodes.
...
- Adding sides parameter into base parameters, it can take the values SIDE, OPPOSITE or DEFAULT.
- Adding url parser for "sides" parameter, url values are "s" for SIDE, "o" for OPPOSITE and "d" for DEFAULT, example : "sides=s;s".
- Checking parameters, if "sides" parameter is used, the number of parameter is the same as number of location.
- Create a phantom to start at side driving or Opposite side driving.
Signed-off-by: FILLAU Jean-Maxime <jean-maxime.fillau@mapotempo.com>
2017-05-30 10:19:41 +00:00
Michael Krasnyk
26702920b4
Move ComponentID to EdgeBasedNodeDataContainer
2017-05-17 15:21:51 +00:00
Michael Krasnyk
88082c48cf
Remove GetEdgeBasedNodeID from TurnDataContainer
2017-05-03 21:59:38 +00:00
Michael Krasnyk
f1e4349c82
Move geometry ids, name_ids and travel_modes to EdgeBasedNodeData
2017-05-03 21:59:38 +00:00
Patrick Niklaus
d7e1c9c09c
Refactor turn data into own class
2017-04-06 15:42:38 +00:00
Michael Krasnyk
8c64b01d67
itroduce ADL via algorithm specific ch, corech and mld namespaces
2017-04-06 10:36:40 +02:00
Patrick Niklaus
93cdd8bb46
Remove unneccessar branch in CoreCH code
2017-03-03 16:02:12 +00:00
Patrick Niklaus
7da86b5984
Implement CoreCH algorithm
2017-03-03 16:02:12 +00:00
Patrick Niklaus
2fa8d0f534
Port OSRM, Engine and Datafacades to be algorithm aware
2017-03-03 16:02:12 +00:00