WebGL

Klasse WebGLOverlayView

google.maps.WebGLOverlayView Kurs

WebGL Overlay View bietet direkten Zugriff auf denselben WebGL-Kontext, den die Google Maps Platform zum Rendern der Vektorbasiskarte verwendet. Die Verwendung eines gemeinsamen Renderingkontexts bietet verschiedene Vorteile wie Tiefenverdeckung durch 3D-Gebäudegeometrie und die Möglichkeit, 2D-/3D-Inhalte mit Basiskarten-Rendering zu synchronisieren.

Mit WebGL Overlay View können Sie Ihren Karten Inhalte hinzufügen. Dazu können Sie WebGL direkt oder gängige Grafikbibliotheken wie Three.js oder deck.gl verwenden. Wenn Sie das Overlay verwenden möchten, können Sie google.maps.WebGLOverlayView erweitern und eine Implementierung für jeden der folgenden Lebenszyklus-Hooks bereitstellen: WebGLOverlayView.onAdd, WebGLOverlayView.onContextRestored, WebGLOverlayView.onDraw, WebGLOverlayView.onContextLost und WebGLOverlayView.onRemove.

Sie müssen WebGLOverlayView.setMap mit einem gültigen Map-Objekt aufrufen, um den Aufruf der onAdd()-Methode und setMap(null) zu starten, um die onRemove()-Methode zu starten. Die Methode setMap() kann beim Erstellen oder jederzeit danach aufgerufen werden, wenn das Overlay nach dem Entfernen wieder angezeigt werden soll. Die Methode onDraw() wird dann aufgerufen, wenn sich eine Karteneigenschaft ändert, die die Position des Elements beeinflussen könnte, z. B. Zoom, Zentrierung oder Kartentyp. WebGLOverlayView kann nur einer Vektorkarte mit einer MapOptions.mapId hinzugefügt werden. Dazu gehören auch Karten, die auf die RenderingType.VECTOR MapOptions.renderingType festgelegt sind und Map.DEMO_MAP_ID als MapOptions.mapId verwenden.

Diese Klasse erweitert MVCObject.

Rufe const {WebGLOverlayView} = await google.maps.importLibrary("maps") auf, um auf die Daten zuzugreifen. Weitere Informationen finden Sie unter Bibliotheken in der Maps JavaScript API.

WebGLOverlayView
WebGLOverlayView()
Parameter:Keine
Erstellt einen WebGLOverlayView.
getMap
getMap()
Parameter:Keine
Rückgabewert:Map|null|undefined
onAdd
onAdd()
Parameter:Keine
Rückgabewert:Keiner
Implementieren Sie diese Methode, um vor dem Erstellen des Overlays Zwischendatenstrukturen abzurufen oder zu erstellen, für die kein direkter Zugriff auf den WebGL-Renderingkontext erforderlich ist. Diese Methode muss implementiert werden, damit gerendert werden kann.
onContextLost
onContextLost()
Parameter:Keine
Rückgabewert:Keiner
Diese Methode wird aufgerufen, wenn der Renderingkontext aus irgendeinem Grund verloren geht. Hier sollten Sie alle vorhandenen GL-Zustände bereinigen, da sie nicht mehr benötigt werden.
onContextRestored
onContextRestored(options)
Parameter: 
  • optionsWebGLStateOptions, mit denen Entwickler den GL-Kontext wiederherstellen können.
Rückgabewert:Keiner
Diese Methode wird aufgerufen, sobald der Renderingkontext verfügbar ist. Damit können Sie einen WebGL-Zustand wie Shader oder Pufferobjekte initialisieren oder binden.
onDraw
onDraw(options)
Parameter: 
  • optionsWebGLDrawOptions, mit denen Entwickler Inhalte auf einer verknüpften Google-Basemap rendern können.
Rückgabewert:Keiner
Implementieren Sie diese Methode, um WebGL-Inhalte direkt auf der Karte zu zeichnen. Wenn für das Overlay ein neuer Frame gezeichnet werden muss, rufe WebGLOverlayView.requestRedraw auf.
onRemove
onRemove()
Parameter:Keine
Rückgabewert:Keiner
Diese Methode wird aufgerufen, wenn das Overlay mit WebGLOverlayView.setMap(null) von der Karte entfernt wird. Hier sollten Sie alle Zwischenobjekte entfernen. Diese Methode muss implementiert werden, damit gerendert werden kann.
onStateUpdate
onStateUpdate(options)
Parameter: 
  • optionsWebGLStateOptions, mit denen Entwickler den GL-Kontext wiederherstellen können.
Rückgabewert:Keiner
Implementieren Sie diese Methode, um GL-Zustandsaktualisierungen außerhalb des Rendering-Animationsframes zu verarbeiten.
requestRedraw
requestRedraw()
Parameter:Keine
Rückgabewert:Keiner
Die Karte wird dazu veranlasst, einen Frame neu zu zeichnen.
requestStateUpdate
requestStateUpdate()
Parameter:Keine
Rückgabewert:Keiner
Löst die Aktualisierung des GL-Status durch die Karte aus.
setMap
setMap([map])
Parameter: 
  • mapMap optional Die Zuordnung zum Zugriff auf das Div-Element, das Modell und den Ansichtsstatus.
Rückgabewert:Keiner
Fügt den Overlay zur Karte hinzu.
Übernommen:addListener, bindTo, get, notify, set, setValues, unbind, unbindAll

WebGLDrawOptions-Schnittstelle

google.maps.WebGLDrawOptions Benutzeroberfläche

Zeichenoptionen

gl
Der WebGL-Renderingkontext, in dem diese WebGLOverlayView gerendert werden soll.
transformer
Die Matrixtransformation vom Kameraraum in Breiten- und Längengradkoordinaten.

WebGLStateOptions-Schnittstelle

google.maps.WebGLStateOptions Benutzeroberfläche

GL-Statusoptionen

gl
Der WebGL-Renderingkontext, in dem diese WebGLOverlayView gerendert werden soll.

CoordinateTransformer-Schnittstelle

google.maps.CoordinateTransformer Benutzeroberfläche

Diese Schnittstelle bietet praktische Methoden zum Generieren von Matrizen, die zum Rendern von WebGL-Szenen auf der Google-Basiskarte verwendet werden.

Hinweis: Ein Verweis auf dieses Objekt sollte nicht außerhalb des Gültigkeitsbereichs des einkapselnden WebGLOverlayView.onDraw-Aufrufs gehalten werden.

fromLatLngAltitude
fromLatLngAltitude(latLngAltitude[, rotations, scale])
Parameter: 
  • latLngAltitudeLatLngAltitude|LatLngAltitudeLiteralBreiten- und Längengrad sowie Höhe.
  • rotationsFloat32Array optional Ein Array, das einen eulerschen Drehwinkel in Grad gemäß der XYZ-Konvention enthält.
  • scaleFloat32Array optional-Array, das ein XYZ-Skalarray enthält, das auf die Kardinalachse angewendet werden soll.
Rückgabewert:Float64Array MVP-Matrix für die Verwendung mit WebGL.
getCameraParams
getCameraParams()
Parameter:Keine
Rückgabewert:CameraParams Kameraparameter

CameraParams-Schnittstelle

google.maps.CameraParams Benutzeroberfläche

Wird zum Abrufen von Kameraparametern verwendet, z. B. der GL-Kamera, die für die WebGLOverlayView verwendet wird.

Diese Schnittstelle erweitert CameraOptions.

center
Typ:LatLng
heading
Typ:number
tilt
Typ:number
zoom
Typ:number