Hello,
First of all, I am a complete beginner and have no advanced coding or API knowledge whatsoever.
I have succesffuly installed ORS locally via docker, have download a map of France and successfully updated config file (ors-config) to point towards that map instead of the Heidelbeg example map. I’m using the API via swagger-ui and it seems to be working fine with the driving-car profile.
I’m trying now to do more advanced requests (longer isochrones, heavy good vehicles instead of cars) but i’m not sure how to do so with within the ors-config file. I have simply uncommented all comments to activate some parameters, but I’m getting an error when launching the docker container via docker-compose.
The container works fine in the “minimal” configuration set-up, but when everything is uncommented it generates an error.
Below are my config file, the docker-compose file as well as the error I’m getting.
I have just replaced some URL links with " LINK_REMOVED" in order to comply with the forum’s poting rules for new uses.
How do I proceed from here?
Thank you for your help!
Errors
at org.springframework.boot.env.OriginTrackedYamlLoader.load(OriginTrackedYamlLoader.java:84) ~[spring-boot-3.4.5.jar!/:3.4.5]
at org.springframework.boot.env.YamlPropertySourceLoader.load(YamlPropertySourceLoader.java:50) ~[spring-boot-3.4.5.jar!/:3.4.5]
at org.heigit.ors.api.ORSEnvironmentPostProcessor.postProcessEnvironment(ORSEnvironmentPostProcessor.java:68) ~[!/:9.3.1]
at org.springframework.boot.env.EnvironmentPostProcessorApplicationListener.onApplicationEnvironmentPreparedEvent(EnvironmentPostProcessorApplicationListener.java:132) ~[spring-boot-3.4.5.jar!/:3.4.5]
at org.springframework.boot.env.EnvironmentPostProcessorApplicationListener.onApplicationEvent(EnvironmentPostProcessorApplicationListener.java:115) ~[spring-boot-3.4.5.jar!/:3.4.5]
at org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:185) ~[spring-context-6.2.6.jar!/:6.2.6]
at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:178) ~[spring-context-6.2.6.jar!/:6.2.6]
at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:156) ~[spring-context-6.2.6.jar!/:6.2.6]
at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:138) ~[spring-context-6.2.6.jar!/:6.2.6]
at org.springframework.boot.context.event.EventPublishingRunListener.multicastInitialEvent(EventPublishingRunListener.java:136) ~[spring-boot-3.4.5.jar!/:3.4.5]
at org.springframework.boot.context.event.EventPublishingRunListener.environmentPrepared(EventPublishingRunListener.java:81) ~[spring-boot-3.4.5.jar!/:3.4.5]
at org.springframework.boot.SpringApplicationRunListeners.lambda$environmentPrepared$2(SpringApplicationRunListeners.java:64) ~[spring-boot-3.4.5.jar!/:3.4.5]
at java.base/java.lang.Iterable.forEach(Iterable.java:75) ~[?:?]
at org.springframework.boot.SpringApplicationRunListeners.doWithListeners(SpringApplicationRunListeners.java:118) ~[spring-boot-3.4.5.jar!/:3.4.5]
at org.springframework.boot.SpringApplicationRunListeners.doWithListeners(SpringApplicationRunListeners.java:112) ~[spring-boot-3.4.5.jar!/:3.4.5]
at org.springframework.boot.SpringApplicationRunListeners.environmentPrepared(SpringApplicationRunListeners.java:63) ~[spring-boot-3.4.5.jar!/:3.4.5]
at org.springframework.boot.SpringApplication.prepareEnvironment(SpringApplication.java:353) [spring-boot-3.4.5.jar!/:3.4.5]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:313) [spring-boot-3.4.5.jar!/:3.4.5]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1362) [spring-boot-3.4.5.jar!/:3.4.5]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1351) [spring-boot-3.4.5.jar!/:3.4.5]
at org.heigit.ors.api.Application.main(Application.java:35) [!/:9.3.1]
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) ~[?:?]
at java.base/java.lang.reflect.Method.invoke(Method.java:580) ~[?:?]
at org.springframework.boot.loader.launch.Launcher.launch(Launcher.java:102) [ors.jar:9.3.1]
at org.springframework.boot.loader.launch.Launcher.launch(Launcher.java:64) [ors.jar:9.3.1]
at org.springframework.boot.loader.lau[Processing: 2025-09-11_11h11_15.png…]()
ch.JarLauncher.main(JarLauncher.java:40) [ors.jar:9.3.1]
Config file
################################################################################################
Minimal configuration example file for openrouteservice. For a description please visit:
Configuration | openrouteservice backend documentation
################################################################################################
ors:
engine:
profile_default:
build:
source_file: /home/ors/files/france-250909.osm.pbf
profiles:
driving-car:
enabled: true
driving-hgv:
enabled: true
################################################################################Configuration file for openrouteservice. For a description please visit:
LINK_REMOVED
################################################################################
General server settings
server:
port: 8082
error:
whitelabel:
enabled: falseKeep the context-path at / else the war file run with tomcat will have the context-path of /ors/v2 as well.
servlet:
context-path: /ors
tomcat:
keep-alive-timeout: 30000
spring:
profiles:
active: default
mvc:
servlet:
path: /Settings related to springdoc
springdoc:
swagger-ui:
enabled: true
path: /swagger-ui
tryItOutEnabled: true
filter: false
syntaxHighlight:
activated: true
showExtensions: true
api-docs:
path: /v2/api-docs
version: OPENAPI_3_0
packages-to-scan: org.heigit.ors
pathsToMatch: /v2/**Logging settings
logging:
file:
name: ./logs/ors.log
pattern:
console: “%d{yyyy-MM-dd HH:mm:ss} %highlight{%-7p} %style{%50t}{Cyan} %style{[ %-40.40c{1.} ]}{Bright Cyan} %m%n”
file: “%d{yyyy-MM-dd HH:mm:ss} %p [%-40.40c{1.}] - %m%n”
level:
root: WARN
org.heigit: INFOopenrouteservice specific settings
ors:
cors:
allowed_origins: “*”
allowed_headers: Content-Type, X-Requested-With, accept, Origin, Access-Control-Request-Method, Access-Control-Request-Headers, Authorization
preflight_max_age: 600
messages:ORS endpoints settings
endpoints:
routing:
enabled: true
attribution: LINK_REMOVED, OpenStreetMap contributors, tmc - BASt
gpx_name: ORSRouting
gpx_description: This is a directions instructions file as GPX, generated from openrouteservice
gpx_base_url: LINK_REMOVED
gpx_support_mail: LINK_REMOVED
gpx_author: openrouteservice
gpx_content_licence: LGPL 3.0
maximum_avoid_polygon_area: 200000000
maximum_avoid_polygon_extent: 20000
maximum_alternative_routes: 3
matrix:
enabled: true
attribution: LINK_REMOVED, OpenStreetMap contributors
maximum_routes: 2500
maximum_routes_flexible: 25
maximum_visited_nodes: 100000
maximum_search_radius: 2000
u_turn_costs: -1
isochrones:
enabled: true
attribution: LINK_REMOVED, OpenStreetMap contributors
maximum_locations: 2
maximum_intervals: 1
allow_compute_area: true
maximum_range_distance_default: 50000
maximum_range_distance:
- profiles: driving-car, driving-hgv
value: 100000
maximum_range_time_default: 18000
maximum_range_time:
- profiles: driving-car, driving-hgv
value: 10800
fastisochrones:
maximum_range_distance_default: 50000
maximum_range_distance:
- profiles: driving-car, driving-hgv
value: 500000
maximum_range_time_default: 18000
maximum_range_time:
- profiles: driving-car, driving-hgv
value: 10800
snap:
enabled: true
attribution: LINK_REMOVED, OpenStreetMap contributors
maximum_locations: 5000ORS engine settings
engine:
init_threads: 1
preparation_mode: false
graphs_data_access: RAM_STORE
elevation:
preprocessed: false
data_access: MMAP
cache_clear: false
provider: multi
cache_path: elevation_cache
profile_default:
enabled: false
graph_path: graphs
build:
source_file:
elevation: true
elevation_smoothing: false
encoder_flags_size: 8
instructions: true
optimize: false
traffic: false
maximum_speed_lower_bound: 80
location_index_resolution: 500
location_index_search_iterations: 4
interpolate_bridges_and_tunnels: true
preparation:
min_network_size: 200
methods:
lm:
enabled: true
threads: 1
weightings: recommended,shortest
landmarks: 16
service:
maximum_distance: 100000
maximum_distance_dynamic_weights: 100000
maximum_distance_avoid_areas: 100000
maximum_waypoints: 50
maximum_snapping_radius: 400
maximum_distance_alternative_routes: 100000
maximum_distance_round_trip_routes: 100000
maximum_visited_nodes: 1000000
force_turn_costs: false
allow_custom_models: true
execution:
methods:
lm:
active_landmarks: 8Profile specific settings,
overriding the properties in ors.engine.profile_default.
Profile defaults defined here are not overridden by
a custom YAML file’s ors.engine.profile_default, but by
a custom YAML file’s ors.engine.profiles.
profiles:
driving-car:
encoder_name: driving-car
build:
encoder_options:
turn_costs: true
block_fords: false
use_acceleration: true
enable_custom_models: false
preparation:
min_network_size: 200
methods:
ch:
enabled: true
threads: 1
weightings: fastest
lm:
enabled: false
core:
enabled: true
threads: 1
weightings: fastest,shortest
landmarks: 64
lmsets: highways;allow_all
ext_storages:
WayCategory:
HeavyVehicle:
Tollways:
WaySurfaceType:
RoadAccessRestrictions:
use_for_warnings: true
service:
execution:
methods:
lm:
active_landmarks: 6
core:
active_landmarks: 6
driving-hgv:
encoder_name: driving-hgv
build:
encoder_options:
turn_costs: true
block_fords: false
use_acceleration: true
enable_custom_models: false
preparation:
min_network_size: 200
methods:
ch:
enabled: true
threads: 1
weightings: recommended
lm:
enabled: false
core:
enabled: true
threads: 1
weightings: recommended,shortest
landmarks: 64
lmsets: highways;allow_all
ext_storages:
WayCategory:
HeavyVehicle:
restrictions: true
Tollways:
WaySurfaceType:
service:
execution:
methods:
core:
active_landmarks: 6
cycling-regular:
encoder_name: cycling-regular
build:
encoder_options:
consider_elevation: true
turn_costs: true
block_fords: false
enable_custom_models: false
ext_storages:
WayCategory:
WaySurfaceType:
HillIndex:
TrailDifficulty:
cycling-mountain:
encoder_name: cycling-mountain
build:
encoder_options:
consider_elevation: true
turn_costs: true
block_fords: false
enable_custom_models: false
ext_storages:
WayCategory:
WaySurfaceType:
HillIndex:
TrailDifficulty:
cycling-road:
encoder_name: cycling-road
build:
encoder_options:
consider_elevation: true
turn_costs: true
block_fords: false
enable_custom_models: false
ext_storages:
WayCategory:
WaySurfaceType:
HillIndex:
TrailDifficulty:
cycling-electric:
encoder_name: cycling-electric
build:
encoder_options:
consider_elevation: true
turn_costs: true
block_fords: false
enable_custom_models: false
ext_storages:
WayCategory:
WaySurfaceType:
HillIndex:
TrailDifficulty:
foot-walking:
encoder_name: foot-walking
build:
encoder_options:
block_fords: false
enable_custom_models: false
ext_storages:
WayCategory:
WaySurfaceType:
HillIndex:
TrailDifficulty:
foot-hiking:
encoder_name: foot-hiking
build:
encoder_options:
block_fords: false
enable_custom_models: false
ext_storages:
WayCategory:
WaySurfaceType:
HillIndex:
TrailDifficulty:
wheelchair:
encoder_name: wheelchair
build:
encoder_options:
block_fords: true
enable_custom_models: false
ext_storages:
WayCategory:
WaySurfaceType:
Wheelchair:
kerbs_on_crossings: true
OsmId:
service:
maximum_snapping_radius: 50
public-transport:
encoder_name: public-transport
build:
encoder_options:
block_fords: false
enable_custom_models: false
elevation: true
gtfs_file: ./src/test/files/vrn_gtfs_cut.zip
service:
maximum_visited_nodes: 1000000
