Daniel Patterson
985ab58f45
Add feature to fill null table entries with as-the-crow-flies estimates.
2018-11-02 01:07:24 -07:00
Daniel Patterson
a67c4bf84d
Calculating durations is unavoidable due to tie-breaking minimums, but we can avoid accumulating distances if they're not requested.
2018-10-30 15:41:06 -07: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
b7e7d32361
Expose new --mmap switch
(mmap_memory: true
in NodeJS), and run test suite in this mode, as well as shared memory mode.
2018-10-26 23:54:00 -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
0971f06193
Add option to node bindings to return result as a pre-generated JSON string (this avoids a lot of overhead, and moves JSON string rendering out of the main event loop).
2018-09-05 15:09:13 -07: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
Daniel Patterson
69d7825542
Increase allowed shared memory regions to 512 from ~120
2018-09-05 11:48:02 -07:00
Patrick Niklaus
0f78f7b2cc
Fix bug in computation of distance offset for phantom node
2018-08-02 12:19:24 +02:00
Patrick Niklaus
b630b4e32a
Preserve heap state in map matching
2018-08-02 12:19:24 +02:00
Patrick Niklaus
89fabc1b9c
Use distance functions from many to many
2018-08-02 12:19:24 +02:00
Patrick Niklaus
a649a8a5cf
Use FCC algorithm for map matching distance calculation
2018-08-02 12:19:24 +02:00
Patrick Niklaus
c459530cb6
Address PR comments
2018-05-08 15:50:25 +00: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
cacb162520
Review and rebase updates
2018-04-28 08:59:18 +02:00
Michael Krasnyk
9695fa7941
Remove weight and duration from customizer::EdgeBasedGraphEdgeData
2018-04-28 08:59:18 +02:00
Michael Krasnyk
fd9bebbfa7
Add EBG node durations
2018-04-28 08:59:18 +02:00
Michael Krasnyk
db18e8669f
Always read .osrm.enw file in updater
2018-04-28 08:59:18 +02:00
Michael Krasnyk
9b4a4fdd82
Add customizer::MultiLevelGraph
2018-04-28 08:59:18 +02:00
Michael Krasnyk
8adbfe06ed
Throw an exception if a shared region is not found
2018-04-28 08:59:18 +02:00
Huyen Chau Nguyen
4e68f3a7e1
change haversine computation to cheap ruler in distance tables
2018-04-27 05:21:08 +02:00
Daniel Patterson
a6cf2eee7e
Use faster method for calculating distances.
...
fix cmakelist
2018-04-27 05:21:08 +02:00
Kajari Ghosh
89f6e2d55b
Parse table annotations param correctly ( #5050 )
...
* fix incorrect parameter parsing for node osrm and add tests
* fix boost spirit grammar parsing for annotations
* return NotImplemented when distance annotation is requested for MLD in table plugin
* update docs
2018-04-24 11:05:35 -04: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
karenzshea
e3b831364f
empty list of shmem regions if none found
2018-04-13 12:07:10 +02:00
karenzshea
730d2b5ef2
log err instead of throwing when no shmem regions found
2018-04-13 12:07:10 +02:00
Michael Krasnyk
16abee1022
Avoid using signed integers for edge IDs
2018-04-12 10:03:37 +02:00
Michael Krasnyk
17cd1575f6
Use base-256 encoding for files larger 68G
...
Reference:
http://lists.busybox.net/pipermail/busybox/2011-May/075596.html
2018-04-10 21:12:39 +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
Patrick Niklaus
7edf0f218c
Better statistics for osrm-partition and osrm-custimize
2018-04-09 13:39:39 +02:00
Patrick Niklaus
600ca06166
Simplify toEdges and make it more robust against accidental memory allocations
2018-04-09 13:03:28 +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
Patrick Niklaus
29d1b34140
Fix formating
2018-04-07 00:22:29 +02:00
Patrick Niklaus
a915542916
Add option to only update the metric dependent data
2018-04-07 00:22:29 +02:00
Patrick Niklaus
fea07f343b
Load data in two separate data regions
2018-04-07 00:22:29 +02:00
Patrick Niklaus
c7daa521ad
Address PR comments
2018-04-05 15:12:47 +02:00
Patrick Niklaus
4610fd9ff1
Fix formating
2018-04-05 15:12:47 +02:00
Patrick Niklaus
0e8b8b4901
Add nodejs test for dataset name
2018-04-05 15:12:47 +02:00
Patrick Niklaus
2c80f76004
Add support for naming the dataset
2018-04-05 15:12:47 +02:00
Patrick Niklaus
666ce46d36
Refactor shared memory storage to allow for multiple named datasets
2018-04-05 15:12:47 +02:00
Michael Krasnyk
bc120776f0
Don't apply unimplemented SH and PH conditions
2018-04-05 13:31:48 +02:00
Patrick Niklaus
51fe0dd5a0
Add missing check of a tar writing function
2018-04-05 00:54:50 +02:00
Michael Krasnyk
14d2199cd8
Always create a new kv pair to avoid using shared strings
2018-04-04 12:38:40 +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
3af3e06e75
Remove canary to get a consistent interface for getting a block pointer
2018-04-04 12:38:40 +02:00
Patrick Niklaus
39effb8f7e
Fix checking for non-empty string in prefix check
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
f558b16147
First step for better vector encapsulation
2018-04-04 12:38:40 +02:00
Patrick Niklaus
81a4747acb
Fix formating
2018-04-04 12:38:40 +02:00
Patrick Niklaus
9fc2c32408
Fix errors when loading an incompatible dataset.
2018-04-04 12:38:40 +02:00
Patrick Niklaus
24e0028afb
Remove CheckCompability because it now duplicates logic in the datafacade
2018-04-04 12:38:40 +02:00
Patrick Niklaus
c334d11e95
Refactor metric storage
2018-04-04 12:38:40 +02:00
Patrick Niklaus
aec9b6a178
Fixed reading DataLayout from shared memory
2018-04-04 12:38:40 +02:00
Patrick Niklaus
81929c984b
Use boost array sink to avoid copying buffer for BufferReader
2018-04-04 12:38:40 +02:00
Patrick Niklaus
5395290fd5
Add directory listing
2018-04-04 12:38:40 +02:00
Patrick Niklaus
b3ef2a0383
More refactor
2018-04-04 12:38:40 +02:00
Patrick Niklaus
4a9fdca7b2
Remove fixed block identifiers
2018-04-04 12:38:40 +02:00
Daniel Patterson
b5a4ffed96
Return datasource names along with datasource annotation ( #4973 )
...
* Add new `datasource_names` annotation that returns the string version of the `datasources` annotation
2018-04-03 15:13:25 -07:00
Duane Gearhart
8a63ad9b4b
Added post process logic to collapse segregated turn instructions ( #4925 )
...
* Added post process logic to collapse segregated turn instructions
* format updates
* Fixed coordinates to reflect reality
Updated left turn road name
* fixed coordinates to fix test
* Skip last step when processing segregated steps
* updated segregated turn test
* Updated segregated test
* Updated test: Segregated Intersection, Cross Belonging to Correct Street - features/guidance/collapse.feature:79
* Fixed all but one for features/guidance/collapse.feature:124
* Fixed Scenario: Partly Segregated Intersection, Two Segregated Roads, Intersection belongs to Second - features/guidance/collapse.feature:219
* Fixed 7 of th 9 failures for Scenario: Partly Segregated Intersection, Two Segregated Roads, Intersection belongs to Second - features/guidance/collapse.feature:219
* Fixed 7 of the 9 failures for Scenario: Segregated Intersection, Cross Belonging to Mixed Streets - Slight Angles (2) - features/guidance/collapse.feature:318
* Fixed Scenario: Segregated Intersection into Slight Turn - features/guidance/collapse.feature:581
* Updated Scenario: U-turn after a traffic light - features/guidance/turn-lanes.feature:1220
* Updated how we combine segregated steps
* Added test to Verify end of road left turn across divided roads
* Fixed divided highwat tests
* Fixed test failure
* fixed Scenario: Partitioned turn, Slight Curve - maxspeed - features/guidance/turn-lanes.feature:936
* Fixed Scenario: Partitioned turn, Slight Curve - features/guidance/turn-lanes.feature:961
* Added strategies to combine segrgated intersections
* Added setModifier alias for readability
* Added strategies to combine segrgated intersections
* Format updates
* Fixes segregated indentification to not mark `circular` edge as segregated
* Added intersection prior to turn so we still call out end of road
* updated expectation to be turn instead of continue
* Confirmed with @oxidase that the lane information if correct - updated the expectation
* Added logic to handle wider straights
Fixed tests
* Update CHANGELOG.md
Added #4925
* Removed TODO
* Process straight step prior to wider straight step
2018-03-30 07:43:56 -04: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
0c48f5fe2f
Make sure to return const char* paths for mtar
2018-03-26 13:13:17 +00:00
Patrick Niklaus
3ee8a963cb
Fix formating again
2018-03-26 12:13:07 +00: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
993f5badf1
Use OSRM runtime error for tar reader as well
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
f2bace6c1f
Wrap lambda in std::function because of boost version issues
2018-03-26 11:02:33 +00:00
Patrick Niklaus
bde51a9ef5
Add tar file mmaping
2018-03-26 11:02:33 +00:00
Patrick Niklaus
a52213c885
Get offset of data inside tar file
2018-03-26 11:02:33 +00:00
Patrick Niklaus
8e800c48bc
Add function to stop and continue writing to a tar file
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
c410c200bd
Port .cnbg file to tar format
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
bed53f5fd5
Remove timestamp file
2018-03-26 11:02:31 +00:00
Patrick Niklaus
2b010fc6f3
Port .enw file to tar format
2018-03-26 11:02:04 +00:00
Patrick Niklaus
b8260e44fa
Port .names file to tar
2018-03-26 11:02:04 +00:00
Patrick Niklaus
a594008e57
Port .edges 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
4f454a3761
Add buffer reader/writer for per-element serialization
2018-03-26 11:02:04 +00:00
Patrick Niklaus
d4300e73f3
Remove line reading interface from FileReader
2018-03-26 11:02:04 +00:00
Patrick Niklaus
990e411361
Port turn duration penalties to tar
2018-03-26 11:02:04 +00:00
Patrick Niklaus
73b3d37837
Port maneuver overrides to tar
2018-03-26 11:02:04 +00:00
Patrick Niklaus
5d7d5fceba
Port .tld and .tls data
2018-03-26 11:02:04 +00:00
Patrick Niklaus
b1dfbce675
Port .ebg_nodes to tar file
2018-03-26 11:02:04 +00:00
Patrick Niklaus
da5aebaef3
Port .geometry file to tar format
2018-03-26 11:02:04 +00:00
Patrick Niklaus
bced9a5a6d
Port .datasource_names to tar format
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