Commit Graph

131 Commits

Author SHA1 Message Date
Michael Krasnyk
25baf51a2c Add duration to edges and use it in table plugin 2017-01-27 11:19:37 +01:00
Michael Krasnyk
c059d15cb9 Added weight multipliers for speed and turn updates 2017-01-27 11:19:37 +01:00
Patrick Niklaus
279f8aabfb Allow specifing a weight for routing that is independent of duration 2017-01-27 11:19:37 +01:00
Michael Krasnyk
b1f1c26703 Remove decltype(Value::source), fixes xcode 7.3 compilation 2017-01-23 15:17:08 +01:00
Moritz Kobitzsch
226ee62981 refactor graph contractor for readability
move to a dedicated dijkstra, separate code and header
reduce heap size, we don't use more than 2000 nodes, so why allocate 170k?
2017-01-18 15:03:15 +01:00
Michael Krasnyk
71e7d6d6b8 Refactor R-Tree updates and edges loading 2017-01-13 22:37:46 +01:00
Michael Krasnyk
29f736f1c8 Make CSV parsing function generalized 2017-01-13 22:37:46 +01:00
Daniel Patterson
f7e8581a1b Replace fingerprint with semver-based scheme. (#3467) 2017-01-06 13:45:08 -08:00
Daniel J. Hofmann
1153b78c06 Fixes various compiler diagnostics
Found with LLVM 3.9.1 and then fixed the most severe categories.
2017-01-06 16:47:52 +01:00
Daniel J. Hofmann
559c88b36d Adds runtime alignment assertions, see #3267 2017-01-05 16:27:53 +01:00
Daniel Patterson
8c7f744b1a Update node weights if traffic data is applied. 2016-12-11 16:02:58 +01:00
Daniel Patterson
17e15033e1 Log helpful error message if mmap fails. 2016-12-07 22:03:49 +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
Daniel Patterson
5a311012af Consolidate file reading through the new FileReader class/interface. (#3321) 2016-11-30 19:08:01 -08:00
Daniel J. Hofmann
2a383efbf6 Makes Throughput Numbers Integral Types 2016-11-21 12:41:25 +01: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
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
karenzshea
fead71da54 add comment on find() [skip ci] 2016-10-21 14:23:02 -07:00
karenzshea
c26e90cac0 sort/unique turn penalty lookup 2016-10-21 14:23:02 -07:00
karenzshea
d4e5710928 parse turn penalties in parallel, add unique and sorting steps 2016-10-21 14:23:02 -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
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
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
Patrick Niklaus
028ca5c9d9 Apply clang-format 2016-01-05 12:04:04 +01:00
Patrick Niklaus
552cdbfe20 Apply clang-tidy 2016-01-05 11:54:31 +01:00
Daniel J. Hofmann
4ca29dd18e Default initialize (i.e. zero initialize) variables to suppress -Wuninitialized false positive 2016-01-05 11:29:25 +01:00
Daniel J. Hofmann
685d330ee2 Remove license headers from project source files; global license 2016-01-04 19:06:32 +01:00
Patrick Niklaus
97585bb26a Fix include paths 2016-01-03 18:47:50 +01:00
Patrick Niklaus
bfc6c9b89d Move files in src/ include/ 2016-01-03 16:37:38 +01:00