MCPcopy
hub / github.com/visgl/deck.gl / getViewport

Function getViewport

modules/mapbox/src/deck-utils.ts:276–303  ·  view source on GitHub ↗
(deck: Deck, map: Map, renderParameters?: unknown)

Source from the content-addressed store, hash-verified

274};
275
276function getViewport(deck: Deck, map: Map, renderParameters?: unknown): Viewport | null {
277 const viewState = getViewState(map);
278 // View is always MapView or GlobeView in this context
279 const view = (deck.getView(MAPBOX_VIEW_ID) || getDefaultView(map)) as MapView | GlobeView;
280
281 if (renderParameters) {
282 // Called from MapboxLayerGroup.render
283 // Magic number, matches mapbox-gl@>=1.3.0's projection matrix
284 view.props.nearZMultiplier = 0.2;
285 }
286
287 // Get the base map near/far plane
288 // renderParameters is maplibre API but not mapbox
289 // Transform is not an official API, properties could be undefined for older versions
290 const nearZ = (renderParameters as MaplibreRenderParameters)?.nearZ ?? map.transform._nearZ;
291 const farZ = (renderParameters as MaplibreRenderParameters)?.farZ ?? map.transform._farZ;
292 if (Number.isFinite(nearZ)) {
293 viewState.nearZ = nearZ / map.transform.height;
294 viewState.farZ = farZ / map.transform.height;
295 }
296 // Otherwise fallback to default calculation using nearZMultiplier/farZMultiplier
297
298 return view.makeViewport({
299 width: deck.width,
300 height: deck.height,
301 viewState
302 });
303}
304
305function afterRender(deck: Deck, map: Map): void {
306 // Draw non-Mapbox layers (layers that don't have a corresponding MapboxLayerGroup on the map)

Callers 2

drawLayerGroupFunction · 0.70
afterRenderFunction · 0.70

Calls 3

getDefaultViewFunction · 0.85
getViewStateFunction · 0.70
getViewMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…