Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

When matching, ignore 'is_startpoint' propert, snap to any edge #5297

Merged
merged 6 commits into from
Dec 14, 2018

Conversation

danpat
Copy link
Member

@danpat danpat commented Dec 8, 2018

Issue

A while back, we added a is_startpoint property to the Lua profiles. If this is set to "false", it means you can't snap a coordinate to that edge.

This was handy for not accidentally snapping to tunnels, ferries and a few other things, but the heuristic wasn't subtle enough.

One bug it caused is trying to map-match across a highway=service,access=private road - we won't start/end you on one of these, but we will route over it. Because of the hard is_startpoint property, the map-matching algorithm wouldn't snap trace points to these edges, and it lead to some sometimes wonky traces.

This PR re-adds all those is_startpoints=true edges to the RTree, but adds a filter at query time - for viaroute, the behaviour remains as before - start/endpoints won't snap to is_startpoint=false. However the match plugin now overrides the filter, and will consider any edge that the Lua scripts have imported, even if is_startpoints=false.

This should improve matching across is_startpoint=false edges.

Tasklist

Requirements / Relations

Link any requirements here. Other pull requests this PR is based on?

…ally map-matching is done from real world data, which implies access to previously unsnappable points.
@danpat danpat force-pushed the danpat_snapping_for_matching branch from 07da87c to 2b28515 Compare December 13, 2018 22:17
@danpat danpat merged commit 81bc2f4 into master Dec 14, 2018
datendelphin added a commit to fossgis-routing-server/osrm-backend that referenced this pull request Nov 19, 2020
  - Changes from 5.20.0
    - Features:
      - ADDED: all waypoints in responses now contain a distance property between the original coordinate and the snapped location. [Project-OSRM#5255](Project-OSRM#5255)
      - ADDED: if `fallback_speed` is used, a new structure `fallback_speed_cells` will describe which cells contain estimated values [Project-OSRM#5259](Project-OSRM#5259)
      - REMOVED: we no longer publish Node 4 or 6 binary modules (they are still buildable from source) [Project-OSRM#5314](Project-OSRM#5314)
    - Table:
      - ADDED: new parameter `scale_factor` which will scale the cell `duration` values by this factor. [Project-OSRM#5298](Project-OSRM#5298)
      - FIXED: only trigger `scale_factor` code to scan matrix when necessary. [Project-OSRM#5303](Project-OSRM#5303)
      - FIXED: fix bug in reverse offset calculation that sometimes lead to negative (and other incorrect) values in distance table results [Project-OSRM#5315](Project-OSRM#5315)
    - Docker:
      - FIXED: use consistent boost version between build and runtime [Project-OSRM#5311](Project-OSRM#5311)
      - FIXED: don't override default permissions on /opt [Project-OSRM#5311](Project-OSRM#5311)
    - Matching:
      - CHANGED: matching will now consider edges marked with is_startpoint=false, allowing matching over ferries and other previously non-matchable edge types. [Project-OSRM#5297](Project-OSRM#5297)
    - Profile:
      - ADDED: Parse `source:maxspeed` and `maxspeed:type` tags to apply maxspeeds and add belgian flanders rural speed limit. [Project-OSRM#5217](Project-OSRM#5217)
      - CHANGED: Refactor maxspeed parsing to use common library. [Project-OSRM#5144](Project-OSRM#5144)
@DennisOSRM DennisOSRM deleted the danpat_snapping_for_matching branch November 6, 2022 14:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant