[x] 1. I have rebased the latest version of the main branch into my feature branch and all conflicts
have been resolved.
[x] 2. I have added information about the change/addition to functionality to the CHANGELOG.md file under the
[Unreleased] heading.
[ ] 3. I have documented my code using JDocs tags.
[x] 4. I have removed unnecessary commented out code, imports and System.out.println statements.
[x] 5. I have written JUnit tests for any new methods/classes and ensured that they pass.
[ ] 6. I have created API tests for any new functionality exposed to the API.
[ ] 7. If changes/additions are made to the ors-config.json file, I have added these to the ors config documentation
along with a short description of what it is for, and documented this in the Pull Request (below).
[x] 8. I have built graphs with my code of the Heidelberg.osm.gz file and run the api-tests with all test passing
[ ] 9. I have referenced the Issue Number in the Pull Request (if the changes were from an issue).
[ ] 10. For new features or changes involving building of graphs, I have tested on a larger dataset
(at least Germany), and the graphs build without problems (i.e. no out-of-memory errors).
[ ] 11. For new features or changes involving the graphbuilding process (i.e. changing encoders, updating the
importer etc.), I have generated longer distance routes for the affected profiles with different options
(avoid features, max weight etc.) and compared these with the routes of the same parameters and start/end
points generated from the current live ORS.
If there are differences then the reasoning for these MUST be documented in the pull request.
[x] 12. I have written in the Pull Request information about the changes made including their intended usage
and why the change was needed.
[ ] 13. For changes touching the API documentation, I have tested that the API playground renders correctly.
Fixes #1779.
Information about the changes
In order to be able to encode surface categories as 4 bit values their number has been reduced to 16 by removing the following ones:
Woodchips: Not particularly common (0.02%) or relevant for routing on ways, because typical features exhibiting this type of surface are located within playgrouds, parks, etc. Note that this has never been functional because its original value of 16 exceeds the available data type range of 4 bits.
Cobblestone: the OSM tag surface=cobblestone is quite generic as it is used for both sett and unhewn_cobblestone. As such it is ambiguous, because sett is already classified as "Paving Stones".
Fine gravel: ambiguous as according to OSM wiki surface=fine_gravelis used somewhat inconsistently. It may be used to specify fine loose gravel (...), but it is also sometimes used as an alias for compacted. Therefore, it seems to make sense to marge it with the more generic category for surface=gravel which has very large meaning range. Used for cases ranging from huge gravel pieces like track ballast used as surface, through small pieces of gravel to compacted surface.
Additionally, the category for surface=earth (0.25%) has been changed from "Ground" to "Dirt", and some less common surface types have been assigned to one of the existing categories. All the changes are summarized in
the table below. It lists the top 50 values of way surface tags which have a Wiki entry, with "Special" types of surfaces removed. The values from the change column override those from the current one.
Pull Request Checklist
Fixes #1779.
Information about the changes
In order to be able to encode surface categories as 4 bit values their number has been reduced to 16 by removing the following ones:
surface=cobblestone
is quite generic as it is used for bothsett
andunhewn_cobblestone
. As such it is ambiguous, becausesett
is already classified as "Paving Stones".surface=fine_gravel
is used somewhat inconsistently. It may be used to specify fine loose gravel (...), but it is also sometimes used as an alias for compacted. Therefore, it seems to make sense to marge it with the more generic category forsurface=gravel
which has very large meaning range. Used for cases ranging from huge gravel pieces like track ballast used as surface, through small pieces of gravel to compacted surface.Additionally, the category for
surface=earth
(0.25%) has been changed from "Ground" to "Dirt", and some less common surface types have been assigned to one of the existing categories. All the changes are summarized in the table below. It lists the top 50 values of waysurface
tags which have a Wiki entry, with "Special" types of surfaces removed. The values from the change column override those from the current one.Fine GravelCobblestoneWoodchips