Skip to content

Conversation

sfendrich
Copy link
Contributor

@sfendrich sfendrich commented Aug 12, 2025

Pull Request Checklist

  • 1. I have [rebased][rebase] the latest version of the main branch into my feature branch and all conflicts
    have been resolved.
  • 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.
  • 4. I have removed unnecessary commented out code, imports and System.out.println statements.
  • 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][config]
    along with a short description of what it is for, and documented this in the Pull Request (below).
  • 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.
  • 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][api].

Related to #2107 .

Information about the changes

  • Key functionality added: enabled OrsSuface encoded value for custom profiles

Sascha Fendrich added 2 commits August 12, 2025 11:11
This requires a version of graphhopper that contains the surface type enum
as encoded value.
@aoles aoles changed the title Feat/enable ors surface ev feat: enable ors surface ev Aug 12, 2025
@github-actions github-actions bot added feature and removed feature labels Aug 12, 2025
@aoles aoles enabled auto-merge August 13, 2025 07:55
aoles added 2 commits August 13, 2025 17:50
Encoded values need to be defined in GH codebase in order to be able to use them in custom profiles.
@aoles aoles requested a review from Copilot August 13, 2025 16:03
@github-actions github-actions bot added feature and removed feature labels Aug 13, 2025
Copy link
Contributor

@Copilot Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR enables the OrsSurface encoded value for custom profiles by implementing the necessary parser infrastructure and updating the GraphHopper version. The change allows routing profiles to utilize surface type information (e.g., asphalt, gravel, dirt) in custom routing models.

  • Upgrades GraphHopper version from v4.9.8 to v4.9.9
  • Implements OrsSurfaceParser to handle surface tag parsing from OSM data
  • Updates tag parser factory to register the new surface parser

Reviewed Changes

Copilot reviewed 7 out of 7 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
pom.xml Updates GraphHopper version to v4.9.9
OrsSurfaceParser.java Implements new parser for surface encoded values with comprehensive surface type mapping
OrsTagParserFactory.java Registers OrsSurfaceParser in the tag parser factory
OrsEncodedValueFactory.java Refactors if-else to switch statement for better maintainability
ORSGraphHopperConfig.java Updates surface encoded value reference from Surface to OrsSurface
ResultTest.java Updates test to use correct encoded value name
CHANGELOG.md Documents the new feature

Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.

Copy link
Member

@aoles aoles left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you for enabling the first ORS-specific encoded value! 🚀

Copy link

@aoles aoles merged commit 957c6ac into main Aug 13, 2025
32 checks passed
@aoles aoles deleted the feat/enable-ors-surface-ev branch August 13, 2025 22:09
@aoles aoles restored the feat/enable-ors-surface-ev branch August 13, 2025 22:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants