Commit Graph

1558 Commits

Author SHA1 Message Date
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
Yota Toyama
a53da9095a Fix table node API docs (#5204) 2018-10-01 16:45:05 +03: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
Jie
5476f6ab27 Fix GDB not work for osrm-routed on Linux (#5157)
As I mentioned in the issue #5156, I met below issue on my Win10+WSL(Ubuntu) env:
The remote debugger (VSCode on Win10, gdb on Ubuntu 18.04 LTS) works well from the beginning of the main() function. But when I step over the code pthread_sigmask(SIG_BLOCK, &new_mask, &old_mask); (src/tools/routed.cpp(289)), below breakpoints can not work and displayed unverified breakpoint.

Then I found that gdb breakpoint need at least SIGTRAP, SIGSTOP to work (Please refer to [how debugger works](http://www.alexonlinux.com/how-debugger-works) for more details), but all signals are blocked in the source code until server initialized done.

In my understanding, block all signals DO NOT make sense for this osrm-routed process. Only several signals (SIGINT, SIGQUIT, SIGTERM) are expected to wait. So I made the change and it works well for me then.
2018-09-05 16:23:48 -07: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
69d7825542 Increase allowed shared memory regions to 512 from ~120 2018-09-05 11:48:02 -07:00
Patrick Niklaus
5bd7d04fe3 Fix formating 2018-08-02 12:19:24 +02:00
Patrick Niklaus
c0124f7d77 Round network distance to deci-meter to retain previous behavior 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
Michael Krasnyk
82b5648c97 Don't collapse segregated intersections at roundabout exits, #5114 2018-06-21 15:24:03 +02:00
Matthias Gilch
e5d8319c43 Removed unused variable
The variable name_data_mutex is declared in a block but never used
within this block. So I've removed the variable.
2018-06-02 22:49:30 +02:00
Patrick Niklaus
3b4e2e83ef Fix excluding nodes for one to all query 2018-05-08 15:50:25 +00: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
318df9deaa Adjust ebn_weight assertion to new node weights 2018-05-01 18:53:04 +02: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
cdc7e5f021 Fix for updating node weights in contraction hierarchy 2018-04-28 08:59:18 +02:00
Michael Krasnyk
adc87149e2 List dataset blocks 2018-04-28 08:59:18 +02:00
Patrick Niklaus
ae805f9ec8 Make cheap rulers static 2018-04-27 05:21:08 +02:00
Patrick Niklaus
be24689b0f Optimize distance calculation by getting rid of rounding 2018-04-27 05:21:08 +02:00
Huyen Chau Nguyen
7837cd61df clang format 2018-04-27 05:21:08 +02:00
Huyen Chau Nguyen
b573485c31 only use half of rulers because earth is symmetric 2018-04-27 05:21:08 +02:00
Huyen Chau Nguyen
5ba26d3d6d refactor cheap ruler cache 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
1bc3ff6491 fix the ascii art to make sense 2018-04-25 23:51:27 +02:00
Kajari Ghosh
b0f2ef287e fix the offset case when there is no packed path to unpack 2018-04-25 23:51:27 +02:00
Patrick Niklaus
16f53ff81a Sort unpacked paths by sharing 2018-04-25 16:07:31 +02:00
Patrick Niklaus
7a260dc2ba More parameter tuning 2018-04-25 16:07:31 +02:00
Patrick Niklaus
1c0d951f5e Adjust to PR comments 2018-04-25 16:07:31 +02:00
Patrick Niklaus
77a740c0fb Parameter tuning for different route lengths 2018-04-25 16:07:31 +02:00
Patrick Niklaus
61101db8cf Use duration and not weight for sharing 2018-04-25 16:07:31 +02:00
Patrick Niklaus
b51632a2fb Chose alternatives parameters based on coordinate distance 2018-04-25 16:07:31 +02:00
Patrick Niklaus
9d10503a9c Replace step function with contious scaling 2018-04-25 16:07:31 +02:00
Patrick Niklaus
7d50e5afe0 Refactor parameters to be selected at runtime 2018-04-25 16:07:31 +02:00
Patrick Niklaus
549216c792 Compute sharing weighted by edge weight
This ensures that small insignificat turns don't affect the overall
sharing metric too much.
2018-04-25 16:07:31 +02:00
Patrick Niklaus
1990de7dcc Fix inserting edges of shortest path for sharing check
This caused very sub-optimal routes to be selected.
2018-04-25 16:07:31 +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
Jochen Topf
b6f19cd544 Use vtzero in tile plugin.
This uses the new vtzero library (https://github.com/mapbox/vtzero)
instead of using protozero directly.
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
Duane Gearhart
7740d5d7c0 Do not combine a segregated edge with a roundabout (#5040)
* Do not combine a segregated edge with a roundabout, add test
2018-04-20 11:41:53 +02:00
Patrick Niklaus
c5cc4c5a74 Remove double log printing 2018-04-13 10:13:57 +00: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
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
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
Daniel Patterson
282415bbc1
Honour British spelling of manoeuvre relation (#5004)
* Support British spelling of manoeuvre to comply with OSM standards.
2018-04-06 17:08:30 -07:00
Patrick Niklaus
39dd484f45 Restore the connectivity checksum check 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
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
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
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
649d4ee512
Add support for the 'straight' maneuver direction (#4995)
Add support for the 'straight' maneuver direction
2018-04-03 17:20:18 -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
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
f2bace6c1f Wrap lambda in std::function because of boost version issues 2018-03-26 11:02:33 +00:00
Patrick Niklaus
921235b2dc Use pair instead of tuple for implicit construction 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
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
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
Patrick Niklaus
c61198b26b Port over profile properties 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
cb31f9ec29 Port hsgr file to tar 2018-03-26 11:02:03 +00:00
Patrick Niklaus
fed77c4066 Port cell metrics to tar files 2018-03-26 11:02:03 +00:00
Patrick Niklaus
15b53de056 Switch over partition/ files to tar format 2018-03-26 11:02:03 +00:00
Patrick Niklaus
6d96a9a2e3 Serialize mldgr using the new tar writer 2018-03-26 11:02:03 +00:00
Duane Gearhart
535bb49893 Fixed segregated identification code to not mark circular edges as segregated 2018-03-21 18:02:26 +01:00
Michael Krasnyk
8b52c6c7ac Update tests expectations and obvious detection 2018-03-20 16:33:15 +01:00
Michael Krasnyk
d166fc6a75 Restructure Obvious Turn Handling, code transfer from #4426 2018-03-20 16:33:15 +01:00
Patrick Niklaus
b80764b6b8 Refactor shared memory layout to expose Block as interface 2018-03-14 17:05:55 +01:00
Frédéric Rodrigo
14082d0e00 Fix typo 'Maximum number of classes if' 2018-03-14 03:16:13 +01:00
Michael Krasnyk
b7af6eb2a4 Remove correctly the last segment in annotation 2018-03-09 15:59:21 +01:00
Michael Krasnyk
0fc8b6289c Merge IntersectionShapeData and IntersectionEdgeGeometry 2018-03-05 13:19:57 +01:00
Michael Krasnyk
4d0fb89489 Adjust Straight direction modifiers of side roads in driveway handler 2018-03-05 13:19:57 +01:00
Michael Krasnyk
6f4af330ed Handle oneways in get_forward_backward_by_key 2018-03-05 13:19:57 +01:00
Michael Krasnyk
7c8c25f7bc Don't use obviousness for links bifurcations 2018-03-05 13:19:57 +01:00
Lev Dragunov
ac23e3b223 clang-format 2018-03-01 11:32:18 +01:00
Lev Dragunov
7922a6172a Bearing calculation on matching short segments fix. 2018-03-01 11:32:18 +01:00
Michael Krasnyk
c048a36a4c Use smaller range for U-turn angles in map-matching 2018-02-28 15:21:47 +01:00
Duane Gearhart
33021d37a1 Updated segregated intersection identification (#4845)
* Initial internal intersection updates
paired with @oxidase and @kdiluca
TODO fix tests and add in new ones

* Added Internal Intersection Model

* removed debug info

* updates per PR 4845

* fixing build errors

* fixing all compile errors

* fixed EdgeID param

* Added is_internal_straight lambda
Added/Updated constexpr names and values

* added rejection case turn degree logic

* debug logging

* added turn angle logic to reject if there are incoming edges that have opposite turn degrees than outgoing edges or if the outgoing edges have opposing turn degrees; also merged with master v5.16

* fixed formatting

* fix to decrease tile size based on latest turn angle internal intersection updates

* Removed breaks

Breaks in code were a mistake and caused a change in the internal intersection identification.

* Update segregated_intersection_classification.cpp

* Update CHANGELOG.md

Added CHANGED #4845: Updated segregated intersection identification to Unreleased
2018-02-27 15:11:23 -05:00
Patrick Niklaus
31d6d74f90 Update documentation and changelog 2018-02-26 23:32:34 +01:00
Patrick Niklaus
bec57258a4 Add mmap allocator 2018-02-26 23:32:34 +01:00
Michael Krasnyk
83588fd00f Renumber node IDs in .osrm.maneuver_overrides 2018-02-22 11:42:33 +01:00
Michael Krasnyk
5acf660f37 Check required tags of maneuver relations 2018-02-21 14:49:15 +01:00
Michael Krasnyk
de13834c12 Handle motorway forks with links as a normal motorway ...
passing some ramps or mering onto another motorway
2018-02-21 14:19:53 +01:00
Michael Krasnyk
1cafafc4cd Don't use obvious directions at ramp bifurcations, #4895 2018-02-20 09:02:24 +01:00
Michael Krasnyk
519eae63c6 Use links with lower priority in the motorway handler
Ref:
https://wiki.openstreetmap.org/wiki/Highway_link
https://wiki.openstreetmap.org/wiki/Link_roads_between_different_highways_types
2018-02-13 11:20:27 +01:00
Michael Krasnyk
5f598da76d Add OSM node barrier=height_restrictor handling 2018-02-12 11:40:35 +01:00
Patrick Niklaus
e82b51d0cb Fix default value for matching radius in routed 2018-02-09 21:12:14 +01:00
Daniel Patterson
5531cace7f
Support maneuver relations (#4676) 2018-02-10 05:32:09 +11:00
Patrick Niklaus
26e5c4eae2 Fix formating 2018-02-09 17:51:58 +01:00
Patrick Niklaus
6c2d26f9bd Make LUA_SOURCE a global for gcc 4.9 2018-02-09 17:51:58 +01:00
Patrick Niklaus
84845ffaa6 Replace optional<EdgeWeight> with constant value 2018-02-09 17:51:58 +01:00
Patrick Niklaus
3d6b667997 No unused warning for alias benchmark 2018-02-09 17:51:58 +01:00
Patrick Niklaus
97d027a173 Fix unused lambda capture warnings 2018-02-09 17:51:58 +01:00
Patrick Niklaus
371dc57dfc Fix uninitialized warning because of boost::optional 2018-02-09 17:51:58 +01:00
Patrick Niklaus
a06d1782c0 Fix multi-line warning 2018-02-09 17:51:58 +01:00
Huyen Chau Nguyen
fa8d788bb6
Add road priority class to turn function (#4858)
* expose road priority class to turn function

* update docs
2018-02-07 11:39:02 +01:00
Patrick Niklaus
92b7d581ce Removed unused geojson logging in partitioner 2018-02-06 11:51:33 +01:00
Patrick Niklaus
b4cfc8d6e0 Fix formating 2018-02-06 11:51:33 +01:00
Patrick Niklaus
71cfb03738 Remove broken check-conditionals tool 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
bb71d9b28a Remove unused code in partitioner 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