The [MapView
] class is a subclass of View. This viewport creates a camera that looks at a geospatial location on a map from a certain direction. The behavior of MapView
is generally modeled after that of Mapbox GL JS.
It's recommended that you read the Views and Projections guide before using this class.
import {MapView} from '@deck.gl/core';
const view = new MapView({id, ...});
MapView
takes the same parameters as the View superclass constructor, plus the following:
repeat
(Boolean, optional) - Whether to render multiple copies of the map at low zoom levels. Defaultfalse
.nearZMultiplier
(Number, optional) - Scaler for the near plane, 1 unit equals to the height of the viewport. Default to0.1
. Overwrites thenear
parameter.farZMultiplier
(Number, optional) - Scaler for the far plane, 1 unit equals to the distance from the camera to the top edge of the screen. Default to1.01
. Overwrites thefar
parameter.
To render, MapView
needs to be used together with a viewState
with the following parameters:
longitude
(Number) - longitude at the map centerlatitude
(Number) - latitude at the map centerzoom
(Number) - zoom levelpitch
(Number, optional) - pitch angle in degrees. Default0
(top-down).bearing
(Number, optional) - bearing angle in degrees. Default0
(north).maxZoom
(Number, optional) - max zoom level. Default20
.minZoom
(Number, optional) - min zoom level. Default0
.maxPitch
(Number, optional) - max pitch angle. Default60
.minPitch
(Number, optional) - min pitch angle. Default0
.
The default controller of a MapView
is MapController.
By default, MapView
uses the MapController
to handle interactivity. To enable the controller, use:
const view = new MapView({id: 'base-map', controller: true});
MapController
supports the following interactions:
dragPan
: Drag to pandragRotate
: Drag while pressing shift/ctrl to rotatescrollZoom
: Mouse wheel to zoomdoubleClickZoom
: Double click to zoom in, with shift/ctrl down to zoom outtouchZoom
: Pinch zoomtouchRotate
: Multi-touch rotatekeyboard
: Keyboard (arrow keys to pan, arrow keys with shift/ctrl down to rotate, +/- to zoom)
You can further customize its behavior by extending the class:
import {MapController} from '@deck.gl/core';
class MyMapController extends MapController {}
const view = new MapView({id: 'base-map', controller: MyMapController});
See the documentation of Controller for implementation details.