CompassWidget
This widget visualizes bearing and pitch. Click it once to reset bearing to 0, click it a second time to reset pitch to 0. Supports MapView and GlobeView.
- JavaScript
- TypeScript
- React
- React Controlled
import {Deck} from '@deck.gl/core';
import {CompassWidget} from '@deck.gl/widgets';
import '@deck.gl/widgets/stylesheet.css';
new Deck({
initialViewState: {
longitude: -122.4,
latitude: 37.8,
zoom: 11,
pitch: 45,
bearing: 30
},
controller: true,
widgets: [
new CompassWidget({placement: 'top-left'})
]
});
import {Deck} from '@deck.gl/core';
import {CompassWidget} from '@deck.gl/widgets';
import '@deck.gl/widgets/stylesheet.css';
new Deck({
initialViewState: {
longitude: -122.4,
latitude: 37.8,
zoom: 11,
pitch: 45,
bearing: 30
},
controller: true,
widgets: [
new CompassWidget({placement: 'top-left'})
]
});
import React from 'react';
import {DeckGL, CompassWidget} from '@deck.gl/react';
import '@deck.gl/widgets/stylesheet.css';
function App() {
return (
<DeckGL
initialViewState={{
longitude: -122.4,
latitude: 37.8,
zoom: 11,
pitch: 45,
bearing: 30
}}
controller
>
<CompassWidget placement="top-left" />
</DeckGL>
);
}
import React, {useState, useCallback} from 'react';
import {DeckGL, CompassWidget} from '@deck.gl/react';
import type {MapViewState} from '@deck.gl/core';
import '@deck.gl/widgets/stylesheet.css';
function App() {
const [viewState, setViewState] = useState<MapViewState>({
longitude: -122.4,
latitude: 37.8,
zoom: 11,
pitch: 45,
bearing: 30
});
const onViewStateChange = useCallback(({viewState: vs}) => {
setViewState(vs as MapViewState);
}, []);
return (
<DeckGL viewState={viewState} onViewStateChange={onViewStateChange} controller>
<CompassWidget placement="top-left" />
</DeckGL>
);
}
Constructor
import {CompassWidget, type CompassWidgetProps} from '@deck.gl/widgets';
new CompassWidget({} satisfies CompassWidgetProps);
Types
CompassWidgetProps
The CompassWidget accepts the generic WidgetProps and:
label (string, optional)
- Default:
'Compass'
Tooltip message displayed while hovering a mouse over the widget.
transitionDuration (number, optional)
- Default:
200
Bearing and pitch reset transition duration in milliseconds.
onReset (Function, optional)
(params: {viewId: string; bearing: number; pitch: number}) => void
- Default:
() => {}
Callback when the compass reset button is clicked. Called for each viewport that will be reset.
viewId: The view being resetbearing: The new bearing value (0)pitch: The new pitch value (0 if bearing was already 0)
Styles
Learn more about how to replace icons in the styling guide.
| Name | Type | Default |
|---|---|---|
--icon-compass | SVG Data Url | Custom Icon |
--icon-compass-north-color | Color | rgb(240, 92, 68) |
--icon-compass-south-color | Color | rgb(204, 204, 204) |