Mapbox Implementation
Mapbox
Mapbox Version
11.8.0
React Native Version
0.74.5
Platform
Android
@rnmapbox/maps version
10.1.35
Standalone component to reproduce
import React, { useEffect, useRef } from 'react';
import {
MapView,
ShapeSource,
LineLayer,
Camera,
LocationPuck,
} from '@rnmapbox/maps';
const aLine = {
type: 'LineString',
coordinates: [
[-74.00597, 40.71427],
[-74.00697, 40.71527],
],
}
const BugReportExample = () => {
const mapCameraRef = useRef()
const locationPuck = true // Set this to false to hide the location puck. The issue only presents itself when the locationPuck is shown
useEffect(() => {
// Re-center the map every 5 seconds. When this is done, isUserInteraction should log as false (but it doesn't when locationPuck is true)
const interval = setInterval(() => {
mapCameraRef.current?.setCamera({
centerCoordinate: [-74.00597, 40.71427],
animationDuration: 1000,
animationMode: 'linear',
})
}, 5_000)
return () => {
clearInterval(interval)
}
}, [])
const regionIsChanging = (region) => {
console.log("isUserInteraction:", region.properties.isUserInteraction)
}
return (
<MapView style={{ flex: 1 }} onRegionIsChanging={regionIsChanging}>
<Camera ref={mapCameraRef} centerCoordinate={[-74.00597, 40.71427]} zoomLevel={14} />
<ShapeSource id="idStreetLayer" shape={aLine}>
<LineLayer id="idStreetLayer" />
</ShapeSource>
{locationPuck ? <LocationPuck puckBearingEnabled={true} puckBearing="heading" pulsing={"default"} /> : null}
</MapView>
)
}
Observed behavior and steps to reproduce
When the location puck is show on Android (this issue is not present on iOS), and mapCameraRef.current?.setCamera is used to animate to a location, the region.properties.isUserInteraction returned from onRegionIsChanging is true, when it should be false. The issue only occurs after the user interacts with the map for the first time.
Steps to reproduce:
- Use the component and view the console logs
- Move the map around a bit, then wait for it to recenter (recenters every 5 seconds)
isUserInteraction will print as true when this animation happens, even though it should be false. The issue does not occur on iOS.
- Set the
locationPuck constant I added to false (or comment out the locationPuck component) and the issue no longer occurs on Android
Expected behavior
isUserInteraction should print as false when a mapCameraRef.current?.setCamera animation is used
Notes / preliminary analysis
No response
Additional links and references
No response
Mapbox Implementation
Mapbox
Mapbox Version
11.8.0
React Native Version
0.74.5
Platform
Android
@rnmapbox/mapsversion10.1.35
Standalone component to reproduce
Observed behavior and steps to reproduce
When the location puck is show on Android (this issue is not present on iOS), and
mapCameraRef.current?.setCamerais used to animate to a location, theregion.properties.isUserInteractionreturned from onRegionIsChanging is true, when it should be false. The issue only occurs after the user interacts with the map for the first time.Steps to reproduce:
isUserInteractionwill print as true when this animation happens, even though it should be false. The issue does not occur on iOS.locationPuckconstant I added to false (or comment out the locationPuck component) and the issue no longer occurs on AndroidExpected behavior
isUserInteractionshould print as false when amapCameraRef.current?.setCameraanimation is usedNotes / preliminary analysis
No response
Additional links and references
No response