All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog
- replace Grype with Trivy for CI vulnerability scanning (#2335)
- fix Trivy CI scans to correctly detect jar/war vulnerabilities and add secret and Dockerfile misconfiguration scanning (#2337)
- scan all images arm/amd64 for publish/slim stages but only fail for critical and high on slim (#2345)
- penalize routing through service ways (#2313)
- correct speed assignment for HGVs and disable acceleration heuristic on motorways/-roads (#2329)
- pass branch through to the reusable Docker build workflow so CI actually builds the triggering commit instead of always
main(#2340)
- update postcss to 8.5.25
- update mermaid to 11.16.1 due to CVE-2026-71437, CVE-2026-71438, CVE-2026-50159, CVE-2026-71436 and CVE-2026-71439
- update dompurify to 3.4.13
- update base docker images (#2336)
- update yq to 4.53.3 (#2336)
- update postgresql to 42.7.12 and jline to 4.2.1, add aircompressor dependency to fix CVE-2025-67721, CVE-2026-56740, CVE-2026-56741 and CVE-2026-54291 (#2339)
- update log4j to 2.25.5 due to CVE-2026-49844
- update httpclient5 to 5.6.3 due to CVE-2026-71290 and CVE-2026-40542
9.10.0 - 2026-07-28
- speed up zip packing and unpacking with Apache Commons parallel processes (#2294)
- log the number of restricted nodes during core preparation (#2317)
- replace tollways storage with a corresponding encoded value from GraphHopper (#2257)
- migrate hill index storage to a dedicated encoded value (#2267)
- migrate trail difficulty storage to
sac_scale,mtb_scale, andmtb_scale_uphillencoded values (#2277) - migrate road access restrictions storage to a dedicated encoded value (#2270)
- update references to deprecated URL https://api.openrouteservice.org, update default attribution strings (#2279)
- check whether
mtb_scalevalues are within the valid range before attempting to store them (#2280) - update springdoc-openapi and swagger dependencies to address test suite errors (#2290)
- return status code 200, and issue a warning if extra info surface or waytype is requested but not available for the given profile (#2296)
- barrier node handling after the GraphHopper upgrade (#2292)
- prevent the downloading of elevation data for OSM files preprocessed with
elenode tags (#2305) - handle CSV parsing exceptions in
CsvGraphStorageBuildergracefully (#2312) - handle the hierarchy of access restrictions properly in
AccessRestrictionsParser(#2311) - correctly resolve country borders from a PBF enriched with country tags (#2314)
- use direct mapping of node IDs to OSM IDs to correctly resolve node tags for edges containing cloned nodes (#2319)
- update postcss to 8.5.12 due to CVE-2026-45623
- update org.postgresql:postgresql to 42.7.11 due to CVE-2025-49146 and CVE-2026-42198
- update mermaid to 11.15.0
- update uuid to 14.0.0 due to CVE-2026-41907 and CVE-2026-41988
- update dompurify to 3.4.12
- update spring-boot-parent to 3.5.15
- update jackson-databind to 2.18.9 due to CVE-2026-54515
9.9.0 - 2026-04-29
- opencontainers metadata annotations to docker image (#2264)
- accept bikes on
sac_scale=strolling(#2253) - allow pedestrians on
highway=corridor(#2252) - improve track grade parsing (#2232)
- update jackson-core to 2.18.6
- update log4j-core to 2.25.4 due to CVE-2026-34477, CVE-2026-34478 and CVE-2026-34480
- update lodash to 4.18.1 due to CVE-2026-4800, CVE-2025-13465 and CVE-2026-2950
- update npm dependencies for docs (#2265)
9.8.0 - 2026-03-30
- backend documentation about elevation and population data licenses (#2247)
- include
ors_idin the TopoJSON response of the export endpoint wheneveradditional_infoflag is set (#2244)
- scale the isochrone ranges and intervals according to the specified distance units such that they align with the range limits defined in meters (#2240)
- adapt docs to always download latest version (#2243)
- avoid duplicate fields in the route geometry of the GeoJSON response (#2249)
- update lodash-es to 4.17.23 due to CVE-2025-13465
- update rollup to 4.59.0 due to CVE-2026-27606
- update dompurify to 3.3.3 due to CVE-2025-15599 and CVE-2025-48050
9.7.1 - 2026-02-27
- correct distance calculation of skipped segments (#2230)
- non-empty route summary in (Geo)JSON response for zero-length routes (#2234)
9.7.0 - 2026-01-30
- Basque (eu-ES) translation (#2207)
- improve
preparation_mode(#2221)
- update org.apache.logging.log4j:log4j-core to 2.25.3 fixes CVE-2025-68161
- update preact to 10.28.2 due to CVE-2026-22028
- update lodash to 4.17.23 due to CVE-2025-13465 and CVE-2025-13466
9.6.0 - 2025-12-17
- documentation on the fields of the JSON and GeoJSON responses of the directions endpoint (#2084)
- comment in the documentation on API key usage (#2179)
- type-specific filtering for mapping point features to graph edges (#2156)
- documentation on the matching endpoint (#2156)
- PostgreSQL-backed feature store with scheduled synchronization for dynamic routing data updates (#2156)
- enhance the Docker image and docker build workflow for Kubernetes readiness with minimal image support (#2183)
- "What you get" section to the JAR setup documentation and API reference to the Docker setup documentation (#2203)
- extended status endpoint to provide dynamic data statistics and feature store metrics (#2156)
- when running in
preparation_modepack the graph for upload (#2185) - replace
HeavyVehicleAttributesGraphStoragewith corresponding encoded values (#2146) - ci: build both slim and publish images in nightly workflows (#2213)
- ci: remove outdated graph build workflow (#2176)
- ci: Remove outdated RocketChat Github Workflow action (#2181)
9.5.1 - 2025-11-14
- documentation on how to prepare country data files for the avoid borders feature (#2133)
- enable ALT routing for custom models (#2165)
- the configuration parameter
maximum_distance_dynamic_weightsnow only applies to scenarios that allow altering of edge weights across the entire routing graph and does not cover cases anymore where only a fixed subset of edges is dynamically weighted (#2165) - allow minio repo client to run without authentication (#2172)
- config parameter
maximum_distance_avoid_areasis only applied to requests that involve avoid polygons (#2165) - use separate instructions for roundabout and following road segment (#2174)
- reduce Container Image and Spring Boot vulnerabilities to almost 0 by updating dependencies (#2170)
9.5.0 - 2025-10-31
- accept
sac_scale=strolling(#2149) - show export endpoint in status (#2150)
- update speed limits in the UK (#2164)
- correct setting of encoded values for highways and fords (#2148)
- update io.minio:minio to 8.6.0 for upstream fix of CVE-2025-48924
9.4.0 - 2025-09-30
- full support for encoded values (#2108)
- enable encoded value for way surface (#2110)
- enable encoded value for way type (#2115)
- enable encoded value for OSM way-ID (#2107)
- document the units of the
durationparameter to matrix queries (#2130) - translation of instructions for Latvian (lv-LV) and Lithuanian (lt-LT) (#2131)
- EXPERIMENTAL: dynamic data service and matching endpoint (#2125, #2142)
- transition from extended storage to encoded values for storing way type and surface (#2113, #2115)
- replace
WayCategoryStoragewith encoded values (#2107) - replace
WaySurfaceTypeextended storage with corresponding encoded values (#2116)
- unused
Speedextended storage (#2107)
- remove an erroneous entry for the unassigned country ID value 137 from the documentation (#2103)
- make GitHub actions work with external PRs (#2136)
- update spring-boot-starter to 3.4.10 fixes CVE-2025-48989, CVE-2025-41242, CVE-2025-48988, CVE-2025-53506, CVE-2025-52520 and more
- update apache commons-lang3 to 3.18.0 fixes CVE-2025-48924
9.3.1 - 2025-07-28
- correct way type and surface extra info metadata for pedestrian routes that involve sidewalks attached to streets (#2075)
- country borders storage initialization (#2095)
- update OpenJDK to 21.0.8 due to CVE-2025-30749, CVE-2025-30754, CVE-2025-50059, CVE-2025-50106, CVE-2025-21587, CVE-2025-30691, CVE-2025-30698
9.3.0 - 2025-06-06
- maven wrapper to project (#1973)
- include OSM data version (
osm_date) in the API response (#1192) - added documentation for isochrone attributes (#846)
- include
graph_dateandosm_datein the GPX response (#2055) - use country information from an enriched OSM file containing nodes tagged with country IDs (#1753)
- refactor: core node ID map using DataAccess (#2074)
- fix http pooling for matrix generation requests (#2059)
- bump deprecated CodeQL and failing Grype scan GitHub actions to their current versions (#2061)
- avoid routing on roads with access reserved to customers (#2060)
- required dynamic weights for driving-hgv with
hazmatfalseor other default Vehicle init values (#2071) - enable setting vehicle parameters without the need of specifying vehicle type (#2073)
9.2.0 - 2025-05-06
- minio option to graph repo client (#2050)
- hint to use yaml editor in docs (#1836)
access = permitOSM tag as known access restriction type (#2013)- matrix generator for performance benchmarking (#2038)
- update outdated dockerfile base images and add a more robust native golang base image (#2027)
- graph build date missing in case route is not found (#2020)
- github action build default builder image failing (#2032)
- wrong example in docs of extra-info 'waycategory' (#1797)
- population data link in docs (#1624)
- accept upper and lower case booleans for REBUILD_GRAPHS within the docker setup (#2028)
- correct available features in custom-model docs (#2033)
- prevent ferry speed derived from the maxspeed OSM tag from exceeding the maximum possible encoder value (#2030)
9.1.2 - 2025-04-10
- pass extra_info when querying round_trip (#1976)
- repair broken integration tests with by pining buildkit 0.15 (#2003)
- elevation set to false not taken into account (#1967)
- make gpx response adhere to standard and set version to 1.1 (#2004)
- return correct extra info label for 'waytype' (#1579)
- enable passing of barriers tagged with
access = permit(#2002) - typos in Turkish translation (#2016)
- deployment of backend docs to GitHub pages (#2022)
- backend docs version number and warning for public folder asset links (#2023)
- upgraded spring-boot-starter-parent to 3.4.4 due to tomcat CVE
9.1.1 - 2025-03-13
- move RELEASING section from CHANGELOG.md to new RELEASE.md (#1972)
- refactor: adapt value range of CsvGraphStorage (#1969)
9.1.0 - 2025-01-29
- TopoJSON graph export (#1926)
- improved dutch translations (#1913)
- update dependencies: spring, geotools, jackson, springdoc, swagger, jupiter, testcontainers, surefire (#1939)
- refactor routing profile management
- update vite (docs) 5.4.10 to 5.4.14 (#1953)
- NPE in error handling (#1925)
- Add missing 'build' in documentation for profile properties (#1947)
- Allow vehicles on ferries without explicit access tags (#1954)
9.0.0 - 2024-12-02
- take into account tunnel categories B, C, D, and E when restricting roads for the transport of dangerous goods via the
hazmatflag in vehicle parameters (#1879) - Ukrainian translation (#1883)
- add new functionality to download new routing graphs from a remote repository (#1889)
- add support for custom model for directions requests (#1950)
- update docs dependency: VitePress (#1872)
- adjust documentation for export endpoint (#1872)
- refactor the config classes into a separate structure into
ors-engine (#1889) which implies changes in the
configuration properties:
- the profile properties
ors.engine.profile.<profile>.*were moved into the new nodesors.engine.profile.<profile>.buildandors.engine.profile.<profile>.service(respectivelyors.engine.profile_default.build...) - move
ors.engine.source_filetoors.engine.profiles.<profile>.build.source_file/ors.engine.profile_default.build.source_file - it is now possible to use any string as profile name. This name is used as profile name in the api requests and as name for the profile's graph directory
- it is now possible to use several profiles with the same flag encoder
- it is now possible to specify individual source files (osm data) for each profile
- the profile properties
- replace the old bash based integration tests with tests based on junit and TestContainers (#1889)
- do not enforce a time-dependent routing algorithm unless the weighting requires it (#1865)
- failing queries that combined departure/arrival parameters with avoid polygons (#1871)
- matrix limit ignored for explicit 'all' value in sources or destinations (#1875)
- updated graphhopper dependency with fix for CVE-2024-7254 (#1918)
8.2.0 - 2024-10-09
- refactor: cleanup routing profile management (#1850)
- improved documentation on the configuration of external storages (#1811)
- refactor: remove unused access destination logic from hgv edge filter (#1854)
- access to roads where transporting hazardous materials is forbidden (#1853)
8.1.3 - 2024-09-13
8.1.2 - 2024-08-13
- updated dependencies: guava, commons, rest-assured etc. (#1831)
- updated dependencies: spring, swagger, geotools etc. (#1827)
- allow any number of csv columns (#1436)
8.1.1 - 2024-07-17
- added danish tranlations (#1809)
- allow bikes on highways under construction if access is explicitly set (#1805)
8.1.0 - 2024-06-05
- document which values of OSM tag
surfaceare considered for way surface categories (#1794) - config parameter
maximum_locationsto snapping endpoint (#1796)
- determine way surface based only on the value of OSM tag
surface; if the tag is not present, the surface is reported as "Unknown" and no longer inferred from the way type (#1794) - improved performance of RPHAST matrix queries in the case when the number of sources is higher than the number of destinations (#1795)
- revise snap endpoint error codes (#1796)
- refactor: Cleanup routing profile management (#1790)
- merge way surface categories "Fine gravel", "Cobblestone" and "Woodchips" with existing ones "Gravel", "Paving stones" and "Unpaved", respectively (#1794)
- reliable encoding of way type and surface (#1794)
8.0.1 - 2024-05-14
- documentation for A* config parameters (#1759)
- documentation for non-positive values of
maximum_grade_levelencoder config parameter (#1775) - keep-alive-timeout for spring internal tomcat (#1780)
- preparation mode exiting with code 0 on fail (#1772)
- some more properties can be defined in a user's ors-config.yml/env ors.engine.profile_default without side effects (Issue #1762)
- relative links in documentation markdown sources (#1791)
- Fix CVEs GHSA-hgjh-9rj2-g67j, GHSA-ccgv-vj62-xf9h, GHSA-7w75-32cg-r6g2, GHSA-v682-8vv8-vpwr (#1788)
8.0.0 - 2024-03-21
- snapping service endpoints for returning nearest points on the graph (#1519)
- workflow for RPM packaging (#1490)
- workflow for graph building with GitHub environments (#1468)
- environment variables for adjusting folders and paths during graph build using docker: (#1468)
ELEVATION_CACHE_FOLDER: value to overwrite theors.services.routing.profiles.default_params.elevation_cache_pathwithGRAPHS_FOLDER: value to overwrite theors.services.routing.profiles.default_params.graphs_root_pathwithLOGS_FOLDER: value to overwrite theors.logging.locationwithPBF_FILE_PATH: value to overwrite theors.services.routing.sourceswith
- add .editorconfig to streamline IDE code styling (#1493)
- info on duration format in parameter description (#1504)
- maven profile buildFatJar to build a fatJar (appliction with embedded tomcat, can be started with java -jar ors.jar) instead of a war file
- YML configuration (#1506)
- new backend documentation using VitePress(#1617)
- support for Norwegian language (#1645)
- support for mmap dataaccess mode (#1649)
- JAR & WAR artifacts for new releases (#1669)
- default branch from
mastertomain - include transfers and fare properties only in PT responses (#1586)
- suppress empty legs property in routing JSON responses (#1584)
- url_check.sh to support custom sleep and reporting intervals (#1468)
- autogenerated API specification from Swagger 2.0 to OpenAPI 3.0 (#1487)
- class/variable naming from Swagger to OpenAPI (#1504)
- migrate to Jakarta EE9 (#1504)
- cleanup StatusCodeCaptureWrapper class (#1504)
- spring-boot-starter-parent to v3.1.1 (#1504)
- from springdoc-openapi-ui package to springdoc-openapi-starter-webmvc-ui (#1504)
- refactor RoutingProfile (part of #1520)
- update maven repository for dependencies (#1536)
- spring-boot-starter-parent to v3.1.6 (#1630)
- silence traffic map-matching internal errors (#1635)
- fix IN1-JAVA-ORGMOZILLA-1314295 (#1627)
- log summary stats on traffic mapmatching and use progress bar only in debug mode (#1647)
- move APIEnums into API module (#1634)
- performance improvements to isochrone calculations (#1607) and (#1658)
- do not apply speed penalty to roads tagged with "access=destination" when computing isochrones (#1682)
- backend documentation overhaul (#1651)
- separate docker image build from test workflow. Build nightly on schedule if there are changes to main (#1689)
- refactor isochrone builder classes (#1699)
- unify edge splitting across isochrone builders, and split edges based on coordinates rather than their actual distance in meters (#1708)
- add missing encoder_options to the documentation #1752
- add config tests for json config #1749
- adapted documentation to new docker setup (#1746)
- JSON configuration and related classes (#1506)
- dependency on apache-curator (#1496)
- ORSKafkaConsumer and related classes (#1482)
- RoutingProfileUpdater and related classes
- Old map matching code
- Centrality API and implementation (use export API and external centrality tools instead)
- workaround for springfox-swagger package & GroupedOpenApi builders (#1504)
- wrong instanceof checks/casts for RoutingCHGraph (#1504)
- Fix the ElevationSmoother (#1511)
- obsolete configuration options 'min_one_way_network_size' and 'disabling_allowed' (#1683)
- GTFS issues with old jts-core version used in GH (#1501)
- Upgrade kafka_2.13 from 3.4.0 to 3.5.0 (#1472)
- Remove maven-shared-utils dependency (#1473)
- update spring-boot from 2.7.10 to 2.7.12 (#1474)
- Upgrade org.geotools.gt-epsg-hsql to version 29.1. (#1479)
- various style and low level code problems (#1489)
- Java17 style issues (#1504)
- defaultValue for matrix 'metrics' parameter (#1504)
- schema type for parameters of type Duration (#1504)
- Fix the max visited nodes bug for fast-isochrones (#1538)
- adjust weighting of heat stress routing to avoid large detours
- fix isochrones snapping (#1566)
- fix fast-isochrones snapping (#1572)
- endpoint property 'isochrone' to 'isochrones' (#1683)
- correctly resolve access to ways with
hgv=deliverytag (#1748)
7.1.1 - 2023-11-13
- increase edge splitting threshold for generating isochrones (#1508)
7.1.0 - 2023-06-13
- issue templates & config using issue forms for different categories (#1456)
- migration from Junit4 to Junit5 (#1320)
- GTFS support for routing (#1316)
- upgrade to spring-boot 2.7.9 and dependency alignment for the api-tests #1310
- moved all api tests into
openrouteservicemodule #1352 - migrate java from 11 to 17 #1353
- time-dependent core routing algorithms (#1388)
- tests for traffic data #1449
- Consistent use of maximum number of visited nodes limit across different matrix algorithms (#1246)
- Updated code that queries the population database so that it can use more recent PostGIS version (#834)
- certain cases of OSM ways with invalid node refs causing crashes during graph building #1351
- update docker setup description (#1326)
- upgrade org.apache.logging.log4j:log4j-1.2-api from 2.19.0 to 2.20.0 (#1324)
- time-dependent routing with Dijkstra (#1322)
- change compile mode from Java 8 to Java 11 and remove old Java 8 API usages (#1321)
- support for API time parameters (#1315)
- upgrade spring-boot from 2.7.9 to 2.7.10 (#1372)
- upgrade graphhopper version to v4.4 for correct flushing of graph storages #1378
- Handle warning regarding transient dependencies #1383
- Bump spring-boot to 2.7.11 #1416
- Fix the maven-shared-utils CVE #1414
- Exclude snakeyaml #1418
- Upgrade geotools from 28.2 to 29.0 #1422
- upgrade graphhopper version to v4.6 #1427
- Map matching of traffic data (#1430)
- Upgrade kafka_2.13 from 3.4.0 to 3.4.1 (#1463)
- AccelerationWeighting (#1454)
7.0.1 - 2023-03-08
- fix tomcat config overwrite (#1311)
- Upgrade commons-io:commons-io from 2.7 to 2.11.0 (#1309)
- Upgrade com.fasterxml.jackson.core:jackson-core from 2.13.3 to 2.14.2 (#1307)
- Upgrade commons-io:commons-io from 2.6 to 2.7 (#1304)
7.0.0 - 2023-03-03
upgrade to GraphHopper 4.0 #1217 which introduces (amongst other things):
- faster build time
- faster route/reachability/matrix calculations
- improved osm tag logic for all profiles
- increased test coverage
- security fixes
- stability fixes
6.8.3 - 2023-03-02
- wheelchair profile excludes ways tagged highway:construction (#1295)
- Support access restriction tags listing multiple vehicles (#1219)
- upgrade org.glassfish.jaxb:jaxb-runtime from 2.3.7 to 2.3.8
- upgrade org.postgresql:postgresql from 42.5.1 to 42.5.2
6.8.2 - 2023-02-22
- visibility of csv_factor and csv_column API parameters (PR #1279)
- update org.apache.kafka:kafka_2.13 and related packages from 3.3.2 to 3.4.0
- update outdated dockerfile dependencies (PR #1284)
- fix the docker build by reducing the glibc version to 2.29-r0 (PR #1287)
6.8.1 - 2023-02-08
- API documentation on coordinate CRS
- Way access for walking profiles (#1227)
- Fix security vulnerability and testing for the swagger docs api (PR #1257)
- update com.typesafe:config from 1.4.1 to 1.4.2
- update log4j to version 2.19.0 and slf4j to 2.0.6
- update junit:junit from 4.13.1 to 4.13.2
- update org.postgresql:postgresql from 42.4.3 to 42.5.1
- update com.fasterxml.jackson bundle from 2.13.3 to 2.14.2
- update org.glassfish.jaxb:jaxb-runtime from 2.3.1 to 2.3.7
- update org.apache.kafka bundle from 2.5.1 to 3.3.2
- update org.apache.curator from 4.1.0 to 5.4.0
- update me.tongfei.progressbar from 0.5.5 to 0.9.5
- update org.springframework.boot:spring-boot-starter-web from 2.5.12 to 2.7.7
- update org.springframework.boot:spring-boot-starter-tomcat from 2.3.5.RELEASE to 2.7.7
- update com.typesafe:config from 1.4.1 to 1.4.2
- update springfox-swagger2 to 3.0.0
- update org.ow2.asm:asm from 9.0 to 9.4
6.8.0 - 2022-10-10
- backend documentation about encoded polylines without elevation data (#1094)
- python code on decoding polylines including elevation data
- Czech language support (thanks to trendspotter for the translation)
- Pedestrian and hiking support for time dependent routing
- Esperanto language support (thanks to ecxod for the translation)
- Romanian language support (thanks to ecxod for the translation)
- link to YouTube docker setup guide to docs (thanks to SyntaxByte)
- prototype of generic CSV-based routing to be used for heat stress
- Shadow Routing
- old v1 API code and related classes
- allow bridleways with bicycle=yes for bike profiles (#1167)
- improved log file settings error message (#1110)
- Dockerfile now creates intermediate directories if they are not present (#1109)
- internal properties of
IsochronesRequestmodel not ignored for swagger file generation - remove non-parameter
metricsStringsfrom API documentation (#756) - set default vehicle type for HGV profile (#816)
- added missing matchTraffic override (#1133)
- typo in docker documentation
- foot routing via
waterway=lock_gate(#1177) - graph builder for routing over open areas (#1186)
- address data alignment issue in hgv extended storage which occasionally caused
ArrayIndexOutOfBoundsException(#1181) - fix minor spelling errors in Places.md (#1196)
- address matrix failures for HGV profile (#1198)
- docker image is multistage now (#1234)
6.7.1 - 2022-10-05
- optional routing profile parameter
force_turn_costs(#1220)
6.7.0 - 2022-01-04
- add core matrix algorithm
- add new workflow to build and publish the docker image (#1035)
- optional
encoder_optionsfor wheelchair routing: speed factors for ways classified as problematic/preferred (#980) - optional routing API parameters
allow_unsuitable/surface_quality_knownfor wheelchair profile (#980) - Docs folder aggregating documentation from openrouteservice-docs, wiki, README.md and docker-subfolder
ors-config.jsonas default ors config option, which will replaceapp.config(#1017)- system property
ors_configwhich will replace theors_app_configproperty (#1017) - environment variable
ORS_CONFIGwhich will replace theORS_APP_CONFIGone (#1017) - ors config reading priority
- System property
ors_conf>ors_app_conf - Environment variable pointing to file in class path
ORS_CONF>ORS_APP_CONF - File in class path
ors-config.json>app.config - Error if none of the above is specified.
- System property
- links and info about docker setup to backend documentation
minimum_widthto wheelchair routing options documentation (#1080)
- Update tomcat version used by docker setup (#1022)
- Refactored
smoothness-type-parameter into Enum (#1007) - Improved wheelchair routing (#980)
- Error message when point is not found even though
radius:-1is specified (#979) - Formatting of tag filtering
- test config format and filetype to JSON
- docker
APP_CONFIGargument toORS_CONFIG(#1017) - default minimum
surface-typefor wheelchair tosett(#1059) - Default road surface value is now "paved" rather than "asphalt" (#711)
error_codes.md-documentation now with rest of backend docs (#1069)- remove duplicated code in
*RequestHandlers(#1067) - extended list of
places-request and -response categories
ors_app_configsystem property (#1017)app.configors configuration file name (#1017)ORS_APP_CONFenvironment variable (#1017)
- Errors in travel speed explanation
- Failing assertion with CALT routing (#1047)
- Improve travel time estimation for ferry routes (#1037)
- Resolving of HGV vehicle type-specific access restrictions does not require vehicle parameters to be set (#1006)
6.6.4 - 2022-01-03
- update log4j to version 2.17.1
- switch to GH fork version v0.13.15-4
6.6.3 - 2021-12-15
- switch to GH fork version v0.13.15-3 to address updated log4j version
6.6.2 - 2021-12-15
- updated log4j version to 2.16.0 which addresses CVE-2021-44228
6.6.1 - 2021-07-05
- made ORSKafkaConsumerInitContextListener non-blocking
- Initialize edge centrality scores only for edges fully within bbox
- References to old documentation now point to rendered version of new docs
6.6.0 - 2021-06-08
- Accept single value and array of length 1 as
radiuses-parameter (#923) - Useful error message for isochrone range/interval mismatches
- Coordinate precision of locations in
maneuver-object to 6 decimal places
- Correct travel time computation for routes involving time-dependent speeds regardless of the weighting used (#956)
- Compatibility of user provided maximum speed limit with HGV routing profile (#955)
- Clarified "Point not found"-Error message (#922)
- Correct isochrones response documentation (#670)
- Rare bug where virtual edges are used to construct geometry of isochrone. Check whether edge is virtual before using it.
- Duplicate parameter in centrality docs due to spring reading getters for docs
- Bug where supercell subcell ids were out of bounds in storage
6.5.0 - 2021-05-17
- Time-dependent core-based routing algorithms
- Option to disable edge-based routing in core for a single weighting (#928)
- Speed values falling below encoder's resolution are consequently stored as lowest possible non-zero value rather than being rounded to zero together with setting access to the corresponding edges to false (#944)
- Do not consider ill-defined "maxspeed = 0" OSM tags (#940)
- Use JSON definitions of country-specific speed limits (#939)
- Config file parameter to set the number of active landmarks for core routing (#930)
- Make sure A* with beeline approximation is used as default fallback algorithm (#926)
- Prioritize graph build date over data date in routing request (#925)
- Correct package declaration of BoundingBoxFactoryTest (#933)
- Some corrections to Hungarian language support (thanks to debyos)
6.4.4 - 2021-08-30
- URL for repo.heigit.org to HTTPS
6.4.3 - 2021-04-28
- Reduced unnecessary warning messages caused by spring output stream handling (#899
- Changed fast isochrone calculation behavior for multiple ranges
6.4.2 - 2021-04-21
- Allow to disable OSM conditional access and speed encoders via parameter in config file
- Turkish language support (thanks to kucar17 for the translation)
- app.config.sample HGV profile has now same settings regarding speed calculation as public API (#806)
- Concurrency bug in core edge filters which caused crashes during CALT graph preparation (#905)
- Fixed isochrones range documentation (#882)
- Updated installation instructions and usage to reflect v2 api (#744)
- Fixed isochrones algorithm selection for location_type parameter (#676)
- Updated link to client translations in readme
6.4.1 - 2021-03-31
- Fixed incorrect matrix response documentation (#873)
- Fixed incorrect indexing of waypoints for consecutive identical coordinates (#762)
- Changed isochrone polygon calculation to use more buffering
6.4.0 - 2021-03-26
- API endpoint "centrality" to calculate betweenness centrality values for nodes inside a given bounding box. Centrality is calculated using Brandes' algorithm.
- Support for turn restrictions with core-based routing algorithms
- Use Querygraph and virtual nodes for isochrone calculation in the same manner as in routing
- Remove Isochrones v1 api tests
- Fixed calculation of route distance limits with skipped segments (#814)
- Fixed missing segment distance and duration (#695)
- Fixed no response when asking for isochrone intersections (#675)
- Fixed continue_straight option with no bearing on CH-enabled profiles
6.3.7 - 2021-08-30
- URL for repo.heigit.org to HTTPS
6.3.6 - 2021-02-02
- Expand coordinates of all previous limit polygons before adding to new builder to prevent break-in on long polygon edges
6.3.5 - 2021-01-28
- Output run file to signal completion of graph building/loading at init time
- Define behavior for first container start with existing app.config
6.3.4 - 2021-01-19
- Overhaul of Contour creation for fast isochrones. Fixing unexpected behaviour for border edges.
6.3.3 - 2021-01-15
- Updated CGIAR URL in GH (see GH fork #35)
6.3.2 - 2020-12-14
- Prototype of time-dependent routing with A*, which takes into account OSM conditional access restrictions and speed limits
- Japanese language support (#811, thanks to higa4 for the translation)
- Added performance improvement for fast isochrones in active cell calculation
- Stabilize geometry for small isochrones with small intervals
- Updated dependencies
6.3.1 - 2020-10-20
- Updated documentation for running in Docker (#798)
- Handle invalid combination of HillIndexStorage without elevation (#683)
- Enabled turning off elevation data handling for profiles
- Fixed a bug in fast isochrones preprocessing
6.3.0 - 2020-09-14
- New fast isochrone algorithm based on preprocessed data
- Fixed handling of invalid extra info requests (#795)
- URL for repo.heigit.org to HTTPS
6.2.1 - 2020-08-13
- Check whether routing points are within different countries before routing and break if they are and all borders should be avoided
- Updated Docker process to use Java 11 (#777)
- Correctly resolve routing profile categories when initializing core edge filters in preprocessing (#785)
6.2.0 - 2020-07-15
- New
maximum_speedparameter to the driving profiles of the directions API, for specifying a speed limit, above a certain threshold set in the config file. - Polish translation (#690)
- Configuration parameter to enable elevation smoothing (#725)
- Fixed fallback to dynamic routing methods if bearings parameter set (#702)
- Enable elevation interpolation for bridges and tunnels (#685)
- Fixed erroneous duration computation of soft weightings such as green and quiet weightings
- Enable recommended weighting for hgv profile and robustify the matching of routing algorithm to the request (#755)
- Improve recommended weighting for cycling and walking profiles (#665)
- Restructure AdditionWeighting
- Upgrade to Java 11
- Use recommended weighting instead of fastest (#763)
- removed unused dependency
- URL for repo.heigit.org to HTTPS
6.1.1 - 2020-06-02
- Configuration option to read elevation tags from pbf data
- Configuration parameters to set location index resolution and the maximum number of iterations in coordinates lookup (#712)
- Removing maintenance burden of two
app.configfiles for native and docker setup (#742) - Allowed the usage of green and noise in extra info parameter (#688)
- Fixed extra info grouping with alternative routes (#681)
- Fixed way surface/type encoding issue (#677)
- Querying shortest weighting can now use CH shortest preparation if available
- Roads tagged with destination access are penalized the same way for hgv as for car (#525)
- JAVA_OPTS and CATALINA_OPTS were not correctly set in Docker setup (#696)
- Suitability values in extra info are not underestimated (#722)
- Fixed problem with incorrect way point values being referenced for round trip (#724)
- Fixed oneway handling for bike routing (#389) [by integrating GH PR #1769 of BikeCommonFlagEncoder]
- Refactor the algorithm selection process
- Use ALT/A* Beeline for roundtrips. Enable Core-ALT-only for pedestrian profile.
- Enable CH and Core-ALT preprocessing with recommended weighting for all profiles.
- Refactor wheelchair builder
- Running a Docker container will now create a
app.configon the host machine, so it's now usable from Dockerhub
6.1.0 - 2020-03-06
- Hebrew language support (thanks to citizen-dror for the translation)
- Configuration options to limit avoid_polygon routing option by area and/or extent (#629)
- Configuration options to limit count parameter and distance when using alternative routes algorithm (#651)
- Configuration options to limit distance when using round trip routing algorithm (#658)
- Enable CALT routing algorithm for cycling profiles (#662)
- Configuration options to send conditional system messages with API responses (#664)
- more consistent language API parameters (ISO 639-1 codes & IETF tags)
- Nepali language support can be selected through API
- Fixed invalid JSON and GeoJSON when including elevation (#640)
- Added graph date for isochrones and matrix service and fixed the 0 output (#648)
- Fixed memory issue at graph building (#659)
- Improve way category assignment for ferry connections (#678)
- improve french translation (directions)
- Make Docker setup more flexible wrt customizations (#627)
- Updated GraphHopper to newer version (0.13)
- Give more details to green and quiet routing API descriptions (#632)
- removed unused dependency
- URL for repo.heigit.org to HTTPS
6.0.0 - 2019-12-03
- Indonesian Translation Language
- Allow specifying a config file with -Dors_app_config= anywhere on the filesystem
- Enabled round trip routing (#391)
- Enabled aternative routes in API (#377)
- Added information to the response about when graphs were last built for the profile (#542)
- Added default value for maximum snapping radius
- Pass JAVA_OPTS and CATALINA_OPTS as Docker build arguments (#587)
- Encoding of waytype ferry (#573)
- Refactored Core-ALT algorithm so that it can be used globally
- Updated GraphHopper to newer version (0.12)
- Reworked flag encoders to use the methods provided by GraphHopper 0.12
- Renamed packages to follow naming conventions
- Cleanup of a number of code files
- Removed geocoding endpoint and code
- Removed accessibilty endpoint and code
- Removed Brotil encoder from servlet filter
5.0.2 - 2019-07-29
- Added a gpx schema validator into the api-tests, testing all gpx outputs while fixing the bug from (#496)
- Added information for countries a route traverses (#349)
- Added scanning of master with sonarcloud (2019-11-29)
- isochrone reachfactor gives now more realistic results (#325)
- Fixed the wrong gpx header for api v2 (#496)
- Make sure external storages contain entries for all edge IDs (#535)
- Check if BordersStorage exists before calling it in AvoidBordersCoreEdgeFilter
- Take into account shortcut direction in LM selection weighting (#550)
- Updated Matrix api v2 response to correctly display sources (#560)
- Check for null pointer in LM selection weighting (#550)
- Use commas rather than pipes for weighting options in app.config.sample (#564)
- Update point references when point is not found for routing (#567)
- Fix concurrency issues when requesting extra info in routing (#571)
- Moved walking and hiking flag encoders to the ORS core system (#440)
- Remove route optimization code (#499)
- Reduced distance for neighbourhood point search in isochrones when small isochrones are generated (#494)
- Removed obsolete storages (#536)
- Refactor fallback to preprocessing-independent algorithm for certain routing request params
- Removed some landmark sets as default from app.config.sample
5.0.1 - 2019-04-08
- CALT routing algorithm - Not for production (Issue #433)
- Makes docker and docker-compose deployment of openrouteservice more customizable (Issue #434)
- Add the possibility to predefine standard maximum search radii in general and for each used profile in the config file (Issue #418)
- fix the GPX output of the APIv2. It was broken since release of api v2. (Issue #533)
- fix SRTM URL in GH fork (#394)
- fix classpath issues for resources, Windows builds now (#489)
- isochrone geojson bbox now format compliant (#493)
- v2 isochrones now respects max_locations in app.config (#482)
- Updated documentation to reflect correct isochrone smoothing algorithm (Issue #471)
- Enable > 2 waypoints when geometry_simplify=true (#457)
- Made it so that the wheelchair profile only goes over bridleways if they are set to be foot or wheelchair accessible (#415)
- Fixed the build fail bug when
routing_namewas set in the config file (#424) - Fixed problem with border crossings where the way crosses three polygons (#491)
- Updated pom to always build ors.war (Issue #432)
- Replace usage of packages incompatible with Java >8 (#474)
- Updated Matrix to have a maximum number of routes to calculate rather than locations (#518)
- Removed the code that was inserted for the prototype traffic weightings as it was not used and made GH updates more complicated.
5.0.0 - 2019-02-25
- Updated api code to use the Spring framework, with the v2 api being added (Issue #233)
- Added support for ISO 3166-1 Alpha-2 / Alpha-3 codes for routing directions option avoid_countries (Issue #195)
- Added support for free hand route option/ skip segments (Issue #167)
- Added check on matrix service to make sure that the requested locations are within the bounding area of the graph (Issue #408)
- Makes docker and docker-compose deployment of openrouteservice more customizable (Issue #434)
- Added support for GH alternative_route algorithm (Issue #377)
- Fixed
geometry_simplifyparameter, which had no effect before.geometry_simplifyis incompatible withextra_info(#381)
- Updated rural speed limit in France to be 80km/h (Issue #355)
- Modified smoothing and buffer distances for small isochrones, aswell as other fixes for smaller isochrones (Issue #382)
- Updated pom to use correct opengeo repo and reordered so this is the last in the list, and use latest ORS-Graphhopper library (Issue #398)
- Added /directions as an endpoint for routing (Issue #384)
- Removed the following avoid features: pavedroads, unpavedroads, tunnels, tracks and hills, as well as the option to set maximum speed; for cycling and walking profiles the option to specify difficulty settings such as fitness level and maximum steepness (issue #396)
- Updated pom to always build ors.war (Issue #432)
4.7.2 - 2018-12-10
- Added Unit Tests for RouteSearchParameters.class() (while fixing Issue #291)
- Added ability to return warning messages in the route response which can be used for showing info to a user when warning criteria have been met based on extended storages.
- Added a RoadAccessRestrictions extended storage as a warning extended storage for when a route goes of ways with access restrictions (Issue #342)
- If residential penalty reduces speed to <5, set it to 5
- Added a new ParameterValueException in RouteSearchParameters if the profile is driving-car and profile_params are set in the options (Issue #291)
- Fixed API Test to consider the new ParameterValueException (while fixing Issue #291)
- Improved range and resolution of values encoding dimension/weight road restrictions in order to properly resolve them when corresponding hgv parameters are set (fixes issue #263)
- Fixed empty BBox error if the route is located in the southern hemisphere (Issue #348)
- Take into account access restrictions specific to hgv subprofiles (fixes issue #235)
- Properly resolve all tolls, especially hgv-specific ones (fixes issue #358)
- Updated checks on pedestrian way filter for access restrictions
- Allowed access for cars and hgvs on access=destination roads (Issue #342)
4.7.1 - 2018-10-24
Added instructions to readme for installing without Docker (Issue #272) Added area_units for isochrones API as units being misleading (Issue #272)
- Area calculation for isochrones using metric crs (Issue #130)
- Decreases maximum peed for bike-regular for more realistic reachability scores (Issue #325)
- Fixes self intersecting polygons when requesting population for isochrones (Issue #297)
- Changes center in isochrones response to snapped edge coordinate on graph (Issue #336)
- Enable HGV axleload restriction (Issue #262)
- Changed app.config.sample for docker to consider split profiles (Issue #320)
- Changed minor information in pom.xml
- Updated API test starting coordinates to be on a road (Issue #328)
4.7.0 - 2018-10-10
- Removed locations code as this will be handled by openpoiservice in the future (Issue #120)
- Removed Geocoding code as this will be handled by the geocoder service rather than within ORS
- Added smoothing option for isochrones (Issue #137)
- Added ExtraInfo storage for osm way id so that this information can be stored (and accessed) agianst the edges (Issue #217)
- Added a new GeometryUtility function and its unit test to calculate the bbox for a set of coordinates (Issue #241)
- Added support for elevation data above & and below the 60 deg N/S. When you run your own instance make sure that you specify the
elevation_provider: multi(instead of just 'cgiar') (Issue #220) - Added support to keep elevation source data over various path generation processes - add to your app.config:
elevation_cache_clear: false - Added support for new keep left/right turn instructions
- Correct logic of determining vehicle type flags in heavy vehicle storage (Issue #211)
- Enable OSM "key:access" tag values to take effect for heavy vehicle profile (Issue #209)
- Fixed problem with avoid polygons excluding ways that should have been accepted (Issue #95)
- Updated code to remove merging of instructions as this resulted in missing important turn instructions (Issue #177)
- Added missing translations for arrival instructions (Issue #171)
- Updated code so that acceleration is taken into account when speeds are calculated for edges (Issue #178)
- Fixed the mising rte tag in gpx issue (Issue #196)
- Fixed the gpx validation errror (Issue #168)
- Added unit conversion so that isochrone response is in user specified unit (issue #91)
- Enabled the reporting of multiple missing points in error response (issue #246)
- Fixed wrong bounding box error (Issue #241)
- Fixed problem with mountain bike profile never using contraction hierarchies.
- Updated the internal graphhopper libraries from 0.9.x to 0.10.1 and reduced the number of custom implementations and features. This implies that some of the previous features is no longer available in this release of openrouteservice. Most of these adjustments are under the hood and will not be noticeable for anyone. Have said that there is of course one exception: You need to create a separate profile per vehicle. In previous versions it was possible to combine multiple vehicles (like bike, road bike, e-bike and mtb) into a single ors-profile - this is no longer possible. Instead you need to create one profile for bike, one for mtb one for road bike and so on.
- Updated/refactored road bike flagencoder to make it more suitable for road cycling enthusiasts. Please note, that the generated routs might not be compliant to the local regulations - specially when 'Biking trails are obligated to be use'
- Refactored some of the edge filters and cleaned up the code initializing them
- Updated the wheelchair profile to better handle restrictions such as width, kerb heights and instances where sidewalks are attached to roads. (Issue #162)
- Replaced "Sand" surface encoding with "Paving stone"
- Changed the bbox api test (Issue #241)
- Changed the way the bbox is calculated internally (Issue #241)
- Change the license from apache 2.0 to LGPL3 (PR #296)
- Removed references to locations and accessibilty services from web.xml (Issue #186)
4.5.1 - 2018-03-20
- Fixed the parameters being the wrong way around in isochrones request when maximum range has been exceeded (Issue #126)
- Fixed the coordinate precision in the geojson export from 4 to 6 decimals (Issue #136)
- Fixed the instructions='false' error when exporting as geojson (Issue #138)
- Fixed missing summary in the geojson output (Issue #139)
- Fixed error when a high exit number for a roundabout is used in instructions (Issue #145)
- Updated error response code for routing when no route can be found between locations (Issue #144)
- Updated logging so that stack traces are only output when debug logging is enabled (Issue #148)
- Updated the error response for geocding when no address found (Issue #134)
4.5.0 - 2018-02-27
- Functionality has been added to restrict routes so that they do not cross all borders, controlled borders, or the borders of specific countries (Issue #41)
- Added GeoJson export for routing exports (Issue #54)
- Added global export class to combine all exports there (Issue #123)
- Option to specify maximum locations for matrix request when using non-standard weightings (Issue #94)
- Fix exception when roundabout exit is not correctly found (Issue #89)
- Option to specify maximum locations for matrix request when using non-standard weightings (Issue #94)
- Geocoder now returns a 404 response if no address is found for reverse geocoding (Issue #113)
- Fixed error codes (Issue #109)
- Correct querying of population statistics data for isochrones (Issue #106)
- RoutingProfile was changed to make sure whenever pop_total or pop_area is queried, both are present in the attributes (Issue #106)
- Response with a detour factor now uses "detourfactor" rather than "detour_factor" (Issue #61)
- Changed the gpx export to the new global export processor (Issue #123)
- getStatisticsOld | Connected to the old statistics library (Issue #106)
- geometryToWKB | Connected to the old statistics library (Issue #106)
4.4.2 - 2018-01-31
- Ability to get routes in GPX format (Issue #8)
- Ability to read HGV tags from OSM Nodes (Issue #49)
- No need to add optimisation parameter in request (PR #87)
- Option to respond md5 of osm file used for graph generation (Issue #48)
- Updated code to not use empty bearings when continue_straight=true is set (Issue #51)
- Fixed problem with HGV restrictions only being taken into account if less than three provided (Issue #75)
- RPHAST performance optimisations (Issue #64)
- Updated duration calculations for urban areas (Issue #44)
- Increase hikari pool size for db connections (PR #52)
4.4.1 - 2017-10-12
- Ability to compute and flush graphs without holding them in memory.
- Optionally define bearings for specific waypoints.
4.4.0 - 2017-10-09
- Updated functional tests.
- Bearings parameter may be passed for cycling profiles.
- Radiuses parameter may be passed for cycling profiles.
- Continue forward parameter may be passed for cycling profiles.
- Considering OSM tag smoothness=impassable in routing.
- First prototype of statistics provider in isochrones added.
- Remove tracking of the highest node in DownwardSearchEdgeFilter.
- Unable to find appropriate routing profile for optimized=true if not available.
- Possible Hash function in MultiTreeMetricsExtractor collision now removed.
- Minor speed up fix in ConcaveBallsIsochroneMapBuilder.
- Fix bug in RPHAST when location lies on a oneway road.
- Consider turn restrictions if optimized=false is passed.