Moritz Kobitzsch
37774a331a
fix collapsing into uturns, that aren't u-turns
2017-10-17 15:08:29 +01:00
Patrick Niklaus
456b198702
Remove unused number of threads option again
2017-10-16 23:08:32 +02:00
karenzshea
2d1ea7a3de
template specialization
2017-10-13 14:53:49 +01:00
karenzshea
2a13f9d10b
fallback to CH, when coreCH used
2017-10-13 14:53:49 +01:00
Michael Krasnyk
f2fbe16979
Use for M*n (m*N) tables queries forward (backward) MLD search
2017-10-11 16:28:16 +01:00
Michael Krasnyk
5af05631c2
Suppress relaxation of edges on the top level during backward steps
2017-10-11 16:28:16 +01:00
Michael Krasnyk
8300a6c57e
Prepare phantom nodes indices in ManyToManySearch search
2017-10-11 16:28:16 +01:00
Michael Krasnyk
29d4bca9ba
Split algorithm-specific manyToMany implementations
2017-10-11 16:28:16 +01:00
Michael Krasnyk
020c17d19a
Remove unused packed path weights in MLD alternatives
2017-10-03 13:09:46 +02:00
Michael Krasnyk
d0936dc7fd
Don't force loops in MLD
...
Related commit 0972ec9115
2017-10-03 12:56:50 +02:00
Michael Krasnyk
e7be271c43
Optimize MLD one-to-many getNodeQueryLevel
2017-09-29 13:38:52 +02:00
Michael Krasnyk
790b574114
unordered_multimap compilation fixes
2017-09-29 13:38:52 +02:00
Michael Krasnyk
b3f59ab92c
Move duplicated code into insert_node lambda
2017-09-29 13:38:52 +02:00
Michael Krasnyk
f2333eb31a
Break tie for equal weights but different durations
...
There is no possibility until multiple-weights are implemented
to break tie in the contraction and the direct shortest path plugin
as duration is not computed during contraction.
This must be fixed after multiple-weights implementation
by using `std::tie(weight, duration)` pairs everywhere.
2017-09-29 13:38:52 +02:00
Michael Krasnyk
a862e5fb3a
Implement one-to-many unidirectional MLD search
2017-09-29 13:38:52 +02:00
Michael Krasnyk
2715e5758b
Split MLD many-to-many method
2017-09-29 13:38:52 +02:00
Michael Krasnyk
454487dd41
Refactor to reuse relaxOutgoingEdges in many-to-many plugin
2017-09-29 13:38:52 +02:00
Michael Krasnyk
fd7791a0e2
Fix gcc5 compilation
...
Ref: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77786
2017-09-15 16:29:40 +02:00
Michael Krasnyk
ee19383f4d
Link TBB task_scheduler lifetime with Engine scope
2017-09-15 10:55:13 +02:00
Michael Krasnyk
172a8bdcdb
Parallelize ManyToMany plugin
2017-09-15 10:55:13 +02:00
Michael Krasnyk
543048efcc
Remove std::unordered_map<NodeID, std::vector<NodeBucket>>
2017-09-15 10:55:13 +02:00
Michael Krasnyk
67c85ffa4c
Restructure manyToManySearch for parallelization
2017-09-15 10:55:13 +02:00
Moritz Kobitzsch
c2dc7e9cd0
use enter + exit for roundabout instructions ( #4358 )
...
* Expose roundabout/rotary exit instructions as a new instruction type.
2017-09-05 12:30:34 -07:00
Daniel Patterson
0fc1aa2711
Adds turn instructions to the turns layer in debug tiles. ( #4460 )
...
Add turn types and modifiers to turn points in debug tiles. Also refactor some of the tile code to reduce some repetition.
2017-09-01 15:08:22 -07:00
Lev Dragunov
80c55119d2
Add bearing for the phantom node
2017-08-31 11:11:05 +02:00
Patrick Niklaus
a4460abc83
Fix another manifestation of the off-by-one
2017-08-21 13:00:12 +02:00
Patrick Niklaus
d09f5c0e3a
Avoid -> Exclude
2017-08-21 13:00:12 +02:00
Patrick Niklaus
45140ca9f7
Fix off-by-one in avoid search
2017-08-21 13:00:12 +02:00
Patrick Niklaus
f93b331817
Add error handling for avoid not implemented
2017-08-21 13:00:12 +02:00
Patrick Niklaus
a3c94ef632
Avoid nodes that are disabled by an avoid flag
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
3687b6cb4b
respect difference between continue/turn on changing end-of-road
2017-08-16 09:19:15 +02:00
Moritz Kobitzsch
196ed9eb46
do not change fork directions when combining turns
2017-08-16 09:17:01 +02:00
Michael Krasnyk
2e404c60f4
Remove references to external sources
2017-08-14 16:18:36 +02:00
vng
40857aae61
Inject offline compressed data facade with OSRM_EXTERNAL_MEMORY option.
2017-08-14 16:18:36 +02:00
vng
f34320a89b
Fixed getting entry bearing for maneuver.
2017-08-11 11:40:58 +02:00
Daniel J. Hofmann
f7c8bac3fd
Handles distinction of no-route vs invalid-route in mld alternatives
...
The viaroute plugin always expects a route to be there potentially
with invalid edge weight to represent no-route-found. By switching
to the many-route-result for the mld alternatives algorithm we might
return an empty many-route-result invalidating the post-condition.
2017-07-22 12:50:54 +02:00
Pepijn Schoen
d9e8caf369
Use GetPath with file names over accessing member variables
2017-07-20 12:01:05 +02:00
Patrick Niklaus
440dccb81b
Move classes to intersection object and don't emit notifications
2017-07-18 16:48:22 +00:00
Daniel J. Hofmann
5ece65cade
Trigger lane anticipation based on distance, see discussion in #4260
2017-07-18 11:23:46 +02:00
Moritz Kobitzsch
f2f00b99e0
remove usage of use-lane completely
2017-07-18 11:23:46 +02:00
Moritz Kobitzsch
7b755d6f8b
deprecate use-lane -- the information can be found in the intersections array
2017-07-18 11:23:46 +02:00
Patrick Niklaus
49f0b1eb59
Add abstraction to change the data facade at compile time
2017-07-17 11:40:55 +00:00
Daniel J. Hofmann
54ceb05420
Implements Alternatives for MLD
2017-07-07 16:12:46 +00: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
Michael Krasnyk
359ab2b56e
Use highest different level with source but not parent node
2017-07-03 14:57:52 +00:00
Michael Krasnyk
aa736dbe3a
Generalize directShortestPathSearch interface
2017-07-03 14:57:52 +00:00
Michael Krasnyk
3534203083
Generalize manyToManySearch and remove duplications
2017-07-03 14:57:52 +00:00
Michael Krasnyk
517cb5f094
Matrix plugin with MLD overlay
2017-07-03 14:57:52 +00:00
Michael Krasnyk
b910ab9bcb
Add duration values to overlay graph
2017-07-03 14:57:52 +00:00
Michael Krasnyk
0fd71260d3
Enable ManyToManySearch in MLD
2017-07-03 14:57:52 +00:00
Moritz Kobitzsch
d660c1609c
don't collapse u-turns into combined turns
2017-06-30 09:25:03 +00:00
Daniel Patterson
4136bf2808
Add layer to debug tiles to expose all OSM nodes in that area.
2017-06-19 15:59:38 +00:00
Lev Dragunov
93d6fd05a9
No timestamps SIGSEV fix
2017-06-17 17:33:33 +00:00
Lev Dragunov
73c4bc1411
clang-format
2017-06-17 17:33:33 +00:00
Lev Dragunov
dc9b4bcfec
Time information for maximum distance in matching
2017-06-17 17:33:33 +00:00
Daniel Patterson
e3276324b9
Include 'rate' property (reciprocal of weight) on debug tile edges. ( #4162 )
...
Include 'rate' property (reciprocal of weight) on debug tile edges and add turn weight data to debug tiles.
2017-06-15 17:50:57 +02:00
Moritz Kobitzsch
f80e5db346
add support for visualising turn penalties in MLD Debug tiles ( #4157 )
...
- template function for tile functionality with edge finder operator
- refactors unit tests into single function (reduce code duplication)
- adds unit tests for core-ch
2017-06-15 13:59:44 +02:00
Daniel J. Hofmann
de1d5f199f
Uses correct coefficients for local optimality in CH alternatives
...
The alpha constant is for the local optimality T-Test threshold.
Before we used epsilon for the T-Test threshold, but the epsilon
constant is meant to be used for the stretch test(s) only.
This changeset fixes the local optimality T-Test and uses the
epsilon constant for the two stretch tests:
- We test the stretch for the total route against epsilon and
- We test the detour against the epsilon now, too
We can discuss if the second stretch test should actually use
epsilon, too, or a adapted value of it - but definitly not alpha.
2017-06-09 13:20:41 +02:00
Michael Krasnyk
03e83ec6a0
Fix invalid roundabout instructions for different driving modes, #4129
2017-06-08 15:01:27 +00:00
Lev Dragunov
d7035291ea
clang-format
2017-06-07 15:39:08 +03:00
Lev Dragunov
6b8f3c7fef
Polyline6 support in the REST input
2017-06-06 19:51:00 +03:00
Moritz Kobitzsch
ceaf065d0e
don't collapse highway ramps into uturns ( #4074 )
2017-06-01 12:39:10 +02:00
Michael Krasnyk
d262c4dfaa
[skip ci] Add comments about order of post-processing calls
2017-06-01 11:13:31 +02:00
Michael Krasnyk
dd009322de
Remove roundabout skip as no leavesRoundabout steps after postProcess
2017-06-01 11:13:31 +02:00
Michael Krasnyk
858ec2e655
Fix steps collapsing after non-closed roundabouts, #4100
2017-06-01 11:13:31 +02:00
Lev Dragunov
45ee096260
Ignore split breakage fix.
2017-05-26 10:55:03 +00:00
Michael Krasnyk
4964d0dcbd
Adjust expectation and remove non-valid assertions
2017-05-19 09:47:47 +00:00
Michael Krasnyk
1a7cd785f2
Rename .nodes -> .nbg_nodes and .nodes_data -> .ebg_nodes
2017-05-17 15:21:51 +00:00
Michael Krasnyk
26702920b4
Move ComponentID to EdgeBasedNodeDataContainer
2017-05-17 15:21:51 +00:00
Michael Krasnyk
ca6b1b39b7
Remove data duplicates in .node file
2017-05-17 15:21:51 +00:00
Daniel J. Hofmann
e064a9334b
Lifts restriction to only provide zero or one alternative routes
2017-05-12 13:54:22 +02:00
Daniel J. Hofmann
e12c7756d9
Weight-ifies alternatives related code-paths
2017-05-12 13:54:22 +02:00
Moritz Kobitzsch
f8002480c2
fix continue_straight interaction with bearing specification
2017-05-12 13:38:04 +02:00
Michael Krasnyk
12f47708cd
Adjust method and function names
2017-05-11 09:13:42 +00:00
Michael Krasnyk
9358aa1128
Disable nodes with invalid segments
2017-05-11 09:13:42 +00:00
Michael Krasnyk
40d0297885
Added unpacked_nodes vector to annotatePath interface
2017-05-03 21:59:38 +00:00
Michael Krasnyk
07c7cb3c6c
Rename BinaryHeap to QueryHeap
2017-05-02 15:54:25 +00:00
Daniel J. Hofmann
9334cc463d
Fixes Table not checking for valid phantom nodes
...
We failed to check if we could actually find phantom nodes for all
coordinates in the table plugin, leading to corrupt internal state.
```
curl 'http://localhost:5000/table/v1/car/7.4151,43.7305;7.4222,43.7368?radiuses=0 ;'
```
```
[assert][140505627227904] /tmp/osrm-backend/include/engine/routing_algorithms/routing_base.hpp:68
in: void osrm::engine::routing_algorithms::insertNodesInHeap(osrm::engine::SearchEngineData<osrm::engine::routing_algorithms::ch::Algorithm>::ManyToManyQueryHeap&, const osrm::engine::PhantomNode&) [with bool DIRECTION = false; osrm::engine::SearchEngineData<osrm::engine::routing_algorithms::ch::Algorithm>::ManyToManyQueryHeap = osrm::util::BinaryHeap<unsigned int, unsigned int, int, osrm::engine::ManyToManyHeapData, osrm::util::UnorderedMapStorage<unsigned int, int> >]: phantom_node.IsValid()
terminate called without an active exception
```
2017-05-02 13:41:33 +02:00
Patrick Niklaus
c446b017ef
Switch from macro based StrongTypedef to template version
2017-04-24 16:04:41 +00:00
Michael Krasnyk
dea3144c4d
Use total angle for turn instruction if entry step has large distance
2017-04-12 23:22:44 +00:00
Michael Krasnyk
59b70c4d11
Make CoreCH SearchEngineData inherited from CH one
...
this allows to keep a single Algorithm template parameter in internal
interfaces as
template <typename Algorithm>
search(SearchEngineData<Algorithm> &,
const datafacade::ContiguousInternalMemoryDataFacade<Algorithm> &, ...)
2017-04-12 10:54:09 +00:00
Michael Krasnyk
f96bae40ac
Remove unused {forward,reverse}_heap_2 in MLD engine data
2017-04-12 10:54:09 +00:00
Michael Krasnyk
ba974c73bf
Remove CoreCH heaps
2017-04-12 10:54:09 +00:00
Michael Krasnyk
e498ad3ee7
Make explicit fallback to CH heaps in CoreCH algorithms
2017-04-12 10:54:09 +00:00
Michael Krasnyk
1de031ed06
Remove {forward,reverse}_core_heap arguments from search interface
2017-04-12 10:54:09 +00:00
Patrick Niklaus
a88fef2937
Implement distance pruning for MLD as well
2017-04-10 17:25:55 +00:00
Patrick Niklaus
4e9e2ed5bd
Emit a notification when turning on a ferry and don't merge step
2017-04-07 15:29:53 +00:00
Michael Krasnyk
1aa8cc3b65
make getPathDistance algorithm-independent
2017-04-06 11:17:23 +00:00
Michael Krasnyk
c487d1307e
enable map matching in MLD
2017-04-06 11:17:23 +00:00
Michael Krasnyk
7726576bb7
use ADL and explicit instantiation for map matching
2017-04-06 11:17:23 +00:00
Michael Krasnyk
f660ae30dc
use explicit instantiation of shortestPathSearch
2017-04-06 10:36:40 +02:00
Michael Krasnyk
2766c24b42
prefer smaller legs for equal weights in shortest path plugin
2017-04-06 10:36:40 +02:00
Michael Krasnyk
48a098a9c7
implement MLD shortest path plugin
2017-04-06 10:36:40 +02:00
Michael Krasnyk
905ca69301
add Algorithm parameter to SearchEngineData
2017-04-06 10:36:40 +02:00
Michael Krasnyk
d66cc125aa
make first heaps algorithm-aware
2017-04-06 10:36:40 +02:00
Michael Krasnyk
8c64b01d67
itroduce ADL via algorithm specific ch, corech and mld namespaces
2017-04-06 10:36:40 +02:00
Lev Dragunov
497709da13
Review fixes
2017-03-22 10:39:36 +00:00
Lev Dragunov
cce4f6344c
TODO fixes
2017-03-22 10:39:36 +00:00