heremaps / here-android-sdk-examples

Java-based projects using the HERE SDK for Android.
Apache License 2.0
145 stars 191 forks source link

Navigation manager starts slow and with wrong orientation #264

Closed bluesnow4425 closed 5 years ago

bluesnow4425 commented 5 years ago

hi, i've noticed that many times the navigation starts really slow and waits long for the first NewInstructionEventListener.onNewInstructionEvent(). First i thought it was because bad gps connection, but i notice that if i start to navigate when the car is high speed moving, it also wait long for the first onNewInstructionEvent called.

Is there any suggestion on improving the initiate speed of navigation manager?

NazarKacharaba commented 5 years ago

Hi @bluesnow4425,

  1. What do you mean by “wrong orientation”?
  2. Do you use default location method(LocationMethod.GPS_NETWORK is set automatically by default) for PositioningManager or custom one?
  3. Do other map apps show phone location when you see this issue with HERE SDK?
  4. Could you provide geo coordinates for the route so we test it on our side?
bluesnow4425 commented 5 years ago

hi

  1. Wrong orientation means I'm seeing the the road ahead reversely. I'm using avigationManager.MapUpdateMode.ROADVIEW, it means the sdk showing the road ahead is at my back.
  2. I'm using the default one.
  3. I think so. But the problem is wrong orientation, the position is correct.
  4. Please refer to https://github.com/heremaps/here-android-sdk-examples/issues/261 i posted before.
NazarKacharaba commented 5 years ago

Could you record phone screen while it is happening so we can fully understand what is going on there?

ghost commented 5 years ago

Hello Nazar,

We are facing a similar issue also for both platforms iOS and Android. A screen record will not help here because you need someone to record the location on the map and then quickly show you the actual location. For both iOS and Android, there is a slight a delay between the actual location on the map and real location on the ground. For example, many people are missing the turn because on the map they see themselves behind the turn (because of the delay) where actually they already passed it in real life thinking that it is the next turn and it reroutes accordingly confusing the user.

It is noticeable in small neighborhoods with many different turns and directions and when the car moving in higher speeds comparing to the speed limit.

When comparing to Google Maps on the same device for example, Google Maps is behaving normally and drawing my location in sync with real life location.

Please let us know if it is reproducible and if there is any quick fix.

bluesnow4425 commented 5 years ago

hi nazar, i post record on #261 before, which is https://www.dropbox.com/s/c5g8c3gokwgamki/10083883718389.mp4?dl=0

It happens in several way 1) Start navigation during driving/while moving fast 2) When under/beneath the bridges or viaducts. 3) When stop at an intersection for a while

NazarKacharaba commented 5 years ago

One possible reason that is happening because for navigation SDK uses additional map layer that should be downloaded just before you start navigation, it is done automatically by the NavigationManager class when startNavigation is called. However, you can try doing it yourself using one of the following options:

  1. Use MapDataPrefetcher.fetchMapData(Route, Radius) to prefetch complete map data on the route that will be used for navigation.
  2. Use MapDataPrefetcher.fetchMapData(GeoBoundingBox area) to prefetch complete map data for the area of the navigation.
  3. Use MapLoader.installMapPackages(...) to install whole region.
starand commented 5 years ago

@bluesnow4425 did you manage to solve the issue? is there any updates?

starand commented 5 years ago

We fixed similar issue in SDK 3.13 (hope that fixes your problem). Please comment if you have further information.