Creates a DOM overlay positioned absolutely over the canvas. Children are rendered into a separate React root. Remaining props are passed to the root div element.
<CanvasDOMOverlay
children?: ReactNode
/>children?: ReactNodeDOM content to render in the overlay.
Manages transitions between perspective and orthographic cameras. Wraps CameraTransitionManager and integrates with R3F's camera state. All CameraTransitionManager properties can be set as props.
<CameraTransition
mode?: string = 'perspective'
perspectiveCamera?: PerspectiveCamera
orthographicCamera?: OrthographicCamera
onBeforeToggle?: function
/>mode?: string = 'perspective'Active camera mode: 'perspective' or 'orthographic'.
perspectiveCamera?: PerspectiveCameraOverride the internal perspective camera.
orthographicCamera?: OrthographicCameraOverride the internal orthographic camera.
onBeforeToggle?: functionCalled before the camera mode switches, with the manager and target camera as arguments. Defaults to syncing via active controls if present.
Displays attributions collected from the loaded tileset. Must be a child of TilesRenderer. Remaining props are passed to the underlying CanvasDOMOverlay element.
<TilesAttributionOverlay
generateAttributions?: function
style?: Object
children?: ReactNode
/>generateAttributions?: functionCustom function to generate attribution elements. Receives the attributions array and the overlay element's unique id. Defaults to built-in rendering.
style?: ObjectStyle overrides applied to the overlay container.
children?: ReactNodeAdditional content rendered above the attributions.
A SettledObject that smoothly interpolates its position as the query result updates. Must be a descendant of SettledObjects.
<AnimatedSettledObject
interpolationFactor?: number = 0.025
onQueryUpdate?: function
/>interpolationFactor?: number = 0.025Controls interpolation speed. Smaller values produce slower, smoother movement.
onQueryUpdate?: functionCalled with the raycast hit result each time the query updates.
Creates a group positioned and oriented at a geographic coordinate on the tileset ellipsoid. Must be a child of TilesRenderer. Does not modify the tileset transform.
<EastNorthUpFrame
lat?: number = 0
lon?: number = 0
height?: number = 0
az?: number = 0
el?: number = 0
roll?: number = 0
ellipsoid?: Ellipsoid
children?: ReactNode
/>lat?: number = 0Latitude in radians.
lon?: number = 0Longitude in radians.
height?: number = 0Height above the ellipsoid in meters.
az?: number = 0Azimuth rotation in radians, applied first.
el?: number = 0Elevation rotation in radians, applied second.
roll?: number = 0Roll rotation in radians, applied third.
ellipsoid?: EllipsoidEllipsoid to use when no TilesRenderer parent is present.
children?: ReactNodeChildren positioned relative to the east-north-up frame.
Wraps the three.js EnvironmentControls class. Automatically attaches to the R3F camera, scene, and canvas. All EnvironmentControls properties can be set as props.
<EnvironmentControls
camera?: Camera
scene?: Object3D
domElement?: HTMLCanvasElement
/>camera?: CameraOverride the default R3F camera.
scene?: Object3DOverride the default R3F scene.
domElement?: HTMLCanvasElementOverride the default canvas element.
Wraps the three.js GlobeControls class. Must be a child of TilesRenderer to receive ellipsoid context. All GlobeControls properties can be set as props.
<GlobeControls
camera?: Camera
scene?: Object3D
domElement?: HTMLCanvasElement
/>camera?: CameraOverride the default R3F camera.
scene?: Object3DOverride the default R3F scene.
domElement?: HTMLCanvasElementOverride the default canvas element.
Positions a component on the surface of the tileset at a lat/lon coordinate or along a ray. Must be a descendant of SettledObjects.
<SettledObject
component?: ReactNode = <group/>
lat?: number = null
lon?: number = null
rayorigin?: Vector3 = null
raydirection?: Vector3 = null
onQueryUpdate?: function
/>component?: ReactNode = <group/>The element to clone and position on the surface.
lat?: number = nullLatitude in radians. Use with lon for geographic positioning.
lon?: number = nullLongitude in radians. Use with lat for geographic positioning.
rayorigin?: Vector3 = nullRay origin for arbitrary ray-based positioning.
raydirection?: Vector3 = nullRay direction for arbitrary ray-based positioning.
onQueryUpdate?: functionCalled with the raycast hit result each time the query updates.
Renders a compass overlay that rotates to indicate north based on the camera orientation relative to the tileset ellipsoid. Must be a child of TilesRenderer. Remaining props are passed to the root group element.
<CompassGizmo
mode?: string = '3d'
scale?: number = 35
margin?: number | Array = 10
visible?: boolean = true
overrideRenderLoop?: boolean
children?: ReactNode
/>mode?: string = '3d'Rotation mode: '3d' tracks full camera orientation, '2d' tracks yaw only.
scale?: number = 35Size of the compass in pixels.
margin?: number | Array = 10Margin from the bottom-right corner in pixels. Pass [x, y] to set each axis independently.
visible?: boolean = trueWhether the compass is rendered.
overrideRenderLoop?: booleanIf true, renders the main scene before drawing the compass overlay.
children?: ReactNodeCustom compass graphic replacing the default. Should fit within a -0.5 to 0.5 unit cube with +Y pointing north and +X pointing east.
Registers a plugin on the nearest parent TilesRenderer. Must be a child of TilesRenderer. All properties on the plugin instance can be set as props directly. Note that some plugin properties cannot be changed after construction.
<TilesPlugin
plugin: function
args?: Object | Array
children?: ReactNode
/>plugin: functionThe plugin class to instantiate.
args?: Object | ArrayConstructor arguments: an object (single arg) or array (spread as multiple args).
children?: ReactNodeChildren rendered once the plugin is registered.
Manages raycasting queries against the tileset for positioning child SettledObject components. Must be a child of TilesRenderer. All QueryManager properties can be set as props.
<SettledObjects
scene?: Object3D | Array
children?: ReactNode
/>scene?: Object3D | ArrayScene(s) to raycast against. Defaults to the R3F scene.
children?: ReactNodeSettledObject or AnimatedSettledObject components.
Wrapper for the three.js TilesRenderer class. All properties on the TilesRenderer instance can
be set as props using dot-notation for nested properties (e.g. lruCache-minSize). Events are
registered with a camel-cased on prefix (e.g. onLoadModel).
<TilesRenderer
url?: string
enabled?: boolean = true
group?: Object
children?: ReactNode
/>url?: stringURL of the tileset to load.
enabled?: boolean = trueIf false, update is not called on the renderer each frame.
group?: ObjectProps applied to the root Three.js group of the tileset.
children?: ReactNodeChild components such as TilesPlugin, GlobeControls, etc.