Camera
Controls the viewport of the Map.
Props
testID
Type: string
Required: No
zoom
The zoom level of the map.
Type: number
Required: No
bearing
The bearing (rotation) of the map.
Type: number
Required: No
pitch
The pitch of the map.
Type: number
Required: No
padding
The viewport padding in points.
Type: ViewPadding
Required: No
duration
The duration the map takes to animate to a new configuration.
Type: number
Required: No
easing
The easing or path the camera uses to animate to a new configuration.
Type: CameraEasing
Required: No
initialViewState
Default view settings applied on camera
Type: InitialViewState
Required: No
minZoom
Minimum zoom level of the map
Type: number
Required: No
maxZoom
Maximum zoom level of the map
Type: number
Required: No
maxBounds
Restrict map panning so that the center is within these bounds
Type: LngLatBounds
Required: No
trackUserLocation
The mode used to track the user location on the map:
undefined: The user's location is not tracked"default": Centers the user's location"heading": Centers the user's location and uses the compass for bearing"course": Centers the user's location and uses the direction of travel for bearing
Type: TrackUserLocation
Required: No
Default: undefined
onTrackUserLocationChange
Triggered when trackUserLocation changes
Type:
(
event: NativeSyntheticEvent<TrackUserLocationChangeEvent>,
) => void
Required: No
ref
Ref to access Camera methods.
Type: Ref<CameraRef>
Required: No
Ref Methods
jumpTo(options)
Map camera will move to new coordinates at the same zoom level
options
Type: CameraCenterOptions & CameraOptions
Required: Yes
Jump to a position
cameraRef.current?.jumpTo({ center: [lng, lat] });
easeTo(options)
Map camera will move to new coordinates at the same zoom level
options
Type: CameraCenterOptions & CameraOptions & CameraAnimationOptions
Required: Yes
Eases camera to new location based on duration
cameraRef.current?.easeTo({ center: [lng, lat], duration: 200 });
flyTo(options)
Map camera will fly to new coordinate
options
Type: CameraCenterOptions & CameraOptions & CameraAnimationOptions
Required: Yes
cameraRef.current?.flyTo({ center: [lng, lat], duration: 12000 });
fitBounds(bounds, [options])
Map camera transitions to fit provided bounds
bounds
Type: LngLatBounds
Required: Yes
options
Type: CameraOptions & CameraAnimationOptions
Required: No
cameraRef.current?.fitBounds(
[west, south, east, north],
{ top: 20, right: 20, bottom: 20, left: 20 },
1000,
);
zoomTo(zoom, [options])
Map camera will zoom to specified level
zoom
Zoom level that the map camera will animate too
Type: number
Required: Yes
options
Options
Type: CameraOptions & CameraAnimationOptions
Required: No
cameraRef.current?.zoomTo(16, { duration: 100 });
setStop(stop)
Map camera will perform updates based on provided config. Advanced use only!
stop
Array of Camera stops
Type: CameraStop
Required: Yes
Returns: Promise<void>
cameraRef.current?.setStop({
centerCoordinate: [lng, lat],
zoomLevel: 16,
duration: 2000,
});
cameraRef.current?.setStop({
stops: [
{ pitch: 45, duration: 200 },
{ heading: 180, duration: 300 },
],
});
Types
CameraOptions
Camera viewport configuration: zoom, bearing, pitch, and padding.
interface CameraOptions {
zoom?: number;
bearing?: number;
pitch?: number;
padding?: ViewPadding;
}
CameraEasing
Easing function used for camera animations.
type CameraEasing = undefined | "linear" | "ease" | "fly";
CameraAnimationOptions
Animation timing options for camera transitions.
interface CameraAnimationOptions {
duration?: number;
easing?: CameraEasing;
}
CameraCenterOptions
Camera center coordinate options.
interface CameraCenterOptions {
center: LngLat;
}
CameraBoundsOptions
Camera bounds options.
interface CameraBoundsOptions {
bounds: LngLatBounds;
}
CameraCenterStop
Camera animation stop positioned by a center coordinate.
type CameraCenterStop = CameraOptions &
CameraAnimationOptions &
CameraCenterOptions;
CameraBoundsStop
Camera animation stop positioned by geographic bounds.
type CameraBoundsStop = CameraOptions &
CameraAnimationOptions &
CameraBoundsOptions;
CameraStop
A single camera animation stop — optionally positioned by center, bounds, or neither.
type CameraStop =
| (CameraOptions &
CameraAnimationOptions & {
center?: never;
bounds?: never;
})
| CameraCenterStop
| CameraBoundsStop;
InitialViewState
Initial camera state when the map first loads.
type InitialViewState =
| (CameraOptions & {
center?: never;
bounds?: never;
})
| (CameraOptions & CameraCenterOptions)
| (CameraOptions & CameraBoundsOptions);
TrackUserLocation
User location tracking mode.
type TrackUserLocation = "default" | "heading" | "course";
TrackUserLocationChangeEvent
Event emitted when the user location tracking mode changes.
type TrackUserLocationChangeEvent = {
trackUserLocation: TrackUserLocation | null;
};