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

Moving the map with active navigation leads to marker getting dragged off the route #27

Closed
boldtrn opened this issue Feb 12, 2024 · 4 comments · Fixed by #53
Closed
Labels
bug Something isn't working

Comments

@boldtrn
Copy link
Collaborator

boldtrn commented Feb 12, 2024

Steps to Trigger Behavior

  1. Start the example app and navigate
  2. Move the map
  3. The location marker is moved with the map and does not stay at the user's location
  4. The location flies back on the route

Expected Behavior

The marker should stay on the location of the user

Actual Behavior

It is moved away

Version(s) affected

  • Platform: iOS
  • OS version: iOS 17 (pretty sure it happens across different iOS versions)
  • Emulator/ Simulator: both
  • maplibre-navigation-ios Version current main
  • MapLibre GL version 6.0.0
@boldtrn boldtrn added the bug Something isn't working label Feb 12, 2024
@mindthefish
Copy link
Contributor

With the update to MapLibre native 6.0.0 there is an issue where mapViewDidFinishRenderingFrameFullyRendered is not called in MLNMapView and therefore not in NavigationMapView. This callback seems to be needed to set the position of the userCourseView. For me it only occurs when flinging, not when slowly panning. I assume this is a problem with the MapLibre Native update? I rolled back to 5.13 and had no problems as the callback is triggered during the interaction.

puck.mp4

@mindthefish
Copy link
Contributor

@boldtrn Do you see this as a maplibre-navigation issue or should we consider opening an issue at MapLibre Native? Currently this is a blocker for using the latest version.

@boldtrn
Copy link
Collaborator Author

boldtrn commented Apr 3, 2024

I think this issue existed before the Maplibre Update as well, but maybe it was not so frequent?

Do you see this as a maplibre-navigation issue or should we consider opening an issue at MapLibre Native? Currently this is a blocker for using the latest version.

Good question, I guess this depends on if we expect this call to actually happen during the animation. My feeling is that this callback should be called and if it is not called, this is probably an issue with Maplibre itself, but I am not 100% sure.

Have you tried it Maplibre 6.3? If it still occurs with 6.3 maybe you could bring this up either as issue or discussion in the Slack?

@mindthefish
Copy link
Contributor

6.3.0 unfortunately does not solve the problem. I opened an issue in maplibre/maplibre-native like suggested from @louwers.

michaelkirk added a commit to michaelkirk/maplibre-navigation-ios that referenced this issue Jun 3, 2024
The bug was especially noticeable when panning quickly or zooming in
while navigating.

The issue is that the upstream method signature changed in
76469a0c2227927f03a15fb95b3a20f34becc78c and then again in
8ad5f9c1fd58c60b93d26c2819637fd8f2144fd1

So our "overridden method" wasn't actually being called.

It's not the commit authors fault that it broke - this is a private
method we're calling.

A longer term fix might be to include some kind of public stable
delegate method rather than an override.
michaelkirk added a commit to michaelkirk/maplibre-navigation-ios that referenced this issue Jun 3, 2024
The bug was especially noticeable when panning quickly or zooming in
while navigating.

The issue is that the upstream method signature changed in
76469a0c2227927f03a15fb95b3a20f34becc78c and then again in
8ad5f9c1fd58c60b93d26c2819637fd8f2144fd1

So our "overridden method" wasn't actually being called.

It's not the commit authors fault that it broke - this is a private
method we're calling.

A longer term fix might be to include some kind of public stable
delegate method rather than an override.
michaelkirk added a commit to michaelkirk/maplibre-navigation-ios that referenced this issue Jun 3, 2024
The bug was especially noticeable when panning quickly or zooming in
while navigating.

The issue is that the upstream method signature changed in
76469a0c2227927f03a15fb95b3a20f34becc78c and then again in
8ad5f9c1fd58c60b93d26c2819637fd8f2144fd1, which first appeared in the
ios-v6.0.0 tag.

So our "overridden method" wasn't actually being called.

It's not the commit authors fault that it broke - this is a private
method we're calling.

A longer term fix might be to include some kind of public stable
delegate method rather than an override.
boldtrn pushed a commit that referenced this issue Jun 11, 2024
The bug was especially noticeable when panning quickly or zooming in
while navigating.

The issue is that the upstream method signature changed in
76469a0c2227927f03a15fb95b3a20f34becc78c and then again in
8ad5f9c1fd58c60b93d26c2819637fd8f2144fd1, which first appeared in the
ios-v6.0.0 tag.

So our "overridden method" wasn't actually being called.

It's not the commit authors fault that it broke - this is a private
method we're calling.

A longer term fix might be to include some kind of public stable
delegate method rather than an override.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants