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
fb02a4c674
Added bit packing for serialization of vector<bool>
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
Michael Krasnyk
d0936dc7fd
Don't force loops in MLD
...
Related commit 0972ec9115
2017-10-03 12:56:50 +02:00
Jack Danger
79d07ef45c
Updating year on all 'Project OSRM' copyrights
2017-10-03 12:03:26 +02:00
Michael Krasnyk
f2333eb31a
Break tie for equal weights but different durations
...
There is no possibility until multiple-weights are implemented
to break tie in the contraction and the direct shortest path plugin
as duration is not computed during contraction.
This must be fixed after multiple-weights implementation
by using `std::tie(weight, duration)` pairs everywhere.
2017-09-29 13:38:52 +02:00
Michael Krasnyk
2715e5758b
Split MLD many-to-many method
2017-09-29 13:38:52 +02:00
Michael Krasnyk
454487dd41
Refactor to reuse relaxOutgoingEdges in many-to-many plugin
2017-09-29 13:38:52 +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
e32b8bae00
Make unbuffered log verbosity aware
2017-09-15 15:01:17 +02:00
Michael Krasnyk
ee19383f4d
Link TBB task_scheduler lifetime with Engine scope
2017-09-15 10:55:13 +02:00
Michael Krasnyk
67c85ffa4c
Restructure manyToManySearch for parallelization
2017-09-15 10:55:13 +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
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
Daniel Patterson
0fc1aa2711
Adds turn instructions to the turns layer in debug tiles. ( #4460 )
...
Add turn types and modifiers to turn points in debug tiles. Also refactor some of the tile code to reduce some repetition.
2017-09-01 15:08:22 -07: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
53f87c08b5
Rename GraphView -> BisectionGraphView to avoid name conflicts
2017-09-01 21:26:00 +02:00
Patrick Niklaus
e23dc8977f
Refactor contract to be a stateless function
2017-09-01 21:26:00 +02:00
Patrick Niklaus
421dc5b6ec
Don't return edge list in contractor but modify graph in-place
2017-09-01 21:26:00 +02:00
Patrick Niklaus
247f1c120f
Make renumbering transparent to contraction
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
Patrick Niklaus
26c909b64b
Refactor contractor to pass in graph directly
2017-09-01 21:26:00 +02:00
Daniel Patterson
b17f40862c
If traffic CSV has an empty 4th column, preserve the weight on an edge while updating the duration.
2017-09-01 08:34:58 -07:00
Lev Dragunov
cf2573157f
clang-format with older version
2017-08-31 11:11:05 +02:00
Lev Dragunov
80c55119d2
Add bearing for the phantom node
2017-08-31 11:11:05 +02:00
Mateusz Loskot
7323221e3b
Add --verbosity,-l command line option
...
Allow to fine-control logging verbosity via command line
and LogPolicy setting (useful when OSRM used as library).
Closes #4299
2017-08-31 00:35:23 +02:00
Mateusz Loskot
2385602500
Switch to reliable non-existent handle for QueryHeap items.
...
Default-constructed objects of (boost::heap) handle_type are singular,
including the wrapped handle_type::iterator.
Apparently, MSVC iterator debug facilities strictly require that
one singular instance is compared to another singular instance.
It is not possible to get check-comparabe iterators of non-singular
and singular instances as owning container will always mismatch.
2017-08-30 10:59:43 +02:00
Denis Koronchik
e7abe37b10
Prevent linkage errors when load/write extracted graph from external app
2017-08-22 15:46:06 +02:00
Patrick Niklaus
bc8617a9f4
Fix remaining PR comments
2017-08-21 13:00:12 +02:00
Patrick Niklaus
00e243b23b
Refactor CustomizeCell::RelaxNode to move level check inside function
2017-08-21 13:00:12 +02:00
Patrick Niklaus
27324d0270
Add more tests for exclude validation
2017-08-21 13:00:12 +02:00
Patrick Niklaus
da252c7597
Add node binding integration
2017-08-21 13:00:12 +02:00
Patrick Niklaus
d09f5c0e3a
Avoid -> Exclude
2017-08-21 13:00:12 +02:00
Patrick Niklaus
45140ca9f7
Fix off-by-one in avoid search
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
bd6492bb38
Fix compilation after rebase
2017-08-21 13:00:12 +02:00
Patrick Niklaus
f93b331817
Add error handling for avoid not implemented
2017-08-21 13:00:12 +02:00
Patrick Niklaus
20e4096c4b
Fix stupid vector size bug
2017-08-21 13:00:12 +02:00
Patrick Niklaus
97952a9289
Don't snap to avoided streets
2017-08-21 13:00:12 +02:00
Patrick Niklaus
a3c94ef632
Avoid nodes that are disabled by an avoid flag
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
303a8fae32
Refactor cell weights and durations to own file and allow for multiple metrics
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
c8b142a676
Add placeholders for up to 8 weights
2017-08-21 13:00:12 +02:00
Patrick Niklaus
58061a68c4
Add avoid parameter to the API
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
Michael Krasnyk
b1358de9bb
Use TBB parallel sort of CSV entries, #4418
2017-08-18 14:37:42 +02:00
Michael Krasnyk
2e404c60f4
Remove references to external sources
2017-08-14 16:18:36 +02:00
vng
40857aae61
Inject offline compressed data facade with OSRM_EXTERNAL_MEMORY option.
2017-08-14 16:18:36 +02:00
vng
a64145b712
Fixed mld algorithm to use template data facade.
2017-08-14 16:18:36 +02:00
vng
945f6da85e
Removed useless include.
2017-08-14 16:18:36 +02:00
vng
76d5d054cb
Compilation fix.
2017-08-14 16:18:36 +02:00
Moritz Kobitzsch
e9c9c87bbc
adjust geojson logger to changes in extractor
2017-08-11 12:03:40 +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
15426975b6
deduplicate geometry
2017-08-04 11:19:32 +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
Michael Krasnyk
c1ad4f6b45
Fix a single weekday grammar callback
2017-07-31 14:56:08 +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
Daniel Patterson
dac6bb27aa
Don't include turn costs when calculation weight/duration/speed annotations.
2017-07-25 15:14:45 -06: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
Pepijn Schoen
897518a297
superclass customizer_config with io_config
2017-07-20 12:01:05 +02:00
Pepijn Schoen
a9b6686725
superclass partition_config with io_config
2017-07-20 12:01:05 +02:00
Pepijn Schoen
2c7cb5baba
superclass contractor_config with io_config
2017-07-20 12:01:05 +02:00
Pepijn Schoen
29160eec9c
superclass updater_config with io_config
2017-07-20 12:01:05 +02:00
Pepijn Schoen
fe00a8a0ca
superclass storage_config with io_config
2017-07-20 12:01:05 +02:00
Patrick Niklaus
440dccb81b
Move classes to intersection object and don't emit notifications
2017-07-18 16:48:22 +00:00
Emil Tin
e413b25cd9
profiles api v2
2017-07-18 10:09:22 +00:00
Daniel J. Hofmann
5ece65cade
Trigger lane anticipation based on distance, see discussion in #4260
2017-07-18 11:23:46 +02: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
Patrick Niklaus
49f0b1eb59
Add abstraction to change the data facade at compile time
2017-07-17 11:40:55 +00:00
Michael Krasnyk
b2ed46efb5
Check activation index of EntryClass and warn if activation failed
2017-07-13 22:14:41 +00:00
Daniel J. Hofmann
58b61c68a3
Exposes EngineConfig system-wide limits in Node.js bindings, resolves #4226
2017-07-13 21:48:48 +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
960f9ba29a
Don't use stxxl vector in contractor
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
c1cb3ebff7
Fixes Node.js bindings always enabling alternatives when using boolean overload
2017-07-10 10:44:15 +02: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
Moritz Kobitzsch
3073f4c0d1
don't announce something if we loose exit numbers while on the ramp
2017-07-04 20:58:19 +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
359ab2b56e
Use highest different level with source but not parent node
2017-07-03 14:57:52 +00:00
Michael Krasnyk
aa736dbe3a
Generalize directShortestPathSearch interface
2017-07-03 14:57:52 +00:00
Michael Krasnyk
3534203083
Generalize manyToManySearch and remove duplications
2017-07-03 14:57:52 +00:00
Michael Krasnyk
517cb5f094
Matrix plugin with MLD overlay
2017-07-03 14:57:52 +00:00
Michael Krasnyk
b910ab9bcb
Add duration values to overlay graph
2017-07-03 14:57:52 +00:00
Michael Krasnyk
0fd71260d3
Enable ManyToManySearch in MLD
2017-07-03 14:57:52 +00:00
Michael Krasnyk
c914afdbf1
Fix missing-field-initializers warnings in PackedVector
2017-06-30 14:27:43 +02: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
Michael Krasnyk
c8b75c9046
Use thread-safe lock-free assignment in PackedVector::set_value
...
PR uses TBB internal atomic's for atomic CAS on non-atomic data
Corresponding PR https://github.com/Project-OSRM/osrm-backend/pull/4199
Other options:
* use sequential update
* use an internal packed vector lock -> makes packed vector non-movable
* use boost.interprocess atomics implementation -> outdated and only 32 bit version
* use glib atomic's -> requires new dependency
* wait for https://isocpp.org/blog/2014/05/n4013 as_atomic
* use c11 _Atomic and atomic_compare_exchange_weak -> not possible to mix c++11 and c11
* use builtin functions gcc __sync_bool_compare_and_swap and msvc _InterlockedCompareExchange64 -> possible, but requires proper testing
boolean CompareAndSwapPointer(volatile * void * ptr,
void * new_value,
void * old_value) {
if defined(_MSC_VER)
if (InterlockedCompareExchange(ptr, new_value, old_value) == old_value) return false;
else return true;
elif (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__) > 40100
return __sync_bool_compare_and_swap(ptr, old_value, new_value);
else
error No implementation
endif
}
* use Boost.Atomic -> requires new dependency
WordT local_lower_word = lower_word, new_lower_word;
do
{
new_lower_word = set_lower_value<WordT, T>(local_lower_word,
lower_mask[internal_index.element],
lower_offset[internal_index.element],
value);
} while (!boost::atomics::detail::operations<sizeof(WordT), false>::compare_exchange_weak(
lower_word,
local_lower_word,
new_lower_word,
boost::memory_order_release,
boost::memory_order_relaxed));
2017-06-27 13:02:53 +02:00
Patrick Niklaus
dd8f5ac01d
Make EMPTY_ENTRY_CLASS constexpr
2017-06-27 09:58:19 +00:00
Patrick Niklaus
22479ff5d8
Avoid dead-lock if other = this
2017-06-27 09:58:19 +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
Patrick Niklaus
7fb57c924f
Explicitly implement move constructor for DeallocationVector
2017-06-23 09:22:30 +00:00
Patrick Niklaus
97592e5bc3
Refactor file writing in OSRM contract
2017-06-23 09:22:30 +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
Moritz Kobitzsch
f80e5db346
add support for visualising turn penalties in MLD Debug tiles ( #4157 )
...
- template function for tile functionality with edge finder operator
- refactors unit tests into single function (reduce code duplication)
- adds unit tests for core-ch
2017-06-15 13:59:44 +02:00
Daniel Patterson
35550d8c0a
Parallelize generation of the edge-expanded-edges.
2017-06-15 09:05:45 +00:00
Daniel J. Hofmann
b68d79407e
Takes fn by forwarding ref. in for_each_pair, resolves #4148
2017-06-14 15:17:26 +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
Stepan Kuzmin
5ee3c4de9f
Expose Map Matching gaps
and tidy
parameters in Node.js bindings #4021
2017-06-12 11:32:06 +00:00
Daniel Patterson
5026741652
Make initialization fail with a specific exception if the dataset isn't compatible with the algorithm being used, rather than crashing when a query occurs.
2017-06-08 18:31:51 +00:00
Daniel Patterson
3d77714c36
Make most command-line tools return useful error codes on well-known exceptions.
2017-06-08 15:03:24 +00:00
Lev Dragunov
d7035291ea
clang-format
2017-06-07 15:39:08 +03:00
Lev Dragunov
6b8f3c7fef
Polyline6 support in the REST input
2017-06-06 19:51:00 +03:00
Patrick Niklaus
0d12d2fd28
Merge pull request #4094 from Project-OSRM/refactor/rapidash
...
Replace timezone shapefile parsing with geojson parsing
2017-06-02 20:01:04 +00:00
Patrick Niklaus
10460fc2fb
Fix PR comments
2017-06-02 18:46:21 +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
a195d7dfd3
Remove compiler errors and use 32bit for segment_index
2017-06-02 12:15:06 +00:00
Daniel Patterson
1c3cb897c1
Refactor RTree so that .fileIndex only contains EdgeDataT, and all r-tree structure is in the .ramIndex file.
...
Also tunes the BRANCHING_FACTOR a bit to speed up access with this new layout.
2017-06-02 12:15:06 +00:00
karenzshea
65746edd2d
deps and lint
2017-06-02 10:00:07 +02:00
karenzshea
63ea75612b
by default restrictions are off if timezone is not found
2017-06-02 10:00:07 +02:00