Skip to content
This repository was archived by the owner on Jun 21, 2023. It is now read-only.

Conversation

@LukasPaczos
Copy link

This PR adds a LocationComponent#forceLocation overload, which allows passing a list of locations. The last location in the list is the desired target, while everything else makes up for the intermediate points in the otherwise linear location puck animation. This allows for better road geometry tracking and avoids "cutting" corners when 2 raw updates are on the opposite side of an intersection maneuver.

This also exposes a lookAheadUpdate flag in the same method. If we have an ability to predict location updates, setting this flag to true will take the timestamp of the target location (last in the list) and calculate the animation duration equal to

targetLocationTimestamp - currentTimestamp

This allows minimizing the visual lag that a smooth animation would introduce otherwise.

/cc @SiarheiFedartsou @mskurydin

@LukasPaczos LukasPaczos requested review from a team and Guardiola31337 February 6, 2020 17:20
@chloekraw
Copy link
Contributor

@LukasPaczos neat idea. do we have any metrics on the performance diff with this change?

@LukasPaczos
Copy link
Author

I don't have data, but there should be no perf difference. Normally, the framework would interpolate between A->B with an arbitrary amount of intermediate points (system determines that based on the framerate). While now, the system will still fill in some intermediate points, but we're also making it possible to define a fixed amount of them which the system will have to visit giving us a chance to better shape the path.

Copy link
Member

@tobrun tobrun left a comment

Choose a reason for hiding this comment

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

:shipit:

@Guardiola31337 Guardiola31337 force-pushed the lp-location-intermediate-points branch from 9f81cbd to 24ed3be Compare February 7, 2020 22:07
Guardiola31337 pushed a commit to mapbox/mapbox-navigation-android that referenced this pull request Feb 7, 2020
@Guardiola31337
Copy link

@LukasPaczos
Copy link
Author

Thanks @Guardiola31337 👍

@LukasPaczos LukasPaczos merged commit 1b5aeeb into master Feb 11, 2020
@LukasPaczos LukasPaczos deleted the lp-location-intermediate-points branch February 11, 2020 12:37
LukasPaczos pushed a commit to mapbox/mapbox-navigation-android that referenced this pull request Feb 12, 2020
Guardiola31337 added a commit to mapbox/mapbox-navigation-android that referenced this pull request Feb 12, 2020
…2452)

* expose list of key points leading up to the enhanced location update

* fix SimpleMapboxNavigation example

* use env or project variables for bintray credentials

* updated licenses

* fix http client tests

* bump mapboxMapSdk version to 9.0.0-20200207.215725-27 (mapbox/mapbox-gl-native-android#166) which includes fix for mapbox-gl-native mapbox/mapbox-gl-native#16180 crash

* Follow up from #2452 (#2458)

* make configure router http interface parameter nullable

* add nn uncertain route state

* expose nn cache last route api in mapbox navigator

* remove lat long workaround not needed anymore as nn master-SNAPSHOT-0 includes the fix

* bump mapbox-navigation-native version to ms-bearing-from-shape-on-interpolation-SNAPSHOT-2

* bumped maps sdk to the latest 9.1.0-SNAPSHOT

* update MapboxTripSession tests

* update SimpleMapboxNavigation example log level

* remove explicit Bintray env variables declaration on CI

Co-authored-by: Pablo Guardiola <guardiola31337@gmail.com>
@tobrun tobrun added this to the release-vanilla-shake milestone Feb 28, 2020
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants