Moritz Kobitzsch
bc081b7132
refactor route step / intermediate intersections
...
rename intersection (engine version) to IntermediateIntersection
follow coding convention for existing functions, move invalidate into routeStep
moved elongate into route step
move forward-step-signage into route step
replace post-processings `forwardInto` with `RouteStep` functionality. Don't change maneuver in step
separete declaration and implementation
2016-12-22 08:33:27 +01:00
Patrick Niklaus
3cbac0f012
Revert "Smarter search radius formula for map matching"
...
This reverts commit b73c59088c
.
2016-12-21 22:41:48 -08:00
Patrick Niklaus
cc14fb8bff
Revert "Hardcode search radius parameters"
...
This reverts commit 2c9e18d5a9
.
2016-12-21 22:41:34 -08:00
Moritz Kobitzsch
dff7fe214b
don't assign exit
in arrive when ending in roundabout
2016-12-21 17:48:23 +01:00
Moritz Kobitzsch
1ba5ff44cc
reduce warnings when compiling tests, add constructor to base parameters, fixes gcc49 unit tests building
2016-12-19 14:24:17 -05:00
Daniel J. Hofmann
5ecd2e4c67
Fixes GCC 4.9's protected keywork issues
2016-12-19 14:22:17 +01:00
Daniel J. Hofmann
b1f6797aab
Adds generate_hints=true
for dropping hints in response, resolves #1789 .
...
Adds an `generate_hints=false` option which lets us skip generating and
emitting hints for Waypoints. This can be used to decrease the response
size when the user does not need hints anyway.
We should think about making `false` the default here in v6.
2016-12-19 12:09:36 +01:00
Patrick Niklaus
c4b3cdfd80
Fix changing shared memory in multi-process setup ( #3462 )
...
This change fixes two bugs:
1. A dead-lock that occurs between osrm-datastore and libosrm when an
old dataset is free during a data update. This happened because the
mutexes where acquired in a different order.
2. A region is deleted eventhough it is still in use. This happens when
libosrm gets overtaken by osrm-datastore, so the new dataset is in
the same region the old one was.
2016-12-16 13:50:17 -08:00
Moritz Kobitzsch
d584bcad11
fix roundabout handling with lanes
...
instead of artificially removing lanes from a roundabout, we don't assing them in the first place.
this also prevents a problem where we would end up collapsing turns with lanes in a roundabout
2016-12-15 13:07:26 +01:00
Daniel Patterson
a51ef67db8
Use common function for clamping logic for all user-visible bearings.
2016-12-15 10:59:17 +01:00
Moritz Kobitzsch
67ce19cb14
fix problem at the source
2016-12-15 10:59:17 +01:00
Michael Krasnyk
84b618ed1a
Add headers consistency check
2016-12-15 10:58:17 +01:00
Moritz Kobitzsch
dc8e6bd8d9
use correct type in graph contractor to avoid overflows in nodes
2016-12-15 10:56:07 +01:00
karenzshea
68e38880df
switch back to lua based env naming
2016-12-15 10:55:16 +01:00
karenzshea
d5904d5756
increase template depth on clang and gcc builds
2016-12-15 10:55:16 +01:00
Daniel J. Hofmann
0f59b78c02
Rewrite lua bindings using sol interface
2016-12-15 10:55:16 +01:00
Daniel J. Hofmann
6e7fe5feb0
Clean plate: luabind ripped out and sol2 basic integration
2016-12-15 10:55:16 +01:00
Daniel Patterson
3dfbf42e61
Don't mark all lanes as designated when there are blank lane specifiers in the tag.
2016-12-15 10:55:16 +01:00
Daniel Patterson
f88f51fd98
Log some memory usage statistics after preprocessing tasks.
2016-12-13 21:59:12 +01:00
Daniel Patterson
8c7f744b1a
Update node weights if traffic data is applied.
2016-12-11 16:02:58 +01:00
Huyen Chau Nguyen
62f0e11bfa
assert that there is an open logger file when trying to log geojson output ( #3417 )
2016-12-09 14:58:20 +01:00
Patrick Niklaus
03d653c0bb
Fix removing shared memory segments in a multi-process setup
2016-12-09 12:18:05 +01:00
Daniel J. Hofmann
cbfb055f81
Changes Single Coordinate Geoms from Point to LineString, closes #3425 .
2016-12-09 11:53:06 +01:00
Moritz Kobitzsch
2288704bb5
don't assign unused name to exception
2016-12-08 13:35:28 +01:00
Daniel J. Hofmann
97dcf4eef9
Fixes Compiler Crashes on Windows
2016-12-08 13:23:21 +01:00
Daniel J. Hofmann
875f482203
Refactors and improves the Sliproad Handler, resolves #3109
2016-12-07 19:22:03 +01:00
Moritz Kobitzsch
df3c39cef5
clean-up guidance code/code in general
...
removes duplicated includes
removes unused includes
eliminates dedicated toolkits that resulted in circular dependencies
moves functionality close to data, where possible
2016-12-07 12:10:56 +01:00
Daniel Patterson
468d8c0031
Refactor logging, improve error handling workflow, clang-format. ( #3385 )
2016-12-06 12:30:46 -08:00
Pepijn Schoen
6f4c6e84ae
Handle file output through a FileWriter, align interfaces for FileWriter and FileReader
2016-12-06 15:59:12 +01:00
Daniel J. Hofmann
949d505783
Removes access_restricted flag internally
2016-12-05 14:15:47 +01:00
Daniel J. Hofmann
9d8b92f418
Abstracts away over differences in IntersectionView and Intersection.
...
Usage:
struct MyIntersection : EnableIntersectionOps<MyIntersection> {
};
Done.
We require MyIntersection having at least the member attributes from
IntersectionViewData but don't enforce a inheritance hierarchy.
2016-12-02 12:32:07 +01:00
Daniel Patterson
928a6f0c7d
Variant got re-packaged, need to update search paths. ( #3392 )
2016-12-01 16:59:29 -08:00
Moritz Kobitzsch
561b7cc58e
Rember Intersection Shapes
...
Changes the processing order in the edge based graph factory.
Instead of iterating over all outgoing edges in order, we compute the edge
expanded graph in the order of intersections.
This allows to remember intersection shapes and re-use them for all possible ingoing edges.
Also: use low accuracry mode for intersections degree 2 intersections
We can use lower accuracy here, since the `bearing`
after the turn is not as relevant for off-route detection.
Getting lost is near impossible here.
2016-12-01 15:24:20 +01:00
Daniel Patterson
5a311012af
Consolidate file reading through the new FileReader class/interface. ( #3321 )
2016-11-30 19:08:01 -08:00
Moritz Kobitzsch
a1127c3e09
reduce numbers of intersections in findNextIntersection, don't normalise for turn lanes
2016-11-30 10:21:53 +01:00
Moritz Kobitzsch
12d58ace10
add support for junction=circular, allowing named circular junctions to be treated as rotaries
2016-11-29 13:44:32 +01:00
Moritz Kobitzsch
4636aaabfe
make can be ignored false by default
2016-11-29 11:47:35 +01:00
Michael Krasnyk
e343f71541
Refactor Hilbert values computation
2016-11-28 14:17:12 +01:00
Moritz Kobitzsch
a49bd70985
add low precision intersection_generator mode for faster graph traversal
2016-11-22 18:25:19 +01:00
Kajari Ghosh
fc52dd85fe
refactor graph_loader ( #3333 )
...
Refactors the GraphLoader class to use the safer FileReader wrapper for better error handling.
2016-11-21 17:32:00 -08:00
karenzshea
0bd08224bf
add comments, refactor find obvious turn
2016-11-21 13:16:30 -05:00
Patrick Niklaus
3bade8625f
Don't crash on assigning nil to a string in lua
2016-11-21 12:17:44 +01:00
Patrick Niklaus
95a584a30d
Make rounding when computing PhantomNode weight symmetric
...
Resolves a problem where the duration in forward and backward direction
was slightly different.
2016-11-18 17:46:32 +01:00
Kerrick Staley
2c9e18d5a9
Hardcode search radius parameters
2016-11-17 17:56:23 +01:00
kerrick-lyft
b73c59088c
Smarter search radius formula for map matching
2016-11-17 17:56:23 +01:00
Michael Krasnyk
ba2629456f
Added a copy of std::align due to missing implementation in gcc < 5
...
References:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=57350
2016-11-17 16:02:56 +01:00
Daniel J. Hofmann
1b4779a58c
Avoids Shuffling Data Around for Nothing, closes 3306
2016-11-17 12:51:18 +01:00
Daniel J. H
73e365d398
Conditionally checks std::is_trivially_copyable only if available. ( #3327 )
2016-11-16 12:07:45 -08:00
Michael Krasnyk
d5bf508046
Fix alignments in shared facade via alignof/std::align
2016-11-16 18:20:19 +01:00
Daniel Patterson
eb12c16fd6
Output newlines for each progress indicator when not on a tty.
2016-11-15 18:14:05 -08:00
Daniel Patterson
17c32f5ce7
Fully revert 04f8b653c94614
2016-11-15 16:55:02 -08:00
Daniel Patterson
53ef2e2955
Use an enum type for the 'should read fingerprint' flag, rather than a mysterious boolean
...
Fix tests.
2016-11-15 16:55:02 -08:00
Daniel Patterson
7b1131b982
Consolidate vector deserialization.
2016-11-15 16:55:02 -08:00
Daniel Patterson
1fc969e6c8
Fix naming convention, and pass-by-reference for data layout.
2016-11-15 16:55:02 -08:00
Daniel Patterson
49f960064c
Partial revert of 04f8b653c94614 - the PackedVector is special.
2016-11-15 16:55:02 -08:00
Daniel Patterson
83a9d0590d
Pass-by-reference instead of pointer.
2016-11-15 16:55:02 -08:00
Daniel Patterson
d8b016b92a
Simplify read error detection.
2016-11-15 16:55:02 -08:00
Daniel Patterson
608044305d
Rename the datafacades to more clearly describe what they do.
2016-11-15 16:55:02 -08:00
Daniel Patterson
2dfeb0cabc
Remove unused code.
2016-11-15 16:55:02 -08:00
Daniel Patterson
2f9b5788d0
Destructor should fail hard if an exception is raised.
2016-11-15 16:55:02 -08:00
Daniel Patterson
be496eb4e3
Return the type we claim it will return.
2016-11-15 16:55:02 -08:00
Daniel Patterson
97244557b1
Don't need to use new, make_unique<> can do what we need here.
2016-11-15 16:55:02 -08:00
Daniel Patterson
e2e5eb0169
Remove use of ShM<>::vector in favour of the boost::iterator_range
2016-11-15 16:55:02 -08:00
Daniel Patterson
6949d7ee5b
Remove ownership of block pointers from base class.
2016-11-15 16:55:02 -08:00
Daniel Patterson
4ad6d88888
Refactor file loading to use a common class that has proper error handling.
2016-11-15 16:55:02 -08:00
Daniel Patterson
e226b52f21
const-ify things, use RAII for file closure, and start to use io:: to read some stuff.
2016-11-15 16:55:02 -08:00
Daniel Patterson
b1125b7f1f
Rename base class to something more in line with it's actual function.
2016-11-15 16:55:02 -08:00
Daniel Patterson
33ff92d27e
Remove debugging code.
2016-11-15 16:55:02 -08:00
Daniel Patterson
bf6df74d44
Consolidate datafacade file loading logic.
...
Both datafacades now use a single large memory block and common
file loading logic.
2016-11-15 16:55:02 -08:00
Daniel J. Hofmann
8f6dd805e5
Fixes ODR Violation in Graph Loader, closes #3308
2016-11-15 12:04:13 +01:00
Daniel J. Hofmann
7e4020c010
Allocates memory for the node info list upfront.
...
Turns out we were not doing this. Huh.
Callstack:
- 78583d2c8c/include/util/graph_loader.hpp (L65-L68)
- 538bbd47d1/src/extractor/extractor.cpp (L423-L424)
- 78583d2c8c/src/extractor/extractor.cpp (L465-L466)
- 78583d2c8c/src/extractor/extractor.cpp (L254-L261)
2016-11-15 00:06:52 +01:00
Moritz Kobitzsch
78583d2c8c
fix getTurnDirection, widen straight
range, adjust tests accordingly
2016-11-14 11:09:14 +01:00
Michael Krasnyk
b57169e221
Flush stxxl vectors before using in PrepareData
2016-11-12 02:09:51 +01:00
Moritz Kobitzsch
f88ac989ea
reserve when possible
2016-11-11 14:48:50 +01:00
Moritz Kobitzsch
827a1fbd7a
separate intersection generation and intersection normalization
2016-11-10 12:56:46 +01:00
Moritz Kobitzsch
e84a0ea37c
reduce coordinate_extraction overhead. slowdown reduced by 30 percent
2016-11-10 10:44:54 +01:00
Moritz Kobitzsch
7073403f1b
rip out dedicated file for single function (minor refactor)
2016-11-09 12:52:39 +01:00
Daniel Patterson
af7960a796
Fix buffering of query box - it was shrinking in the Y axis, rather than growing.
2016-11-08 11:45:28 -08:00
Daniel Patterson
4c6d6aeaa7
Fix retrieval of forward/reverse data.
2016-11-08 11:45:27 -08:00
Moritz Kobitzsch
9c11f4231c
add locations feature to allow testing turn locations, fix minor bug breaking the arrival location
2016-11-08 13:42:15 +01:00
Moritz Kobitzsch
837ab105ad
fix error in ordering arguments for requiresNameAnnounced versions
2016-11-08 12:14:23 +01:00
Daniel J. Hofmann
6ac9617d49
Adapt test to returning ref, Take Pronunciation into Account, Fixes name change heuristic usage in UTurn check
2016-11-08 12:14:23 +01:00
Daniel J. Hofmann
c1651ccb12
Uses Name Change Heuristic Instead of Comparing Name Ids
...
References:
- https://github.com/Project-OSRM/osrm-backend/issues/2857
- https://github.com/Project-OSRM/osrm-backend/pull/2900
- https://github.com/Project-OSRM/osrm-backend/issues/2909
2016-11-08 12:14:23 +01:00
Kajari Ghosh
f33180f092
request polyline with precision of 5 or 6 positions ( #3220 )
2016-11-07 15:11:21 -05:00
Moritz Kobitzsch
2fb40944bf
pull in intersection finder accumulator
2016-11-04 13:28:09 +01:00
Moritz Kobitzsch
cd03877c90
link ConnectedRoad and TurnOperation via class hierarchy
...
and empower intersection by adding basic functionality to pod type
refactor extractor/toolkit into intersection
2016-11-03 13:42:29 +01:00
Patrick Niklaus
08a5648e3e
Use coorect osm ids for start/target segment
2016-11-02 17:52:41 +00:00
Moritz Kobitzsch
faa5185440
add node-based-graph traversal capabilities
2016-11-02 15:38:09 +01:00
Moritz Kobitzsch
4ba8ccfcce
add a geojson debugger that allows creating features for easy inspection
2016-11-02 14:54:00 +01:00
Kajari Ghosh
c30f43b148
added max_speed to the profiles ( #3089 )
2016-11-01 17:13:10 -04:00
Denis Koronchik
5da63998d6
Add support of custom ServiceHandler
2016-10-31 15:38:03 +01:00
Kajari Ghosh
6fc0609a62
Map matching test coverage fix ( #3201 )
...
* fixed map matching test coverage
2016-10-29 11:22:09 -04:00
Patrick Niklaus
f02b7b0910
[skip ci] Fix formating using format.sh
2016-10-28 14:45:05 -07:00
Denis Koronchik
dc7e61c25d
Fix declaration of makeRouteStep function
2016-10-27 20:12:02 +02:00
Moritz Kobitzsch
88c3f4c481
Considering multiple small turns, right after each
...
other can result in a combined turn angle that is
straight instead of turning left and right.
2016-10-27 19:19:23 +02:00
Moritz Kobitzsch
01a2c66472
rip out unused m_node_info_list
2016-10-27 18:51:59 +02:00
Huyen Chau Nguyen
cf35bbeb50
refactor function names; consolidate readCount() functions;
...
remove templated types as much as possible for type safety;
add more comments;
clean up code, add const if possible;
2016-10-26 13:18:52 -07:00
Huyen Chau Nguyen
fe94977c9b
refactor loading code of .ramIndex files and move to io.hpp
2016-10-26 13:18:52 -07:00
Huyen Chau Nguyen
69a60686dc
refactor loading code of .datasource_indexes and .datasource_names files and move to io.hpp
2016-10-26 13:18:52 -07:00
Huyen Chau Nguyen
7b97e1035f
refactor loading code of .nodes and .edges files and move to io.hpp
2016-10-26 13:18:52 -07:00
karenzshea
c4f010e363
read properties stream to size of properties object, not 1
2016-10-26 13:18:52 -07:00
karenzshea
51ebadfc45
deduplicate code for loading profile properties into io.hpp
2016-10-26 13:18:52 -07:00
Michael Krasnyk
7753845f5c
Make thread-locked access to stxxl containers
...
From stxxl FAQ: "you should not share a data structure between
threads (without implementing proper locking yourself)."
The access to name_char_data can be implicitly parallelized
if _GLIBCXX_PARALLEL is defined and invalidate local-thread iterators.
2016-10-25 10:03:26 -07:00
Patrick Niklaus
b8795c7341
Rename increasingly inaccuratly named distance member of QueryEdge to weight
2016-10-21 21:00:02 +02:00
jakepruitt
c30784895d
clang-format and remove debug
2016-10-20 11:32:28 -07:00
jakepruitt
fa1fc810ea
std::for_each -> std::copy
2016-10-20 11:32:28 -07:00
jakepruitt
052b0e831d
Remove debug logging
2016-10-20 11:32:28 -07:00
jakepruitt
42271d99b2
Store node ID's and weights separately in CompressedEdgeContainer
...
Removes CompressedEdges from the extractor and shared data format by
directly serializing vectors of node ID's, forward weights and reverse
weights for each node-based-edge
Refs #2575
2016-10-20 11:32:28 -07:00
Moritz Kobitzsch
ecee13bffa
actually calculate distance instead of using .distance
which is a timing value
2016-10-20 12:27:02 +02:00
Moritz Kobitzsch
5e167b8745
Turn Angles in OSRM were computed using a lookahead of 10 meters.
...
This PR adds more advanced coordinate extraction, analysing the road
to detect offsets due to OSM way modelling.
In addition it improves the handling of bearings. Right now OSM reports
bearings simply based on the very first coordinate along a way.
With this PR, we store the bearings for a turn correctly, making the
bearings for turns correct.
2016-10-20 10:47:29 +02:00
Huyen Chau Nguyen
2d13116487
fix memory leak of char[] initialization
2016-10-19 17:26:21 -07:00
Huyen Chau Nguyen
316ef305de
Refactor loading code for timestamp file
2016-10-19 17:26:21 -07:00
Daniel J. Hofmann
ab1a9271c8
Canonicalizes Spaces in Semicolon Stringlists, fixes #3086
2016-10-19 14:14:18 -07:00
Daniel J. Hofmann
18bc02f087
Collapses Double OSRM <-> Engine <-> .. PImpl Indirection, Resolves #3019 .
2016-10-19 13:42:08 -07:00
Moritz Kobitzsch
2a2abe9e0f
remove unused class DiscreteAngle
2016-10-19 21:40:45 +02:00
Patrick Niklaus
b7ee38eca7
Refactored loading code for .hsgr file
2016-10-19 19:59:23 +02:00
Patrick Niklaus
81c5cba0e5
Recover from stale mutexes with force unlocking and retry
2016-10-18 21:58:50 +02:00
Patrick Niklaus
caa7c994a0
Make SharedDataFacade try to cleanup
2016-10-18 21:58:50 +02:00
Patrick Niklaus
847f530c8e
Only keep reader lock on shared memory during queries.
2016-10-18 21:58:50 +02:00
Patrick Niklaus
c69545c47a
Don't block all requests to switch data
...
This switchtes the data even if there are requests still running on the
old data. osrm-datastore then waits until all of these old requests have
finished before freeing the old regions.
This also means that osrm-datastore will return with an error if there
is a data update currenlty in progress.
2016-10-18 21:58:50 +02:00
Patrick Niklaus
1557ff81bc
Simplify the locking logic
2016-10-18 21:58:50 +02:00
Patrick Niklaus
ebac9f586b
Adapt SharedMemory ownership changes from @oxidase
...
We don't leak any pointers anymore and make owning the shared memory
explicit.
2016-10-18 21:58:50 +02:00
Patrick Niklaus
2512cf386d
Add better debug log output
2016-10-18 21:58:50 +02:00
Patrick Niklaus
da04563e26
Added header guards
2016-10-18 21:58:50 +02:00
Patrick Niklaus
ceaf362326
Make SharedDataFacade immutable
2016-10-18 21:58:50 +02:00
Huyen Chau Nguyen
d0c142b9c7
remove util self-written make_unique and use C++14 stdlib make_uniqe
2016-10-17 15:27:14 -07:00
Moritz Kobitzsch
46c936b48e
handle trips with identical coordinates
2016-10-17 15:26:38 -07:00
karenzshea
72fa35da10
add a toolkit function to find lanes to the left/right of turn lanes
2016-10-13 17:59:25 +02:00
karenzshea
ee012ae2da
valid tiles are >= z12
2016-10-12 10:03:43 -04:00
Patrick Niklaus
9eb7fc03ce
Use a shared (!) reader writer lock to protect CURRENT_REGIONS
...
This fixes issue #3016 .
2016-10-10 12:13:45 +02:00
Daniel J. Hofmann
d964b81308
Silence static visitor upstream deprecation warnings.
2016-10-06 21:08:48 +02:00
Lauren Budorick
a75e16e26b
Deduplicate foward/reverse geometries
...
Changes the internal representation of compressed geometries to be a
single array shared between forward and reverse geometries that can be
read in either direction. Includes a change on
extractor::OriginalEdgeData to store via_geometry ids that indicate
which direction to read the geometry for that edge based edge.
Closes #2592
2016-10-06 10:09:57 -07:00
Moritz Kobitzsch
73179641b1
clang-format code
2016-10-06 14:06:19 +02:00
Patrick Niklaus
1c2ead8fb8
Make DataFacade local to every request
...
This is the first step to having fine grained locking on data updates,
see issue #2570 .
2016-10-06 12:56:38 +02:00
Daniel J. Hofmann
d17eacc52b
Makes the OSRM interface threadsafe.
...
Technically speaking we're changing the `libosrm` API.
But since we're only lifting restrictions by marking the API threadsafe,
we should be fine here.
2016-10-04 09:32:22 +02:00
Daniel J. Hofmann
d86bba3e24
Re-introduces the old RouteParameters
ctor for API compatibility, see #2978
2016-10-03 20:00:12 +02:00
Moritz Kobitzsch
d1f1358e48
adjust for comments by daniel-j-h
2016-09-30 17:27:14 +02:00
Daniel Patterson
805d93912d
Construct an adjacency list in order to discover turns.
2016-09-30 17:12:23 +02:00
Daniel Patterson
c8eb2b2d11
Refactor edge unpacking so that it's CH indepenent and we don't repeat ourselves so much.
2016-09-30 17:12:22 +02:00
Lauren Budorick
14e7460465
Include turn information in debug tiles.
2016-09-30 17:12:20 +02:00
Moritz Kobitzsch
10b93c6908
re-introduce space into summaries
2016-09-30 14:36:09 +02:00
Moritz Kobitzsch
e4d0d49300
move summaries to car profile, test for references, use boost adaptors
2016-09-30 10:59:23 +02:00
karenzshea
cbb96ce7f4
handle empty names in summaries
2016-09-30 10:43:36 +02:00
Ansis Brammanis
7e2663f2ad
calculate roundabout radius from circumference, fix #2716
2016-09-29 10:42:42 +02:00
karenzshea
3d5a53566c
implement flag edge-weight-updates-over-factor, to log edge weight
...
updates over provided x factor
2016-09-28 15:19:59 +02:00
Moritz Kobitzsch
0abd32fca3
prefer first result
2016-09-28 10:32:33 +02:00
Daniel J. Hofmann
d1f555dcef
Removes unused JSON logger.
...
References:
- https://github.com/Project-OSRM/osrm-backend/pull/2769
2016-09-28 10:01:56 +02:00
Daniel J. Hofmann
bbbbacb073
Reworks Restriction Whitelist / Blacklist, resolves #2833
...
Takes a stricter aproach for whitelisting / blacklisting restrictions:
- uses `restriction=`
- uses more specific `restriction:<type>=`
- uses `except=<type>` to invert
Where `type` is the type of transportation to restrict, e.g. `motorcar`.
https://github.com/Project-OSRM/osrm-backend/issues/2833
2016-09-28 09:35:02 +02:00
Daniel J. Hofmann
60010dd998
Reduce NewName Instructructions / Name Changes
...
With @karenzshea's name / ref split (ref. #2857 ) in master we want to
make use of it and reduce `NewName` instructions when ever possible.
This is a first step towards #2744 by using the already existing name
change heuristic from the extractor now in post-processing as well.
Limitations: at the moment we don't have the `SuffixTable` in
post-processing; this would require us serializing and subsequently
deserializing the table, passing it through from the profiles to the
API.
2016-09-21 12:42:39 +02:00
Moritz Kobitzsch
3a49635eb7
remove dead code
2016-09-16 07:14:44 +02:00
Moritz Kobitzsch
861314256e
fix roundabout-intersection on immediate exit
2016-09-13 19:16:45 +02:00
Daniel J. Hofmann
e3c1b133bf
Adds a limit for number of results returned in Nearest service, resolves #2872
2016-09-12 11:59:08 +02:00
Daniel J. Hofmann
e6fe9d0d67
Fixes issue where two ways with same name but different pronunciation where deduplicated, resolves #2860
2016-09-09 18:28:44 +02:00
Daniel J. Hofmann
e3a38a6b0d
Fixes compilation against newer Boost versions; seems like we were lucky before; closes #2889
2016-09-09 16:14:25 +02:00
Daniel J. Hofmann
a289e1cd96
Fixes bearing range of zero exhaustive graph traversal
2016-09-08 17:33:50 +02:00
karenzshea
dcc1b5ab2b
return name and reference separately
2016-09-08 14:28:23 +02:00
Moritz Kobitzsch
938dff011f
handle all our new strings correctly, introduce rotary_pronunciation
2016-09-07 16:09:13 +02:00
Moritz Kobitzsch
9123c93a90
fix interaction between sliproads/segregated intersections
2016-09-07 12:36:29 +02:00
Moritz Kobitzsch
a551286a8f
adjust testscases for collapse of use lane
2016-09-07 12:17:36 +02:00
Daniel J. Hofmann
86fd04e556
Improves lane handling for subsequent going straight, resolves #2625
...
Before we only worked on subsequent quick turns, as in:
`right, right` keeps the user on the rightmost lanes.
This changeset modifies the logic to work on any subsequent steps
that are "quick" and have lane information we can constrain later.
Because we do not have a from-lane => to-lanes mapping we take the
lanes left and right of the turn lanes into account when heuristically
assigning the leftmost / rightmost lanes.
There are some edge cases where this still does not give us the optimal
solution but it gets close to what is actually possible at the moment
without having a lane mapping in post-processing.
References:
- https://github.com/Project-OSRM/osrm-backend/issues/2625
fix rebase
2016-09-07 12:17:36 +02:00
Moritz Kobitzsch
b6dbf81206
don't assign lanes on delayed turns
2016-09-07 12:17:34 +02:00
Moritz Kobitzsch
3b81b39998
turn lane handler moved to scenario based handling
2016-09-07 12:16:59 +02:00
Moritz Kobitzsch
f7265892ed
correctly detect loss of prefix/suffix
2016-09-05 15:03:21 +02:00
Daniel J. Hofmann
8b144f22c9
Exposes osrm::exception for client usage, resolves #2813
2016-09-01 09:12:35 +02:00
Patrick Niklaus
da9d63a384
Always overwrite m_is_core_node on data swap
...
This fixes a seg fault when swapping between core/no core datasets
2016-08-30 17:31:08 +02:00
Patrick Niklaus
c5e85f3d6d
Set parent nodes of core entry nodes not to themselves
2016-08-30 17:31:08 +02:00
Moritz Kobitzsch
d06eec5e42
improve segregated road detection
2016-08-24 10:34:07 +02:00
Moritz Kobitzsch
9648821a79
handle missing cases, cleaning up
2016-08-24 10:34:07 +02:00
Moritz Kobitzsch
6a2518c0df
handle stronger merge cases as well
2016-08-24 10:34:07 +02:00
Moritz Kobitzsch
7886d06839
adjust angles pre-merge as well
2016-08-24 10:34:07 +02:00
Moritz Kobitzsch
5a9eb6ef72
prepare solution
2016-08-24 10:34:07 +02:00
Moritz Kobitzsch
9b2f6585fb
handle non-through case
2016-08-24 10:12:27 +02:00
Moritz Kobitzsch
766e2713ab
fix segmentation fault for via-routes with invalid intermediate segments
2016-08-23 14:17:32 +02:00
Moritz Kobitzsch
e8bae78749
fix errors introduced in refactor
2016-08-18 11:36:36 +02:00
Daniel J. Hofmann
d53c267129
Be more aggresive classifying Roundabout Intersections.
...
Roundabout Intersections are roundabouts with up to four ways and turn
angles which makes the turns obvious, e.g. as in:
```
*
*
* * * *
*
*
```
but not
```
*
*
* * *
* *
* *
```
For Roundabout Intersections we issue instructions such as
"turn <direction>" instead of "take the <nth> exit".
At the moment we have a limit on the radius for these Roundabout
Intersections of 5 meters. Which fails to classify a wide range of
Roundabout Intersections in the US (with the US-wide streets).
This changeset removes the Roundabout Intersection radius limit:
- if the roundabout is larger than a threshold and is named we classify
it as a rotary
- if the roundabout matches our criteria for Roundabout Intersections
we classify it as a Roundabout Intersection
- else fallback to plain old Roundabout
There is a second issue with determining a roundabout's radius.
But that's for another pull request (tracking in #2716 ).
References:
- https://github.com/Project-OSRM/osrm-backend/issues/2716
2016-08-18 10:50:32 +02:00
Lev Dragunov
89f1071947
Static checks for guidance array sizes.
2016-08-12 18:52:54 +03:00
Patrick Niklaus
677306eeee
Merge pull request #2707 from oxidase/left_side_driving
...
Left side driving
2016-08-05 18:09:10 +02:00
Patrick Niklaus
6bfe3a2d41
Merge pull request #2733 from gavinsherry/master
...
Remove unused variable node_info_list
2016-08-04 11:24:33 +02:00
Daniel J. Hofmann
7f71f0ed12
Warn on unused return values in guidance code, resolves #2686 .
...
https://github.com/Project-OSRM/osrm-backend/pull/2685/files
fixes an issue where we did
elongate(fstStep, sndStep);
instead of
newStep = elongate(fstStep, sndStep);
we didn't get any warnings.
The only way to trigger a warning here is to use
```cpp
__attribute__((warn_unused_result))
```
This changeset does exactly that: for the new guidance code prone to
these kind of issue we add such an attribute to the declaration.
2016-08-03 12:26:07 +02:00
Daniel J. Hofmann
b24f5c7c1a
Adapt lane dump to lanes at intersection ( #2675 ), resolves #2709
2016-08-03 12:19:14 +02:00
Gavin Sherry
b09f637d02
Remove unused variable node_info_list
2016-08-02 14:17:57 -07:00
Moritz Kobitzsch
0d36d472c9
change paradigm of merge to only emit on motorway-like roads
2016-07-30 23:55:39 +02:00
Daniel Patterson
35422a0fb5
Clang format.
2016-07-30 23:53:38 +02:00
Daniel Patterson
d012b44b7f
Filter out edges that have any speed=0 segments.
...
They become non-snappable and non-routable. Note that a single segment
of speed=0 will eliminate the entire edge.
2016-07-30 23:53:38 +02:00
Michael Krasnyk
c918a7957b
Updated format and ChangeLog
2016-07-28 22:59:22 +02:00
Lauren Budorick
c09b9b4c99
Initial left hand driving implementation
2016-07-28 22:59:22 +02:00
Daniel Patterson
280b000f07
Include datasources for each segment in route annotation.
2016-07-27 15:51:11 -07:00
Patrick Niklaus
c7a1576100
Apply clang-format again
2016-07-26 15:00:58 +02:00
Daniel Patterson
0b868969be
Remove generic std::exception handlers, they don't seem to be adding value, and they hide useful info.
2016-07-26 11:43:08 +02:00
Patrick Niklaus
b4710633b1
Rename function to reduce confusion
2016-07-26 11:23:14 +02:00
Moritz Kobitzsch
7d076e9344
handle access flags for lanes
2016-07-25 20:01:58 +02:00
Daniel J. Hofmann
748fd3efa9
Remove lanes from roundabouts, closes #2626
...
After half a day of looking at the tagging and the data came to the
following conclusion:
We can't keep the user to the innermost / outermost lanes depending on
the exit the route takes: we found situations where both heuristics were
wrong.
Even on popular roundabouts the tagging is often wrong or in the best
case not present at all.
There are at least two different ways to interpret roundabout
indications: 1/ where e.g. a right arrow on the lane indicates turn
restrictions for the roundabout and the need to take this lane to exit
the roundabout to the right (possibly skipping multiple exits) and 2/
where a right arrow just means this is a lane in a immediate right turn.
Example: Australia marks lanes with arrows that seem to indicate
"angles you can exit the roundabout from", for example, these two ways:
- http://www.openstreetmap.org/way/320941710
- http://www.openstreetmap.org/way/42918021
Whereas Germany marks lanes with "directions you can travel in these
lanes immediately after entering the roundabout":
- http://www.openstreetmap.org/way/52578338
These two different interpretations of how to draw the arrows on the
roads mean we have conflicting solutions to "which lanes can you use to
take exit B from entry A" based on locality.
Continuing to tag ways based on lane markings is no problem, but
unfortunately, we can't reliably resolve good advice for navigation
system users (like "use the inside lane to take the second exit at the
roundabout"), there are too many situations that would generate bad
instructions (instructions that tell users to go into a lane they
shouldn't use).
2016-07-25 19:29:55 +02:00
Moritz Kobitzsch
1fc63e1e72
move hardcoded road priorities into profiles, change road classification
2016-07-25 13:07:54 +02:00
Moritz Kobitzsch
9e323d2d42
improve sliproad / fork handling
2016-07-22 15:16:59 +02:00
Konstantin Käfer
1309dd2a0f
Switch profiles from Lua to library interface
...
There's now an abstracted interface and no direct calls to Lua anymore.
fixes #1974
2016-07-22 15:03:57 +02:00
Moritz Kobitzsch
41ba20ca9a
switch api format to new structure
2016-07-21 17:42:10 +02:00
Moritz Kobitzsch
0e017a6ce5
collapse use-lane instructions if possible
2016-07-20 10:23:26 +02:00
Moritz Kobitzsch
396add1e9d
make roundabout maneuvers continuous with respect to lane changes
2016-07-20 09:55:30 +02:00
Moritz Kobitzsch
ee47afbe17
fix 2672
2016-07-19 17:06:47 +02:00
Daniel J. Hofmann
abde215bc3
Remove semantically wrong ordering for LaneTupel
2016-07-18 12:33:56 +02:00
Patrick Niklaus
4fcb5d28a4
Merge pull request #2624 from oxidase/issues/2617
...
Fix ambiguous data issues
2016-07-13 11:20:40 +02:00
Patrick Niklaus
3ebdacf369
Merge pull request #2629 from ssuluh/master
...
Fix windows compilation with regard to struct/class packing
2016-07-13 11:08:34 +02:00
Daniel J. Hofmann
e76e39a398
Improves Lane Handling for Multi-Hop Roundabout Instruction
...
This changeset implements Lane Anticipation on roundabouts, delimited
by enter / leave step pairs. It does not handle lane anticipation
within a roundabout.
Lane anticipation happens on the granularity of a valid roundbaout:
We discard partial roundabout (enter without exit or exit without
enter) or data issues (no roundabout, exit before enter).
Related:
- https://github.com/Project-OSRM/osrm-backend/issues/2626 for lanes
within a roundabout
- https://github.com/Project-OSRM/osrm-backend/issues/2625 for handling
going straight in lane anticipation
2016-07-13 10:44:12 +02:00
Surya Suluh
2091c3443b
Fix windows compilation with regard to struct/class packing
2016-07-11 09:47:04 -04:00
Michael Krasnyk
2b466b2fb2
Fix ambiguity in edges by using names lexicographical order
2016-07-11 05:54:30 +02:00
Moritz Kobitzsch
0e4061f858
deduplicate code for roundabout handling
2016-07-01 11:34:44 +02:00
Daniel Patterson
ec02cdc4cc
Use mmap instead of read - it's a lot faster here.
...
Also clean up construction of STRONG_TYPEDEF so that it can be
packed properly in structs (this explains all the () -> {}) changes
here.
2016-06-27 17:24:30 -07:00
Moritz Kobitzsch
5905708111
expose lanes as enums, adjusted for comments
2016-06-27 11:12:02 +02:00
Moritz Kobitzsch
5d91b759d1
Implement Turn Lane Api
2016-06-27 10:07:48 +02:00
Daniel J. Hofmann
ec0a1a4ab1
Anticipate Lane Changes
2016-06-27 10:07:43 +02:00
Moritz Kobitzsch
efa29edf09
basic turn lane handling
2016-06-27 10:07:41 +02:00
Daniel J. Hofmann
df877aca1b
Hard-abort on assertion and show detailed information, solves #2579
...
From
> [warn} oops
to
> [assert] /tmp/osrm-backend/src/extractor/extractor.cpp:79
> in: int osrm::extractor::Extractor::run(): false
> terminate called without an active exception
2016-06-23 18:57:35 +02:00
Patrick Niklaus
d186ae1863
Fix semi-colon warnings
2016-06-22 13:20:55 +02:00
Patrick Niklaus
fddc19e98d
Fix regressed formating
2016-06-21 22:25:48 +02:00
Moritz Kobitzsch
2868f702a5
fix issues with roundabouts and intersections and sliproads
2016-06-21 16:56:57 +02:00
Daniel J. Hofmann
b98431e8e6
Use BaseDataFacades in guidance and prevent ODR violations with inline
2016-06-21 00:49:06 +02:00
Moritz Kobitzsch
3c8781855e
handle steep off-ramps
2016-06-21 00:47:43 +02:00
Michael Krasnyk
04e334e3e2
Make storage blocks aligned to 4 bytes for ARM NEON/VFP instructions
...
Aligned blocks prevent bus errors in NEON/VFP instructions.
Block pointers are aligned to 4 bytes, that is guaranteed
by aligned mmaped-pointers, the 4 bytes size of the CANARY block and
aligned sizes of blocks.
2016-06-20 22:45:40 +02:00
Michael Krasnyk
12d4832037
Fix platform-independent data in data files
2016-06-20 22:45:40 +02:00
Michael Krasnyk
543e4fb57d
Fix rounding issue in query coordinates by using toFixed
...
that internally uses boost::numeric_cast<std::int32_t>
instead of static_cast<std::int32_t>
2016-06-20 22:45:40 +02:00
Michael Krasnyk
911d1e81b6
Make explicit promotion to int64_t
...
to avoid incorrect promotions for 32 bit size_t
2016-06-20 22:45:40 +02:00
Michael Krasnyk
ae06300c17
Fix unused variables warnings in crc32
2016-06-20 22:43:28 +02:00
Moritz Kobitzsch
306744e5cb
fix roundabout-handling when name changes
2016-06-17 11:02:14 +02:00
Moritz Kobitzsch
3ca32898a1
move guidance decision into debug header
2016-06-15 11:30:30 +02:00
Patrick Niklaus
e9a0beb4e8
Fix shared memory encoding for node-ids
2016-06-12 20:50:57 +02:00
Daniel J. Hofmann
033dc0a72d
Pre-allocate up-front whenever possible
2016-06-09 16:06:27 +02:00
Moritz Kobitzsch
312e86eb58
handle merge on collapsed instructions
2016-06-06 11:55:14 +02:00
Moritz Kobitzsch
1dfdb38d4a
improve collapse-handling
2016-06-06 10:05:18 +02:00
Daniel J. Hofmann
dfa762bccc
Pronunciation.
...
Spelling is hard. Maybe this time. /cc @themarex @systemed
2016-06-02 16:35:21 +02:00
Daniel J. Hofmann
801cc72691
Sync with Clang38 Format
2016-06-02 14:43:27 +02:00
Lauren Budorick
058b8c3b31
Template vector
2016-06-02 14:27:25 +02:00
Lauren Budorick
ae3ccb009e
Formatting [ci skip]
2016-06-02 14:27:25 +02:00
Lauren Budorick
0c60a2aef8
Minor cleanups + comments
2016-06-02 14:27:25 +02:00
Lauren Budorick
44fdf86702
IT WORKS
2016-06-02 14:27:25 +02:00
Lauren Budorick
1659bbf7b1
Refining packed_vector.hpp
...
* Rename to std::vector-like APIs (push_back, at)
* Add size, reserve, capacity methods
2016-06-02 14:27:25 +02:00
Lauren Budorick
46b58fba83
Packed vector cleanups and unit test
2016-06-02 14:27:25 +02:00
Lauren Budorick
84da86ba4a
Add packed vector sketch
2016-06-02 14:27:25 +02:00
Lauren Budorick
a4ac07866a
Recreate feature/expose_node_ids
2016-06-02 14:27:25 +02:00
Daniel J. Hofmann
448f8377fb
Sync with Clang38 Format
2016-06-02 13:14:33 +02:00
Daniel J. Hofmann
6edc565c01
Add destinations API feature
2016-06-02 12:00:23 +02:00
Moritz Kobitzsch
58d6e8f4d0
handle short summaries correctly
2016-06-02 00:26:04 +02:00
Moritz Kobitzsch
bdc66049a5
fix INVALID_NAME_ID vs INVALID_NAMEID -> EMPTY_NAMEID
2016-06-01 23:19:26 +02:00
Patrick Niklaus
0a53775fb3
Expose pronunciation in RouteStep
...
Uses name:pronunciation by default for cars.
2016-06-01 23:17:57 +02:00
Michael Krasnyk
25d3c4b843
Updated change log and adjusted format
2016-05-29 07:39:49 +02:00
Michael Krasnyk
371c06d66d
Change size of QueryCandidate from 32 to 24 bytes
2016-05-29 07:39:49 +02:00
Michael Krasnyk
3e5c978719
Reduce ramIndex file size
...
PR #2472 : the bottom-most node of the r-tree contains
only a single index to a leaf node, so out of 532 bytes
only 4 are used.
2016-05-29 07:39:49 +02:00
Michael Krasnyk
843f1a6356
Set LeafNode alignment to LEAF_PAGE_SIZE bytes
...
References:
- https://github.com/Project-OSRM/osrm-backend/pull/2348#issuecomment-219804408
- http://stackoverflow.com/questions/15523537/alignas-specifier-vs-attribute-aligned-c11
- http://stackoverflow.com/questions/7895869/cross-platform-alignx-macro
2016-05-29 07:39:49 +02:00
Patrick Niklaus
6e16eab6ec
Format with clang-format 3.8
2016-05-27 21:05:04 +02:00
Patrick Niklaus
d6de2ca71c
Really place annotations in RouteLeg and not Route
2016-05-27 16:46:28 +02:00
Patrick Niklaus
262354f733
Rename annotate to annotations
2016-05-26 23:35:11 +02:00