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
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
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
a551286a8f
adjust testscases for collapse of use lane
2016-09-07 12:17:36 +02:00
Patrick Niklaus
2f6de614c1
Ignore any following columns in a CSV file
2016-08-18 10:19:36 +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
Patrick Niklaus
c7a1576100
Apply clang-format again
2016-07-26 15:00:58 +02:00
Patrick Niklaus
060ec99678
Fix devide by zero when updating speeds
2016-07-21 18:57:21 +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
efa29edf09
basic turn lane handling
2016-06-27 10:07:41 +02:00
Michael Krasnyk
12d4832037
Fix platform-independent data in data files
2016-06-20 22:45:40 +02:00
Patrick Niklaus
cd30f370b8
Remove the use of atomics and use thread-local accumulation instead
2016-05-29 00:06:18 +02:00
Dane Springmeyer
4ae8abe6a3
run clang-format [skip ci]
2016-05-27 22:35:17 +02:00
Dane Springmeyer
82bfd4ee40
fix compile with clang-3.5
2016-05-27 22:35:17 +02:00
Patrick Niklaus
6e16eab6ec
Format with clang-format 3.8
2016-05-27 21:05:04 +02:00
Freenerd
a21fd2ea18
Contractor: log stats for loaded speed files
2016-05-24 14:35:16 -04:00
Daniel Patterson
0587c5f5c4
Trim datasource names before writing to datafile.
2016-05-24 15:20:14 +02:00
Daniel J. Hofmann
ce5ae411c1
Resurrect Flat Map + Binary Search commit from PR 2412
2016-05-20 20:43:45 +02:00
Daniel J. Hofmann
6aa97048df
Rip out custom CSV parser code and its third_party dependency
2016-05-19 00:01:54 +02:00
Daniel J. Hofmann
d9a5c79ea6
Map leaf nodes to RAM and iterate over them potentially in parallel
2016-05-19 00:01:54 +02:00
Daniel J. Hofmann
9d7714c714
Make looping through all leaf nodes less confusing
2016-05-19 00:01:54 +02:00
Daniel J. Hofmann
8291be375a
Expose concurrency in saving files
2016-05-19 00:01:54 +02:00
Daniel J. Hofmann
0a73737f69
Fold parsing and data loading in concurrently executing action
2016-05-19 00:01:54 +02:00
Daniel J. Hofmann
2fd1b6c913
Expose concurrency between intern/external node map and geometries
2016-05-19 00:01:54 +02:00
Daniel J. Hofmann
ea38a1d880
Parse multiple files concurrently
2016-05-19 00:01:54 +02:00
Daniel J. Hofmann
f576e13c51
Concurrent lookup hashtables
2016-05-19 00:01:54 +02:00
Daniel J. Hofmann
ee7bb8731a
Expose concurrency between segment speeds and turn penalties
2016-05-19 00:01:54 +02:00
Daniel J. Hofmann
da0c3ff394
Refactor edge weight parsing code
2016-05-19 00:01:54 +02:00
Daniel J. Hofmann
6ae559b42b
Throw error if edge based graph file could not be loaded
2016-05-19 00:01:54 +02:00
Michael Krasnyk
2acde49f0f
Make LeafNode aligned to memory pages.
...
Changes:
* LeafNode is aligned to LEAF_PAGE_SIZE.
Alignment brings 24 bytes memory overhead for 4096, but reduces
cache misses rate.
* Unused m_element_count from leaf nodes file.
The size is computed as m_leaves_region.size() / LEAF_PAGE_SIZE.
* Added try/catch for mmap exceptions messages.
2016-05-07 23:52:11 +02:00
Lauren Budorick
b8f7569e93
Implement arbitrary turn penalty file IO and integration ( #2306 )
...
Closes #1830
2016-04-29 00:48:13 -07:00
Patrick Niklaus
7416653874
Force correct type deduction for irange on windows
2016-04-12 18:11:08 +02:00
Patrick Niklaus
cb8bfa027e
Only allow to specify the common base path
2016-04-05 22:58:32 +02:00
Daniel Patterson
11b356e55f
Enables the use of multiple segment-speed-files on the osrm-contract
...
command line, and exposes the file name used for each edge in the debug
tiles.
2016-04-05 22:58:32 +02:00
Patrick Niklaus
b08b360f38
Big Restructuring / Cleanup
2016-04-05 22:58:32 +02:00
Moritz Kobitzsch
ef1e0e14ec
advanced guidance on 5.0
2016-04-05 22:58:32 +02:00
Patrick Niklaus
d9d4742130
First round of lat,lng -> lng,lat switcheroo
2016-04-05 22:58:32 +02:00
Daniel J. Hofmann
a013da860e
Fixes unneeded includes in contractor header and self-include
2016-03-15 10:44:33 +01:00
Daniel J. Hofmann
ac0279aa83
RAII for auto-closing file streams
...
Small fixes I didn't want to include in unrelated PRs.
There are a few left in `storage.cpp` but since it's a single function
in 600 lines of code, I didn't want to touch the mess. The others are
safe to remove, cucumber and test run on Finland gives 👍 .
2016-03-09 17:46:02 +01:00
Daniel Patterson
49441fe204
Make forward/reverse weight/offset calculated at query time,
...
rather than being cached in the StaticRTree. This means we
can freely apply traffic data and not have stale values lying
around. It reduces the size of the RTree on disk, at the expense
of some additional data in RAM.
2016-03-03 10:49:12 -08:00
Daniel J. Hofmann
aeee565115
Formats all the files we touch..
2016-03-01 23:51:25 +01:00
Daniel Patterson
56e35e8ef2
Remove GeoJSON based debugging output, we can now generate vector tiles with roughly the same data on-the-fly.
2016-03-01 23:51:25 +01:00
Daniel J. Hofmann
64b36807d3
Transforms osrm_exception to exception
2016-02-12 15:46:24 -08:00
Patrick Niklaus
17f8e65808
Fail hard if node weights are not there
2016-01-21 06:47:34 +01:00
Patrick Niklaus
439eb9da3d
Create public facing libraries for extractor, contractor and datastore
...
New libraries libosrm_extract, libosrm_contract, libosrm_store
2016-01-21 06:47:34 +01:00
Moritz Kobitzsch
1c1bfd7541
Fix routing when start and target are on the same segment
...
Fixes issue #1864 . Given the simple set-up:
a --> b --> c
^-----------|
This would translate into an edge based graph (ab) -> (bc),
(bc) -> (ca), (ca) -> (ab).
Starting at the end of the one-way street (ab) and going to
the beginning, the query has to find a self-loop within the
graph (ab) -> (bc) -> (ca) -> (ab), as both nodes map to the
same segment (ab).
2016-01-19 23:26:19 +01:00
Daniel J. Hofmann
4813488f84
Split import_edge.hpp: node_based_edge.hpp, edge_based_edge.hpp closes #1604
2016-01-11 20:11:44 +01:00
Patrick Niklaus
6991a38703
Run clang-format
2016-01-08 01:31:57 +01:00
Patrick Niklaus
6b18e4f7e9
Add namespace around all files
2016-01-08 01:30:52 +01:00