Commit Graph

494 Commits

Author SHA1 Message Date
Michael Krasnyk
095b345713 Change location data method to way:get_location_tags(key) 2017-10-04 10:03:42 +02:00
Michael Krasnyk
0f498d13f5 Access to location dependent data in Lua via way:get_location_tags() 2017-10-04 10:03:42 +02:00
Michael Krasnyk
20ff138f08 Remove polygon copying overhead 2017-10-04 10:03:42 +02:00
Michael Krasnyk
421115200b Port osmium point-in-polygon function 2017-10-04 10:03:42 +02:00
Michael Krasnyk
b15288e0ea Add location_dependent_data unit tests 2017-10-04 10:03:42 +02:00
Michael Krasnyk
4eac861eae Left-hand driving flag review updates 2017-10-04 10:03:42 +02:00
Michael Krasnyk
7ad9e13f1e Add MultiPolygon support 2017-10-04 10:03:42 +02:00
Michael Krasnyk
fc39e0ce1a Allow multiple GeoJSON files 2017-10-04 10:03:42 +02:00
Michael Krasnyk
6468f55627 Make class_names default initialized 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
Michael Krasnyk
de942155bf Add local left_hand_driving flag in API version 2 2017-10-04 10:03:42 +02:00
Michael Krasnyk
af3f0a4782 Use driving_side tag of location-dependent data and OSM ways 2017-10-04 10:03:42 +02:00
Michael Krasnyk
c9673741de Added location dependent data 2017-10-04 10:03:42 +02:00
Jack Danger
79d07ef45c Updating year on all 'Project OSRM' copyrights 2017-10-03 12:03:26 +02:00
Michael Krasnyk
2532d56b85 Turn angle calculation needs to respect initial road order, #4331 2017-09-18 21:33:00 +02:00
Michael Krasnyk
5ca38eee3a Remove RelationMemberWrap and avoid data copying 2017-09-14 20:00:05 +02:00
Denis Koronchik
75bdf114be Review fixes 2017-09-14 20:00:05 +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
Denis Koronchik
a253111cbe Add ExtractionRelation class 2017-09-14 20:00:05 +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
Patrick Niklaus
27324d0270 Add more tests for exclude validation 2017-08-21 13:00:12 +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
84fd38ac9c Add tests for avoid flags 2017-08-21 13:00:12 +02:00
Patrick Niklaus
21686ee8a9 Add datafacade factory to select avoid flags 2017-08-21 13:00:12 +02:00
Patrick Niklaus
9c11197768 Extract avoidable combinations from profiles into ProfileProperties 2017-08-21 13:00:12 +02:00
Moritz Kobitzsch
f347efb006 detect turning onto oneways at the end of the road as non obvious 2017-08-18 16:33:11 +02:00
vng
76d5d054cb Compilation fix. 2017-08-14 16:18:36 +02:00
Moritz Kobitzsch
93299d6651 handle conditional via-way restrictions
- refactor conditional restriction handling to not use external data (first OSM nodes on ways)
 - BREAKING: changes internal file format of osrm.restrictions
 - add support for general conditional penalties based on edge-based nodes (requires unique edges between nodes)
2017-08-11 11:53:25 +02:00
Mateusz Loskot
80b705e997 Add workaround for Visual C++ issue with std::array in debug
If Visual C++ _ITERATOR_DEBUG_LEVEL > 0, then
accessing std::array<char[N], M> elements via reference to const
causes compilation error:

...\msvc\14.10.25017\include\array(181): error C2440: 'return': cannot convert from 'const char *' to 'const char (&)[256]'

Alternative workaround is to remove const qualifier from the GetClassName method.
2017-08-10 12:21:42 +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
Moritz Kobitzsch
7620d419c6 fix serialisation of conditional turn restrictions 2017-08-01 12:27:29 +02:00
Moritz Kobitzsch
8135f08958 restructure for review remarks 2017-07-31 09:36:25 +02:00
Moritz Kobitzsch
8d0202d240 Add data structure to allow identification of via-way turns during creation of edge-based-graph
initial version of handling via-way turn restrictions (this is dirty)

 - requires update of data structures
 - requires clean-up
 - requires optimisation
2017-07-31 09:36:25 +02:00
Moritz Kobitzsch
b1809d1667 pre-filter turn restrictions for validity 2017-07-31 09:36:25 +02:00
Moritz Kobitzsch
2e9a7d9c1a refactor restriction parsing / extraction to actual types
Makes turn restrictions into dedicated structures and diferentiates between them via a variant.
Ensures that we do not accidentally mess up ID types within our application.
In addition this improves the restriction performance by only parsing all edges
once at the cost of (at the time of writing) 22MB in terms of main memory usage.
2017-07-31 09:36:25 +02:00
Daniel Patterson
be5fc50136
Save both forward and reverse datasources. 2017-07-27 14:45:28 -07:00
Pepijn Schoen
8da40419ee Maintain storage_config exposed API 2017-07-20 12:01:05 +02:00
Pepijn Schoen
0b5c7a97a7 Addressed comments 2017-07-20 12:01:05 +02:00
Pepijn Schoen
d9e8caf369 Use GetPath with file names over accessing member variables 2017-07-20 12:01:05 +02:00
Pepijn Schoen
e208485c17 expose mandatory / optional / output files in io_config; config files to use new io_config constructor 2017-07-20 12:01:05 +02:00
Pepijn Schoen
5a6dee80ac Fix rebase problems 2017-07-20 12:01:05 +02:00
Pepijn Schoen
67fae1d1f0 rename osrm_input_path to osrm_path, clang-format 2017-07-20 12:01:05 +02:00
Pepijn Schoen
1b31099f73 superclass extractor_config with io_config 2017-07-20 12:01:05 +02:00
Emil Tin
e413b25cd9 profiles api v2 2017-07-18 10:09:22 +00: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
Michael Krasnyk
b2ed46efb5 Check activation index of EntryClass and warn if activation failed 2017-07-13 22:14:41 +00:00
Michael Krasnyk
924a8a7e38 Remove STXXL from OSM parsing and enable in CMake by default 2017-07-11 08:23:26 +00:00
Michael Krasnyk
3940cc1641 Switch from stxxl::vector to std::vector in extractor 2017-07-11 08:23:26 +00:00
Michael Krasnyk
a498ba6537 Removed external_to_internal_node_id_map container 2017-07-11 08:23:26 +00:00
Daniel J. Hofmann
54ceb05420 Implements Alternatives for MLD 2017-07-07 16:12:46 +00:00
Patrick Niklaus
fef0344be0 Don't use bool flags on ExternalMemoryNode because they blow up the struct 2017-07-07 13:24:34 +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
929e5a4de6 Review adjustments for driveway handler, #4151 2017-06-29 15:07:32 +00:00
Michael Krasnyk
df4f0d043a Added driveway handler 2017-06-29 15:07:32 +00:00
Patrick Niklaus
e5464526c8 Port isc file 2017-06-27 09:58:19 +00:00
Patrick Niklaus
37b8d3acd4 Refactor turn lane passing 2017-06-27 09:58:19 +00:00
Patrick Niklaus
4f13208ce8 Fix the propfile properties reading/writing 2017-06-27 09:58:19 +00:00
Daniel J. Hofmann
df000debe9 Adapts obvious turn classification: no longer take entry_allowed into account, resolves #3987 2017-06-21 18:09:32 +02:00
Daniel Patterson
35550d8c0a Parallelize generation of the edge-expanded-edges. 2017-06-15 09:05:45 +00:00
Patrick Niklaus
27ed69b08f Parallize scripting on osmium::Buffer granularity
Fixes #3447 and reduces parsing time by about 15%.
2017-06-13 21:47:54 +00:00
Daniel Patterson
cd8fb82215 Add flag to allow skipping calling node function for nodes with no tags. 2017-06-13 12:23:00 +00:00
Daniel Patterson
5c8e2b6f78 Don't copy the node/way/segment/turn function objects for every call. 12-13% speedup for lua processing right there. 2017-06-13 12:23:00 +00:00
Patrick Niklaus
0266c9d969 Renumber nodes after running osrm-partition
The new numbering uses the partition information
to sort border nodes first to compactify storages
that need access indexed by border node ID.

We also get an optimized cache performance for free
sincr we can also recursively sort the nodes by cell ID.

This implements issue #3779.
2017-06-02 18:12:13 +00:00
Patrick Niklaus
3599d1db8e Switch code to use packed vector for segment weights/durations 2017-05-19 08:25:03 +00:00
Michael Krasnyk
e4b58c1258 Reverted connection of forward and backward nodes in one SCC 2017-05-17 15:21:51 +00:00
Michael Krasnyk
5e2e1d4c96 Renamed EdgeBasedNode to EdgeBasedNodeSegment 2017-05-17 15:21:51 +00:00
Michael Krasnyk
1a7cd785f2 Rename .nodes -> .nbg_nodes and .nodes_data -> .ebg_nodes 2017-05-17 15:21:51 +00:00
Michael Krasnyk
65de940882 Change EdgeBasedNodeDataExternalContainer to EdgeBasedNodeDataContainer 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
Michael Krasnyk
8934167e76 Merge part of .nodes fields into .nodes_data 2017-05-17 15:21:51 +00:00
Karen Shea
799a677e7a Conditional turn restriction support (#3841)
* optionally include condition and via node coords in InputRestrictionContainer

* only write conditionals to disk, custom serialization for restrictions

* conditional turn lookup, reuse timezone validation from
extract-conditionals

* adapt updater to use coordinates/osm ids, remove internal to external map

* add utc time now parameter to contraction

* only compile timezone code where libshp is found, adapt test running

* slight refactor, more tests

* catch invalid via nodes in restriction parsing, set default cucumber
origin to guinée

* add another run to test mld routed paths

* cosmetic review changes

* Simplify Timezoner for windows build

* Split declaration and parsing parts for opening hours

* adjust conditional tests to run without shapefiles

* always include parse conditionals option

* Adjust travis timeout

* Added dummy TZ shapefile with test timezone polygons

* [skip ci] update changelog
2017-05-11 12:13:52 +02:00
Michael Krasnyk
88082c48cf Remove GetEdgeBasedNodeID from TurnDataContainer 2017-05-03 21:59:38 +00:00
Michael Krasnyk
be1acae20c Use edge_id as index in ebg_node_data_container 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
c446b017ef Switch from macro based StrongTypedef to template version 2017-04-24 16:04:41 +00:00
Patrick Niklaus
11d8b2ba5a Add clipping for 20 bits to SegmentWeight/SegmentDuration 2017-04-20 14:58:26 +00:00
Patrick Niklaus
d6c6a262d8 Use 16bit for SegmentWeight and SegmentDuration 2017-04-20 14:58:26 +00:00
Patrick Niklaus
e96545be2e Disable is_integral check because it fails for strong-type-def 2017-04-18 17:24:46 +00:00
Patrick Niklaus
609801ae99 Fix PR comments 2017-04-18 17:24:46 +00:00
Patrick Niklaus
a66918a303 Make PackedVector generic 2017-04-18 17:24:46 +00:00
Pepijn Schoen
a196d5ced3 Fingerprint .timestamp, normalize use of Size / GetSize and make that function Fingerprint-aware 2017-04-18 12:01:06 +00:00
Pepijn Schoen
8da96f8d94 fingerprint .tld 2017-04-18 12:01:06 +00:00
Pepijn Schoen
5b9d858f57 Fingerprint .edges 2017-04-18 12:01:06 +00:00
Pepijn Schoen
023242ec03 Fingerprint geometries 2017-04-18 12:01:06 +00:00
Pepijn Schoen
683e53e950 Fingerprint .osrm.datasource_names 2017-04-18 12:01:06 +00:00
Daniel Patterson
771834793f Only log components in Debug mode, it's very wordy and not really useful (#3948)
for Release builds.

Log component counts at the end of the SCC run.
2017-04-17 16:49:26 -07:00
Patrick Niklaus
59bbfeb67f Buffer turn data on disk to save memory 2017-04-10 17:25:02 +00:00
Patrick Niklaus
446c865415 Dont leak ownership in extractor::files 2017-04-06 15:42:38 +00:00
Patrick Niklaus
0072bf0c59 Move to forward declare header 2017-04-06 15:42:38 +00:00
Patrick Niklaus
4ec7ca29f1 Fix formating 2017-04-06 15:42:38 +00:00
Patrick Niklaus
d94017dfae No shared_memory_wrapper, (De)SerializeVector 2017-04-06 15:42:38 +00:00
Patrick Niklaus
7f6e0c478b Split QueryNode into coordinates and osm id 2017-04-06 15:42:38 +00:00
Patrick Niklaus
ef3fcdc6e6 Refactor graph writing code in contractor 2017-04-06 15:42:38 +00:00
Patrick Niklaus
90c194fc81 Refactor turn description into own file 2017-04-06 15:42:38 +00:00
Patrick Niklaus
c87ce2dede Load data directly into MLPView 2017-04-06 15:42:38 +00:00
Patrick Niklaus
99a87b4c83 Change serialisation of .geometries file. 2017-04-06 15:42:38 +00:00
Patrick Niklaus
3f5fc1e897 Read segment data directly into shm 2017-04-06 15:42:38 +00:00
Patrick Niklaus
97d1de1beb Pull turn data up into server 2017-04-06 15:42:38 +00:00
Patrick Niklaus
d7e1c9c09c Refactor turn data into own class 2017-04-06 15:42:38 +00:00
Patrick Niklaus
08d62cd5e3 Separate serialization and files in extractor 2017-04-06 15:42:38 +00:00
Pepijn Schoen
789311abd6 Remove osrm namespace indication where possible, wrap out shared_memory_ownership 2017-04-04 17:00:36 +00:00
Pepijn Schoen
091a495632 clang-format 2017-04-04 17:00:36 +00:00
Pepijn Schoen
16665aeb00 Renaming of MemorySetting > Ownership 2017-04-04 17:00:36 +00:00
Pepijn Schoen
157ca9161f clang-format 2017-04-04 17:00:36 +00:00
Pepijn Schoen
266e65e6d2 Replace bool for using shared memory with MemorySetting enum 2017-04-04 17:00:36 +00:00
Michael Krasnyk
2cd4ba9a0a move split_edges to global properties 2017-03-30 11:20:13 +02:00
Michael Krasnyk
dbc6535221 add split_edge flag in extracted ways 2017-03-30 11:20:13 +02:00
Michael Krasnyk
78a199e2fb Add read-only max_turn_weight in ProfileProperties 2017-03-20 20:06:51 +01:00
Michael Krasnyk
43a7e8e08a
Rename {id|edge_id} to turn_id 2017-03-17 12:27:47 +01:00
Patrick Niklaus
57c6c6e51c Remove all boundary nodes and use simple u-v-stragtegy to pick id
This commit removes all occurences of unconnected boundary nodes
and switches to the simple heuristic of picking U for the forward
and V for the backward node. This performs better than several
fancy heuristics.
2017-03-17 11:23:48 +00:00
Patrick Niklaus
bf6698f4cc Address @daniel-j-h PR commtents 2017-03-17 11:19:58 +00:00
Patrick Niklaus
44757729b7 Ignore --generate-edge-lookup and not list it anymore 2017-03-17 11:19:58 +00:00
Patrick Niklaus
809d8a7d03 Remove duration fallback for turn penalties to simplify logic 2017-03-17 11:19:58 +00:00
Patrick Niklaus
acbaecf45d Remove .osrm.edge_segment_update not needed anymore 2017-03-17 11:19:58 +00:00
Patrick Niklaus
2df02aa301 Make segment data update work without rtree 2017-03-17 11:19:58 +00:00
Patrick Niklaus
a636e8cc13 Include datasources in .geometries file and refactor .datasource_names 2017-03-10 20:40:59 +00:00
Patrick Niklaus
ffd6311e7d Address PR comment by @oxidase 2017-03-10 14:43:02 +00:00
Patrick Niklaus
260a84b94b Simplify write/read code 2017-03-10 14:43:02 +00:00
Patrick Niklaus
fb552fd751 Apply clang-format 2017-03-10 14:43:02 +00:00
Patrick Niklaus
94e2a8598d Address PR comments 2017-03-10 14:43:02 +00:00
Patrick Niklaus
4986f5ea2d Consolidate read/write code in updater for compressed geometries 2017-03-10 14:43:02 +00:00
Patrick Niklaus
1b5ab37dfd Refactor compressed geometry in own abstraction with read/write 2017-03-10 14:43:02 +00:00
Pepijn Schoen
c7fc36a61b Normalize file writes 2017-03-09 14:16:41 +00:00
Michael Krasnyk
f42136637d Add edge-based graph loading in MLD facade 2017-03-08 00:56:50 +00:00
Patrick Niklaus
886421b43a Fix help texts and .nbg_to_ebg -> .cnbg_to_ebg 2017-03-01 16:09:29 +00:00
Daniel J. Hofmann
f71d742b5e Implements Mapping for NodeBasedGraph -> EdgeBasedgraph Translation 2017-03-01 16:09:29 +00:00
Daniel J. Hofmann
b9ed20bb9b Implements Compressed Node Based Graph (De-)Serialization Skeleton
Implements parallel recursion for the partitioner
Fixes osrm-extract's -dump-partition-graph: accept no further tokens

References:
- http://www.boost.org/doc/libs/1_55_0/doc/html/boost/program_options/bool_switch.html

Pulls parameters through to make them configurable from the outside

Defaults are equivalent to:

    ./osrm-partition \
      berlin-latest.osrm \
      --max-cell-size 4096 \
      --balance 1.2 \
      --boundary 0.25 \
      --optimizing-cuts 10

Fixes parallel_do call for Intel TBB 4.2 (Trusty): no range-based overload
2017-03-01 16:09:29 +00:00
Moritz Kobitzsch
786be6f570 Optimise Flow Algorithm/Datastructures in use 2017-03-01 16:09:29 +00:00
Moritz Kobitzsch
6c3390f14d refactor of post-processing
- moves collapse into a dedicated set of functions / files
 - make collapse scenarios distinct (slight performance cost)
 - reduce verbosity for short name segments (now actually working, was supposed to do so before)
2017-02-25 12:17:22 +00:00
karenzshea
c2727f2029 expose data about turning onto restricted roads to turn function 2017-02-20 12:40:51 +00:00
Michael Krasnyk
f2663acfc6 remove 4 bytes packing of NodeBasedEdgeWithOSM due to alignment fails 2017-02-05 12:54:26 +01:00
Michael Krasnyk
c48fc58eb2 reduce size of InternalExtractorEdge by using single-precision values 2017-02-03 21:52:39 +00:00
Michael Krasnyk
ad594cb2e4 Update review findings 2017-01-27 11:19:37 +01:00
Michael Krasnyk
6b143c5e1d Use duration in SegmentBlock for duration updates 2017-01-27 11:19:37 +01:00
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
Daniel J. Hofmann
c277b95f03 Implements Zero-Copy String Views onto Contiguous Memory, resolves #3265.
- http://www.boost.org/doc/libs/1_61_0/libs/utility/doc/html/string_ref.html
- http://en.cppreference.com/w/cpp/string/basic_string_view
2017-01-23 15:22:39 +01:00
Huyen Chau Nguyen
a40abacfca Refactors the Turn Handler's Fork Abstraction, resolves #3457. 2017-01-19 19:49:40 +01:00
Moritz Kobitzsch
6b06c5bd32 fix emitting invalid turn types, now surfacing due to changes in obvious detection 2017-01-18 15:56:48 +01:00
Huyen Chau Nguyen
f313cb9913 Refactor fork handling in guidance (#3264)
refactor fork handler
2017-01-07 14:13:32 +01:00
Moritz Kobitzsch
15c8fd326f Remove assertions that could be triggered by bad data. (#3469)
When two consecutive nodes have identical coordinates, there is no valid
bearing.  For now, make equal nodes have bearing 0.

Full fix still needs to be done via https://github.com/Project-OSRM/osrm-backend/issues/3470.
2017-01-06 17:10:02 -08:00
FILLAU Jean-Maxime
300283d572 Adding a new command line option osrm-extract --with-osm-metadata
This keep the metadata reader flag disabled by default unless explicitly specified.

Signed-off-by: FILLAU Jean-Maxime <jean-maxime.fillau@mapotempo.com>
2017-01-04 14:35:45 +01:00
Michael Krasnyk
24ab71a346 Fix c++ formatting 2017-01-04 08:46:16 +01:00
Moritz Kobitzsch
e6ff17ab2a refactor merging of segregated roads
adjust to generalFindMaximum function
moved parallel detection to ratio/absolute based regression testing
considerably improved detection quality using normalised regression lines
only follow initial direction/narrow turns for parallel detection
2017-01-03 12:32:51 +01:00
Patrick Niklaus
0f3a463854 Add api_version gloabal variable to profiles
Currently only `0` is supported (the default).
2016-12-23 15:02:10 +01:00
Moritz Kobitzsch
b9b52cb857 clean-up unused headers, use NoTurn for ferries instead of suppressed 2016-12-23 15:01:02 +01:00
Daniel J. Hofmann
9af67c5a9f Refactors Karen's work a bit 2016-12-23 15:01:02 +01:00
karenzshea
8ffe915395 do not emit turns on ferries 2016-12-23 15:01:02 +01:00
Michael Krasnyk
84b618ed1a Add headers consistency check 2016-12-15 10:58:17 +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 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 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
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
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
Moritz Kobitzsch
a49bd70985 add low precision intersection_generator mode for faster graph traversal 2016-11-22 18:25:19 +01: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
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 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
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
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
Kajari Ghosh
6fc0609a62 Map matching test coverage fix (#3201)
* fixed map matching test coverage
2016-10-29 11:22:09 -04: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
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
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
Daniel J. Hofmann
ab1a9271c8 Canonicalizes Spaces in Semicolon Stringlists, fixes #3086 2016-10-19 14:14:18 -07:00
Moritz Kobitzsch
2a2abe9e0f remove unused class DiscreteAngle 2016-10-19 21:40:45 +02: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
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
Lauren Budorick
14e7460465 Include turn information in debug tiles. 2016-09-30 17:12:20 +02:00