Siarhei Fedartsou
59953172e8
Configure clang-tidy job on CI ( #6261 )
2022-06-28 00:14:28 +01:00
Michael Bell
04c2167c2d
Fix for_each_indexed util function
...
- Fix typo in util function name for_each_indexed.
- Use the overloaded functions for_each_indexed and for_each_pair
with a container argument where possible to improve readability.
2021-12-22 23:40:06 +00:00
Daniel Patterson
d5cd702242
Enable all unit tests ( #5248 )
...
* Add missing profile name to library extract test.
* Support both tzid and TZID properties on timezone geometry. Improve validation of timezone polygons.
* Missing tzid property wasn't a geojson validation issue, shouldn't have been tested there.
* Use filesystem glob to loop over all test executables so we don't miss any in the future.
Co-authored-by: Michael Bell <michael@mjjbell.com>
2021-10-22 22:10:25 +01:00
Michael Bell
5266ac1635
Add support for multiple via-way restrictions ( #5907 )
...
Currently OSRM only supports turn restrictions with a single via-node or one
via-way. OSM allows for multiple via-ways to represent longer and more
complex restrictions.
This PR extends the use of duplicate nodes for representng via-way turn
restrictions to also support multi via-way restrictions. Effectively, this
increases the edge-based graph size by the number of edges in multi via-way
restrictions. However, given the low number of these restrictions it
has little effect on total graph size.
In addition, we add a new step in the extraction phase that constructs
a restriction graph to support more complex relationships between restrictions,
such as nested restrictions and overlapping restrictions.
2020-12-20 13:59:57 -08:00
Denis Chapligin
eb1d399f3b
Merge pull request #5894 from xlaussel/avoid_samelookup_in_heap_map
...
Avoid samelookup in heap map
2020-12-20 22:17:49 +02:00
Denis Chapligin
18a0f6c1f8
Merge pull request #5891 from mloskot/ml/check-indexed-data-for-empty-values
...
Avoid dereferencing iterators over empty indexed data values
2020-12-01 15:26:58 +02:00
xlaussel
687a3cdfbe
Merge branch 'master' into avoid_samelookup_in_heap_map
2020-11-26 21:29:27 +01:00
Daniel Patterson
50d9632ed7
Upgrade formatting to clang-format 10 ( #5895 )
...
* Update formatting tools to clang-format-10
* Reformat using clang-format-10.0.09
2020-11-26 07:21:39 -08:00
xlaussel
fcb7dd2a21
format code
2020-11-25 12:42:01 +01:00
xlaussel
8697a6b14a
Changes and corrections before change request
...
Cucumber successfull
2020-11-24 12:43:08 +01:00
xlaussel
41af9615cd
Improvements
2020-11-23 23:00:27 +01:00
xlaussel
13067844ee
Changes made
2020-11-23 22:33:08 +01:00
Mateusz Łoskot
58fbda0483
Avoid dereferencing iterators over empty indexed data values
...
It seems the values can be empty even if size of blocks
is non-zero (e.g. blocks.size()==1)
2020-11-23 21:21:35 +01:00
Michael Bell
96acdaf0d5
Fix osrm-contract, tests, on Windows
...
As part of graph contraction, node renumbering leads to
in-place permuting of graph state, including boolean vector elements.
std::vector<bool> returns proxy objects when referencing individual
bits. To correctly swap bool elements using MSVC, we need to explicitly
apply std::vector<bool>::swap.
Making this change fixes osrm-contract on Windows.
We also correct failing tests and other undefined behaviours
(mainly iterator access outside boundaries) highlighted by MSVC.
2020-11-15 14:22:26 +00:00
Denis Chaplygin
2d0b2ca987
Removed STXXL support.
2020-08-20 11:54:02 +03:00
Lev Dragunov
8b45ff7a18
Store metadata about original OSM data, and return it in the API response, if available.
2019-01-30 15:31:56 -08:00
Kajari Ghosh
01ca32c81c
Fix fallback speed validity checks ( #5300 )
...
* fix fallback_speeds check to only accept values > 0
* add invalid_fallback_speed
2018-12-10 14:53:30 -05:00
Daniel Patterson
498259b220
Replace dynamic distance calculation for table plugin with pre-calculated distances on shortcuts, avoiding unpacking cost.
...
Adds approx 10% to total data size. Speeds up large table requests by 2 orders of magnitude.
Co-authored-by: Kajari Ghosh <ghoshkaj@gmail.com>
2018-10-30 15:41:06 -07:00
Daniel Patterson
954121634f
Merge branch 'master' into ghoshkaj_mmaperize
2018-10-29 09:52:50 -07:00
Daniel Patterson
594a45e7e0
Re-use msinttypes bundled with RapidJSON when compiling on Windows. ( #5249 )
2018-10-29 09:51:56 -07:00
Daniel Patterson
2f9cb44368
mmap
tarfiles directly when mmapping is enabled, instead of copying data into separate mmapped block
...
Co-authored-by: Kajari Ghosh <ghoshkaj@gmail.com>
2018-10-26 23:53:59 -07:00
Daniel Patterson
d80318f8ea
Match serialized bit-packing for vector<bool> to match in-memory layout for vector_view<bool> so that data can be directly mmapped.
2018-10-26 23:53:50 -07:00
Kajari Ghosh
5597415f28
Revert "Improve speed of Map Matching" ( #5196 )
...
* Revert "Update changelog"
This reverts commit 9b779c704f
.
* Revert "Fix formating"
This reverts commit 5bd7d04fe3
.
* Revert "Fix bug in computation of distance offset for phantom node"
This reverts commit 0f78f7b2cc
.
* Revert "Adjust text cases for flightly different matching due to rounding"
This reverts commit 8473be69d2
.
* Revert "Round network distance to deci-meter to retain previous behavior"
This reverts commit c0124f7d77
.
* Revert "Preserve heap state in map matching"
This reverts commit b630b4e32a
.
* Revert "Use distance functions from many to many"
This reverts commit 89fabc1b9c
.
* Revert "Use FCC algorithm for map matching distance calculation"
This reverts commit a649a8a5cf
.
2018-09-06 12:05:28 -04:00
Daniel Patterson
85515f063a
Render floating point numbers to string using Grisu2 algorithmt instead of stdlib to speed up JSON generation.
2018-09-05 14:20:47 -07:00
Patrick Niklaus
a649a8a5cf
Use FCC algorithm for map matching distance calculation
2018-08-02 12:19:24 +02:00
Kajari Ghosh
2a15e6dec8
Add support for annotations=distances in MLD
...
This commit brings feature parity with CH for the `table` pluging.
2018-05-08 15:50:25 +00:00
Michael Krasnyk
9b4a4fdd82
Add customizer::MultiLevelGraph
2018-04-28 08:59:18 +02:00
Daniel Patterson
a6cf2eee7e
Use faster method for calculating distances.
...
fix cmakelist
2018-04-27 05:21:08 +02:00
Michael Krasnyk
c628ecbf24
Update tile unit tests
2018-04-24 15:40:57 +02:00
Kajari Ghosh
14860b62e9
Unpack paths and return total distance in matrix plugin for CH ( #4990 )
2018-04-20 18:18:55 -04:00
Michael Krasnyk
b2aeb47630
Remove dummy edges before inplace permutation
2018-04-19 12:18:48 +02:00
Michael Krasnyk
16abee1022
Avoid using signed integers for edge IDs
2018-04-12 10:03:37 +02:00
Patrick Niklaus
473ebfcbf6
Fix debug printing for coordinates
2018-04-10 18:08:18 +02:00
Michael Krasnyk
c4bf450fc6
Restore storage constructors with one arguments
2018-04-09 15:08:00 +02:00
Patrick Niklaus
bf2b45120a
Use ArrayStorage for boundary nodes to optimize MLD
...
For the MLD algorithm we can partition the NodeID range into boundary
and non-boundary nodes. Since there are only we boundary nodes we can
use the ArrayStorage for those yielding much faster query times.
2018-04-09 15:08:00 +02:00
Michael Krasnyk
8d8042ebae
Use ranges with fixed types
2018-04-09 11:05:01 +02:00
Kajari Ghosh
be123cd72f
Use ranges in datafacade instead of vectors
...
Range type must use immutable references due to a
regression in `boost::any_range`.
References:
https://svn.boost.org/trac10/ticket/10493
https://stackoverflow.com/questions/42427395/boostany-range-with-optimization-level-o2-causes-crash/42427662
2018-04-09 11:05:01 +02:00
Michael Krasnyk
bc120776f0
Don't apply unimplemented SH and PH conditions
2018-04-05 13:31:48 +02:00
Patrick Niklaus
cb4586ebee
Make use of the view factory in the data facade
2018-04-04 12:38:40 +02:00
Patrick Niklaus
44924b4bb4
Refactor view creation to own header file
2018-04-04 12:38:40 +02:00
Patrick Niklaus
5a68f4c214
Refactor setting up vector_view
2018-04-04 12:38:40 +02:00
Patrick Niklaus
4ef331db1f
Use read-only mmap as member in StaticRTree
2018-03-27 10:20:33 +00:00
Michael Krasnyk
e572d6c340
msvc fixes
2018-03-26 21:45:27 -04:00
Patrick Niklaus
c322d93435
Make the block size of vector<bool> consistent
2018-03-26 12:12:41 +00:00
Patrick Niklaus
c0dd5d7c76
Fix formating
2018-03-26 11:02:34 +00:00
Patrick Niklaus
a542da3678
Remove old io::FileWrite serialization code
2018-03-26 11:02:34 +00:00
Patrick Niklaus
bde51a9ef5
Add tar file mmaping
2018-03-26 11:02:33 +00:00
Patrick Niklaus
ee447afd72
Fix DealloctingVector from initializer list constructor
...
It was not setting the number of elements.
2018-03-26 11:02:33 +00:00
Patrick Niklaus
8152dcfb4c
Port .ramIndex to tar file and mmap .fileIndex directly
2018-03-26 11:02:33 +00:00
Patrick Niklaus
b8260e44fa
Port .names file to tar
2018-03-26 11:02:04 +00:00
Patrick Niklaus
f407afa694
Move .osrm file to tar format
2018-03-26 11:02:04 +00:00
Patrick Niklaus
06f28ffd34
Add BufferWriter/BufferReader and simplify interface for ConditionalRestrictions
2018-03-26 11:02:04 +00:00
Patrick Niklaus
6ea296fb5c
Port .nbg_nodes file to tar
2018-03-26 11:02:04 +00:00
Patrick Niklaus
cf5f6be472
Swtich EBG to tar file
2018-03-26 11:02:04 +00:00
Patrick Niklaus
5d1b4ce71d
Port .osrm.icd file over to tar
2018-03-26 11:02:03 +00:00
Patrick Niklaus
aaf39162a8
Fix vector<bool> serialization for tar files and add unit tests
2018-03-26 11:02:03 +00:00
Patrick Niklaus
cb31f9ec29
Port hsgr file to tar
2018-03-26 11:02:03 +00:00
Michael Krasnyk
0fc8b6289c
Merge IntersectionShapeData and IntersectionEdgeGeometry
2018-03-05 13:19:57 +01:00
Michael Krasnyk
cf56b5ddbf
Increase precision of coordinates in OSM links
2018-03-05 13:19:57 +01:00
Patrick Niklaus
bec57258a4
Add mmap allocator
2018-02-26 23:32:34 +01:00
Mateusz Loskot
ae41066fbe
Prefer logical punctuators instead of named operator keywords
...
Some compilers (eg. MSVC) still require inclusion of <ciso646>
in order to import named operator keywords.
It is easier to stick with traditional punctuators.
2018-02-14 13:26:41 +01:00
Fred-Byrd
342da81591
web_mercator to double
2018-02-13 12:54:52 +01:00
Fred-Byrd
df9195b939
coordinate_calculation doubles
2018-02-13 12:54:52 +01:00
Patrick Niklaus
b4cfc8d6e0
Fix formating
2018-02-06 11:51:33 +01:00
Patrick Niklaus
e7bb612050
Move debug printer code to own header
2018-02-06 11:51:33 +01:00
Patrick Niklaus
83d7a57b73
Remove OSM link debug printing from public class
2018-02-06 11:51:33 +01:00
Patrick Niklaus
cac310123b
Remove debug printing code from Rectangle
2018-02-06 11:51:33 +01:00
Michael Krasnyk
9e93f198ae
Add CRC checksums to EBG and turns data
2018-02-02 11:33:38 -05:00
Michael Krasnyk
10de243556
Move guidance turn generation out of EBGF
2018-02-02 11:33:38 -05:00
Michael Krasnyk
988b6e3311
Split intersection analysis and guidance code
...
Intersection analysis occupy in osrm::extractor::intersection namespace
and guidance code osrm::guidance
2018-02-02 11:33:38 -05:00
Michael Krasnyk
36877e4de5
Move guidance pre-processing code into GUIDANCE library
2018-02-02 11:33:38 -05:00
Michael Krasnyk
1119a542d6
Announce reference change if names are empty, #4830
2018-01-29 16:32:59 -05:00
Huyen Chau Nguyen
61e06fcaba
Making the turn function more flexible ( #4789 )
...
* set and store highway and access classification for the turn function
* expose highway turn classification and access turn classification and speed to the lua profile turn function
* expose whether connection road at turn is incoming or outgoing
* add lua tests for exposed information to turn function
* update docs about attributes in process_turn
* add turn_classification info to docs
* adding warning if uturn and intersection dont match
* handle u turns that do not turn into intersection[0]
* split OSM link generation in an accessible coordinate function
2018-01-24 15:39:55 -05:00
Michael Krasnyk
9c033ff461
Free functions for guidance intersections analysis
2018-01-05 17:35:11 +01:00
Mateusz Loskot
da4fb13aa3
Tidy up #include-s for Intel TBB headers
...
Remove unused and add missing headers.
2018-01-05 11:00:31 +01:00
Michael Krasnyk
742c32d936
Don't use to_string conversion in requiresNameAnnounced
2017-12-26 16:18:27 +01:00
Patrick Niklaus
ccfbce5300
Remove superflous sentinel in DynamicGraph, fixes #4738
2017-12-18 10:23:29 +00:00
vng
90e361c3dc
Use immutable node-based-graph for segregated edges.
2017-11-16 15:08:30 +01:00
vng
ee7912f882
Calculating segregated node-based edges.
2017-11-16 15:08:30 +01:00
Daniel J. Hofmann
9b83649a03
Fixes AppVeyor tests
2017-11-06 14:38:21 -05:00
Daniel J. Hofmann
c5b48e3506
Adds a statistics handler for turn types and modifiers
2017-11-06 14:38:21 -05:00
Moritz Kobitzsch
23fd27422b
normalise angles only if an improvement
2017-10-25 10:17:14 +02:00
Michael Krasnyk
088d4edc6b
Prevent merging of circular-shaped roads
2017-10-17 11:27:09 +02:00
Patrick Niklaus
90b3be8d10
Fix formating
2017-10-16 13:40:02 +01:00
Patrick Niklaus
ba2a2ff5e8
Remove RemoveIterator because its dangerous
2017-10-16 13:40:02 +01:00
Patrick Niklaus
9b87b8b7b1
Replace deallocation vector with std::vector and different merge algorithm
2017-10-16 13:40:02 +01:00
Moritz Kobitzsch
fd52c80573
remove workaround, reduce memory consumption in lcs computation
2017-10-11 14:07:35 +02:00
Moritz Kobitzsch
884ce4025b
fix detection of suffix/prefix changes for name-changes
2017-10-11 14:07:35 +02:00
Moritz Kobitzsch
2ddd98ee6d
simplify passing annotation data through OSRM pipeline using the node-based datastore
...
- separates node-based graph creation and compression from edge-based graph creation
- moves usage of edge-based node data-container to pre-processing as well, unifying access to node-based data
- single struct instead of separate vectors for annotation data in engine (single place of modification)
2017-10-09 18:44:43 +02:00
Michael Krasnyk
7ad9e13f1e
Add MultiPolygon support
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
Jack Danger
79d07ef45c
Updating year on all 'Project OSRM' copyrights
2017-10-03 12:03:26 +02:00
Michael Krasnyk
e32b8bae00
Make unbuffered log verbosity aware
2017-09-15 15:01:17 +02:00
Michael Krasnyk
5ca38eee3a
Remove RelationMemberWrap and avoid data copying
2017-09-14 20:00:05 +02:00
Denis Koronchik
ff3b398e23
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
a253111cbe
Add ExtractionRelation class
2017-09-14 20:00:05 +02:00
Patrick Niklaus
61c430c098
Implement exclude flags on CH using shared core
...
The core is fully contracted for each exclude flag
and stored in a merged graph data structure.
2017-09-01 21:26:00 +02:00
Patrick Niklaus
4b75cb8b0e
Make DynamicGraph copyable
2017-09-01 21:26:00 +02:00
Patrick Niklaus
e011c60e12
Replace flush in contract with in-place renumbering
2017-09-01 21:26:00 +02:00