mapbox / mapbox/mapbox-navigation-ios
Reimplement RouteProgress based on navigator status
Nobody has claimed this yet.
- Dominant language
- Swift
- Stars
- 918
- Forks
- 326
- Avg merge
- 1h 16m
- Merged PRs (30d)
- 3
Description
MapboxNavigationNative provides route progress statistics, but RouteController mostly ignores it in favor of the calculations in RouteProgress. At some point, we may want to migrate over to MapboxNavigationNative’s calculations for consistency.
MapboxNavigationNative ensure a consistent Earth radius or distance formula between MapboxNavigationNative and Valhalla. Currently, Core Navigation calculates and aggregates route progress statistics purely from the fields coming from the Directions API, which ensures consistency with the API whether the endpoint happens to be powered by Valhalla or OSRM (which may use different constants). Differences in Earth radius and distance formula have bitten us in the past, and there’s still some inconsistency on the client side: mapbox/turf-swift#26. Migrating to MapboxNavigationNative for this purpose will be a bit sad because RouteProgress is such a showcase for Swift functional programming – especially compared to the C++ that would replace it under the hood.
/cc @mapbox/navigation-ios
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reading RouteController and RouteProgress, then compare their current calculations with the route progress statistics provided by MapboxNavigationNative. Review the consistency concerns involving the Directions API, Valhalla, OSRM, and turf-swift#26. Done means RouteProgress is reimplemented around navigator status with consistent progress calculations.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- ios, swift
- Domain
- mobile-dev
- Issue type
- Refactor
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 30/100