Compare commits
7 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| dc27a0751f | |||
| 4f10b15513 | |||
| db82cecce4 | |||
| 9fd452f6af | |||
| 4026ed54c0 | |||
| 895e4bf6d5 | |||
| cb90d587be |
@@ -29,7 +29,7 @@ jobs:
|
|||||||
ENABLE_APPLE_SILICON: "OFF"
|
ENABLE_APPLE_SILICON: "OFF"
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v3
|
||||||
- run: pip install conan==1.51.3
|
- run: pip install conan==1.53.0
|
||||||
- run: conan --version
|
- run: conan --version
|
||||||
- run: cmake --version
|
- run: cmake --version
|
||||||
- uses: actions/setup-node@v3
|
- uses: actions/setup-node@v3
|
||||||
@@ -252,7 +252,7 @@ jobs:
|
|||||||
CXXFLAGS: "-m32 -msse2 -mfpmath=sse"
|
CXXFLAGS: "-m32 -msse2 -mfpmath=sse"
|
||||||
TARGET_ARCH: i686
|
TARGET_ARCH: i686
|
||||||
ENABLE_CONAN: ON
|
ENABLE_CONAN: ON
|
||||||
|
|
||||||
- name: gcc-8-release
|
- name: gcc-8-release
|
||||||
continue-on-error: false
|
continue-on-error: false
|
||||||
node: 12
|
node: 12
|
||||||
@@ -460,7 +460,7 @@ jobs:
|
|||||||
CUCUMBER_TIMEOUT: 60000
|
CUCUMBER_TIMEOUT: 60000
|
||||||
ENABLE_ASSERTIONS: ON
|
ENABLE_ASSERTIONS: ON
|
||||||
ENABLE_CONAN: ON
|
ENABLE_CONAN: ON
|
||||||
|
|
||||||
- name: conan-macos-arm64-release-node-lts
|
- name: conan-macos-arm64-release-node-lts
|
||||||
build_node_package: true
|
build_node_package: true
|
||||||
continue-on-error: true
|
continue-on-error: true
|
||||||
@@ -553,7 +553,7 @@ jobs:
|
|||||||
key: v3-test-${{ matrix.name }}-${{ github.sha }}
|
key: v3-test-${{ matrix.name }}-${{ github.sha }}
|
||||||
restore-keys: |
|
restore-keys: |
|
||||||
v3-test-${{ matrix.name }}-
|
v3-test-${{ matrix.name }}-
|
||||||
|
|
||||||
- name: Prepare environment
|
- name: Prepare environment
|
||||||
run: |
|
run: |
|
||||||
PACKAGE_JSON_VERSION=$(node -e "console.log(require('./package.json').version)")
|
PACKAGE_JSON_VERSION=$(node -e "console.log(require('./package.json').version)")
|
||||||
@@ -574,7 +574,7 @@ jobs:
|
|||||||
|
|
||||||
- name: Install dev dependencies
|
- name: Install dev dependencies
|
||||||
run: |
|
run: |
|
||||||
python3 -m pip install conan==1.51.3
|
python3 -m pip install conan==1.53.0
|
||||||
|
|
||||||
# ccache
|
# ccache
|
||||||
if [[ "${RUNNER_OS}" == "Linux" ]]; then
|
if [[ "${RUNNER_OS}" == "Linux" ]]; then
|
||||||
@@ -582,12 +582,12 @@ jobs:
|
|||||||
elif [[ "${RUNNER_OS}" == "macOS" ]]; then
|
elif [[ "${RUNNER_OS}" == "macOS" ]]; then
|
||||||
brew install ccache
|
brew install ccache
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# clang
|
# clang
|
||||||
if [[ "${CCOMPILER}" == "clang-6.0" ]]; then
|
if [[ "${CCOMPILER}" == "clang-6.0" ]]; then
|
||||||
sudo apt-get update -y && sudo apt-get install clang++-6
|
sudo apt-get update -y && sudo apt-get install clang++-6
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Linux dev packages
|
# Linux dev packages
|
||||||
if [ "${TARGET_ARCH}" != "i686" ] && [ "${ENABLE_CONAN}" != "ON" ]; then
|
if [ "${TARGET_ARCH}" != "i686" ] && [ "${ENABLE_CONAN}" != "ON" ]; then
|
||||||
sudo apt-get update -y
|
sudo apt-get update -y
|
||||||
@@ -697,7 +697,7 @@ jobs:
|
|||||||
run: |
|
run: |
|
||||||
pushd ${OSRM_BUILD_DIR}
|
pushd ${OSRM_BUILD_DIR}
|
||||||
make --jobs=${JOBS} benchmarks
|
make --jobs=${JOBS} benchmarks
|
||||||
./src/benchmarks/alias-bench
|
./src/benchmarks/alias-bench
|
||||||
./src/benchmarks/json-render-bench ../src/benchmarks/portugal_to_korea.json
|
./src/benchmarks/json-render-bench ../src/benchmarks/portugal_to_korea.json
|
||||||
./src/benchmarks/match-bench ../test/data/ch/monaco.osrm
|
./src/benchmarks/match-bench ../test/data/ch/monaco.osrm
|
||||||
./src/benchmarks/packedvector-bench
|
./src/benchmarks/packedvector-bench
|
||||||
|
|||||||
@@ -1,4 +1,11 @@
|
|||||||
# Unreleased
|
# Unreleased
|
||||||
|
- Changes from 5.27.0
|
||||||
|
- Routing:
|
||||||
|
- CHANGED: Add support for surface=metal,grass_paver,woodchips in bicyle profile. [#6395](https://github.com/Project-OSRM/osrm-backend/pull/6395)
|
||||||
|
- Tools:
|
||||||
|
- FIXED: Always use original weights when handling `--parse-conditionals-from-now` option. [#6399](https://github.com/Project-OSRM/osrm-backend/pull/6399)
|
||||||
|
|
||||||
|
# 5.27.0
|
||||||
- Changes from 5.26.0
|
- Changes from 5.26.0
|
||||||
- API:
|
- API:
|
||||||
- ADDED: Add Flatbuffers support to NodeJS bindings. [#6338](https://github.com/Project-OSRM/osrm-backend/pull/6338)
|
- ADDED: Add Flatbuffers support to NodeJS bindings. [#6338](https://github.com/Project-OSRM/osrm-backend/pull/6338)
|
||||||
|
|||||||
@@ -58,16 +58,16 @@ Download OpenStreetMap extracts for example from [Geofabrik](http://download.geo
|
|||||||
|
|
||||||
Pre-process the extract with the car profile and start a routing engine HTTP server on port 5000
|
Pre-process the extract with the car profile and start a routing engine HTTP server on port 5000
|
||||||
|
|
||||||
docker run -t -v "${PWD}:/data" osrm/osrm-backend osrm-extract -p /opt/car.lua /data/berlin-latest.osm.pbf
|
docker run -t -v "${PWD}:/data" ghcr.io/project-osrm/osrm-backend osrm-extract -p /opt/car.lua /data/berlin-latest.osm.pbf
|
||||||
|
|
||||||
The flag `-v "${PWD}:/data"` creates the directory `/data` inside the docker container and makes the current working directory `"${PWD}"` available there. The file `/data/berlin-latest.osm.pbf` inside the container is referring to `"${PWD}/berlin-latest.osm.pbf"` on the host.
|
The flag `-v "${PWD}:/data"` creates the directory `/data` inside the docker container and makes the current working directory `"${PWD}"` available there. The file `/data/berlin-latest.osm.pbf` inside the container is referring to `"${PWD}/berlin-latest.osm.pbf"` on the host.
|
||||||
|
|
||||||
docker run -t -v "${PWD}:/data" osrm/osrm-backend osrm-partition /data/berlin-latest.osrm
|
docker run -t -v "${PWD}:/data" ghcr.io/project-osrm/osrm-backend osrm-partition /data/berlin-latest.osrm
|
||||||
docker run -t -v "${PWD}:/data" osrm/osrm-backend osrm-customize /data/berlin-latest.osrm
|
docker run -t -v "${PWD}:/data" ghcr.io/project-osrm/osrm-backend osrm-customize /data/berlin-latest.osrm
|
||||||
|
|
||||||
Note there is no `berlin-latest.osrm` file, but multiple `berlin-latest.osrm.*` files, i.e. `berlin-latest.osrm` is not file path, but "base" path referring to set of files and there is an option to omit this `.osrm` suffix completely(e.g. `osrm-partition /data/berlin-latest`).
|
Note there is no `berlin-latest.osrm` file, but multiple `berlin-latest.osrm.*` files, i.e. `berlin-latest.osrm` is not file path, but "base" path referring to set of files and there is an option to omit this `.osrm` suffix completely(e.g. `osrm-partition /data/berlin-latest`).
|
||||||
|
|
||||||
docker run -t -i -p 5000:5000 -v "${PWD}:/data" osrm/osrm-backend osrm-routed --algorithm mld /data/berlin-latest.osrm
|
docker run -t -i -p 5000:5000 -v "${PWD}:/data" ghcr.io/project-osrm/osrm-backend osrm-routed --algorithm mld /data/berlin-latest.osrm
|
||||||
|
|
||||||
Make requests against the HTTP server
|
Make requests against the HTTP server
|
||||||
|
|
||||||
|
|||||||
@@ -15,6 +15,7 @@ Feature: Bike - Surfaces
|
|||||||
| cycleway | cobblestone:flattened | 72 s |
|
| cycleway | cobblestone:flattened | 72 s |
|
||||||
| cycleway | paving_stones | 72 s |
|
| cycleway | paving_stones | 72 s |
|
||||||
| cycleway | wood | 72 s |
|
| cycleway | wood | 72 s |
|
||||||
|
| cycleway | metal | 72 s |
|
||||||
| cycleway | compacted | 72 s |
|
| cycleway | compacted | 72 s |
|
||||||
| cycleway | fine_gravel | 72 s |
|
| cycleway | fine_gravel | 72 s |
|
||||||
| cycleway | ground | 72 s |
|
| cycleway | ground | 72 s |
|
||||||
@@ -22,11 +23,13 @@ Feature: Bike - Surfaces
|
|||||||
| cycleway | cobblestone | 102.9 s |
|
| cycleway | cobblestone | 102.9 s |
|
||||||
| cycleway | gravel | 120 s |
|
| cycleway | gravel | 120 s |
|
||||||
| cycleway | pebblestone | 120 s |
|
| cycleway | pebblestone | 120 s |
|
||||||
|
| cycleway | grass_paver | 120 s |
|
||||||
| cycleway | dirt | 90 s |
|
| cycleway | dirt | 90 s |
|
||||||
| cycleway | earth | 120 s |
|
| cycleway | earth | 120 s |
|
||||||
| cycleway | grass | 120 s |
|
| cycleway | grass | 120 s |
|
||||||
| cycleway | mud | 240 s |
|
| cycleway | mud | 240 s |
|
||||||
| cycleway | sand | 240 s |
|
| cycleway | sand | 240 s |
|
||||||
|
| cycleway | woodchips | 240 s |
|
||||||
| cycleway | sett | 80 s |
|
| cycleway | sett | 80 s |
|
||||||
|
|
||||||
Scenario: Bicycle - Good surfaces on small paths
|
Scenario: Bicycle - Good surfaces on small paths
|
||||||
|
|||||||
@@ -353,6 +353,28 @@ Feature: Car - Turn restrictions
|
|||||||
| b | a | bj,jc,jc,aj,aj |
|
| b | a | bj,jc,jc,aj,aj |
|
||||||
| b | d | bj,jd,jd |
|
| b | d | bj,jd,jd |
|
||||||
|
|
||||||
|
# here we check that conditional restrictions can be updated via re-run of `contract`/`customize` with updated `--parse-conditionals-from-now`
|
||||||
|
# 10am utc, sat
|
||||||
|
When I run "osrm-contract {osm_file} --time-zone-file=test/data/tz/{timezone_names}/guinea.geojson --parse-conditionals-from-now=1494064800"
|
||||||
|
When I run "osrm-customize {osm_file} --time-zone-file=test/data/tz/{timezone_names}/guinea.geojson --parse-conditionals-from-now=1494064800"
|
||||||
|
|
||||||
|
When I route I should get
|
||||||
|
| from | to | route |
|
||||||
|
| b | c | bj,jc,jc |
|
||||||
|
| b | a | bj,aj,aj |
|
||||||
|
| b | d | bj,jd,jd |
|
||||||
|
|
||||||
|
# 10am utc, wed
|
||||||
|
When I run "osrm-contract {osm_file} --time-zone-file=test/data/tz/{timezone_names}/guinea.geojson --parse-conditionals-from-now=1493805600"
|
||||||
|
When I run "osrm-customize {osm_file} --time-zone-file=test/data/tz/{timezone_names}/guinea.geojson --parse-conditionals-from-now=1493805600"
|
||||||
|
|
||||||
|
When I route I should get
|
||||||
|
| from | to | route |
|
||||||
|
| b | c | bj,jc,jc |
|
||||||
|
| b | a | bj,jc,jc,aj,aj |
|
||||||
|
| b | d | bj,jd,jd |
|
||||||
|
|
||||||
|
|
||||||
@no_turning @conditionals
|
@no_turning @conditionals
|
||||||
Scenario: Car - Conditional restriction with multiple time windows
|
Scenario: Car - Conditional restriction with multiple time windows
|
||||||
Given the extract extra arguments "--parse-conditional-restrictions"
|
Given the extract extra arguments "--parse-conditional-restrictions"
|
||||||
|
|||||||
@@ -115,6 +115,36 @@ Feature: Car - Turn restrictions
|
|||||||
| c | a | cj,aj,aj |
|
| c | a | cj,aj,aj |
|
||||||
| c | b | cj,bj,bj |
|
| c | b | cj,bj,bj |
|
||||||
|
|
||||||
|
@no_turning
|
||||||
|
Scenario: Car - No u-turn
|
||||||
|
# https://www.openstreetmap.org/edit?node=54878482#map=19/34.05242/-117.19067
|
||||||
|
Given the node map
|
||||||
|
"""
|
||||||
|
c
|
||||||
|
3
|
||||||
|
a 1 x 2 b
|
||||||
|
4
|
||||||
|
d
|
||||||
|
"""
|
||||||
|
|
||||||
|
And the ways
|
||||||
|
| nodes |
|
||||||
|
| ax |
|
||||||
|
| xb |
|
||||||
|
| cx |
|
||||||
|
| xd |
|
||||||
|
|
||||||
|
And the relations
|
||||||
|
| type | way:from | way:to | node:via | restriction |
|
||||||
|
| restriction | ax | ax | x | no_u_turn |
|
||||||
|
| restriction | bx | bx | x | no_u_turn |
|
||||||
|
| restriction | cx | cx | x | no_u_turn |
|
||||||
|
| restriction | dx | dx | x | no_u_turn |
|
||||||
|
|
||||||
|
When I route I should get
|
||||||
|
| waypoints | route | turns |
|
||||||
|
| a,x,a | ax,xb,xb,xb,ax,ax | depart,new name straight,continue uturn,arrive,depart,arrive |
|
||||||
|
|
||||||
@no_turning
|
@no_turning
|
||||||
Scenario: Car - Handle any no_* relation
|
Scenario: Car - Handle any no_* relation
|
||||||
Given the node map
|
Given the node map
|
||||||
|
|||||||
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@project-osrm/osrm",
|
"name": "@project-osrm/osrm",
|
||||||
"version": "5.27.0-unreleased",
|
"version": "5.28.0-unreleased",
|
||||||
"private": false,
|
"private": false,
|
||||||
"description": "The Open Source Routing Machine is a high performance routing engine written in C++14 designed to run on OpenStreetMap data.",
|
"description": "The Open Source Routing Machine is a high performance routing engine written in C++14 designed to run on OpenStreetMap data.",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
|||||||
@@ -178,6 +178,7 @@ function setup()
|
|||||||
concrete = default_speed,
|
concrete = default_speed,
|
||||||
concrete_lanes = default_speed,
|
concrete_lanes = default_speed,
|
||||||
wood = 10,
|
wood = 10,
|
||||||
|
metal = 10,
|
||||||
["cobblestone:flattened"] = 10,
|
["cobblestone:flattened"] = 10,
|
||||||
paving_stones = 10,
|
paving_stones = 10,
|
||||||
compacted = 10,
|
compacted = 10,
|
||||||
@@ -186,12 +187,14 @@ function setup()
|
|||||||
fine_gravel = 10,
|
fine_gravel = 10,
|
||||||
gravel = 6,
|
gravel = 6,
|
||||||
pebblestone = 6,
|
pebblestone = 6,
|
||||||
|
grass_paver = 6,
|
||||||
ground = 10,
|
ground = 10,
|
||||||
dirt = 8,
|
dirt = 8,
|
||||||
earth = 6,
|
earth = 6,
|
||||||
grass = 6,
|
grass = 6,
|
||||||
mud = 3,
|
mud = 3,
|
||||||
sand = 3,
|
sand = 3,
|
||||||
|
woodchips = 3,
|
||||||
sett = 9
|
sett = 9
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|||||||
+11
-2
@@ -583,8 +583,17 @@ Updater::LoadAndUpdateEdgeExpandedGraph(std::vector<extractor::EdgeBasedEdge> &e
|
|||||||
[&] { extractor::files::readNodeData(config.GetPath(".osrm.ebg_nodes"), node_data); },
|
[&] { extractor::files::readNodeData(config.GetPath(".osrm.ebg_nodes"), node_data); },
|
||||||
|
|
||||||
[&] {
|
[&] {
|
||||||
extractor::files::readTurnWeightPenalty(
|
// we are going to overwrite this `.turn_weight_penalties` afterwards,
|
||||||
config.GetPath(".osrm.turn_weight_penalties"), turn_weight_penalties);
|
// so here we backup the original turn penalties if we didn't do that yet in order
|
||||||
|
// to guarantee that subsequent runs of this code will work on top of original
|
||||||
|
// weights
|
||||||
|
auto path = config.GetPath(".osrm.turn_weight_penalties").string() + ".original";
|
||||||
|
if (!boost::filesystem::exists(path))
|
||||||
|
{
|
||||||
|
boost::filesystem::copy_file(config.GetPath(".osrm.turn_weight_penalties"),
|
||||||
|
path);
|
||||||
|
}
|
||||||
|
extractor::files::readTurnWeightPenalty(path, turn_weight_penalties);
|
||||||
},
|
},
|
||||||
[&] {
|
[&] {
|
||||||
extractor::files::readTurnDurationPenalty(
|
extractor::files::readTurnDurationPenalty(
|
||||||
|
|||||||
Reference in New Issue
Block a user