mapbox / mapbox-java

The Mapbox Java SDK – Java wrappers around Mapbox APIs and other location data
https://docs.mapbox.com/android/java/overview/
MIT License
424 stars 120 forks source link

MapMatching and Direction API disagree #1158

Open TofLG opened 4 years ago

TofLG commented 4 years ago

Hi all,

I'm using Mapbox Navigation SDK (mapbox-android-sdk:8.6.0-alpha.2, mapbox-android-navigation:0.43.0-alpha.1) to navigate along an pedestrian itinerary set by waypoints that my server computed.

To do so, I'm using map-matching function quite successfully.

But as I was investigating some strange behaviors in my neighborhood, I wanted to quickly test the result of my map-matching on some problematic ways / nodes. I was hoping to use a tool such as https://docs.mapbox.com/playground/directions/ to do this troubleshooting but with map-matching request. Since such tool doesn't seem to exist I've mixed the request prepared by that tool with the one from https://docs.mapbox.com/help/demos/get-started-map-matching-api/index.html (that does map-matching but not pedestrian). By doing so, I realized that the direction API and the mapmatching API didn't answer the same thing to a similar query :

https://api.mapbox.com/directions/v5/mapbox/walking/5.800798037396589%2C45.21580602782012%3B5.801456870627447%2C45.215414481183615%3B5.801700058007384%2C45.21492591634032?alternatives=true&geometries=geojson&steps=true&access_token=MY-TOKEN

https://api.mapbox.com/matching/v5/mapbox/walking/5.800797650898716,45.21581080651953;5.801424456929027,45.21542164580532;5.801674116958651,45.214942675116106?geometries=geojson&radiuses=25;25;25&steps=true&access_token=MY-TOKEN

Even if the format could be different, I didn't expect the filtering of the ways and node to be different : it seems that mapmatching is blocked at a node : https://www.openstreetmap.org/node/746410976 when direction is not.

I don't think that the parsing of the map should be any different while using both API to come up with a pedestrian path. Am I wrong ? Is there a good reason it should be different ? or is it, as I expect, mapmatching API being less accurate ?

where can I find the filtering rules applied in both API calls ?

Thanks for investigating,

Guardiola31337 commented 4 years ago

cc @mapbox/navigation-api @danpat

Guardiola31337 commented 4 years ago

@danpaz Could you take a quick look at this when you have a chance 🙏?

danpat commented 4 years ago

Our Map Matching and Directions APIs are currently a little bit out of sync - we're doing some incremental upgrades in the backend that lead to a few discrepancies like this. We hope to have the behaviours properly aligned again by the end of Q3, if not sooner.

@TofLG So, to be clear - this is a known bug on our end, and one we're actively working to fix.

Guardiola31337 commented 4 years ago

Thanks for the follow up @danpat 🙇‍♂️

I'm going ahead and transfer this into https://github.com/mapbox/mapbox-java as it's not directly an issue coming from the Navigation SDK. Feel free to transfer it to somewhere else so you can keep track of it if necessary.