Klasse WebGLOverlayView
google.maps.WebGLOverlayView
Klasse
Die WebGL-Overlay-Ansicht bietet direkten Zugriff auf denselben WebGL-Renderingkontext, 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 lassen sich 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 die folgenden Lifecycle-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 Methode onAdd()
auszulösen, und setMap(null)
, um die Methode onRemove()
auszulösen. Die Methode setMap()
kann bei der Erstellung oder zu einem beliebigen Zeitpunkt danach aufgerufen werden, wenn das Overlay nach dem Entfernen wieder angezeigt werden soll. Die Methode onDraw()
wird dann immer aufgerufen, wenn sich eine Karteneigenschaft ändert, die die Position des Elements ändern könnte, z. B. Zoom, Zentrum oder Kartentyp. WebGLOverlayView kann nur einer Vektorkarte mit MapOptions.mapId
hinzugefügt werden (einschließlich Karten, die auf RenderingType.VECTOR
MapOptions.renderingType
festgelegt sind und Map.DEMO_MAP_ID
als MapOptions.mapId
verwenden).
Diese Klasse erweitert MVCObject
.
Zugriff durch Anrufen von const {WebGLOverlayView} = await google.maps.importLibrary("maps")
.
Weitere Informationen finden Sie unter Bibliotheken in der Maps JavaScript API.
Konstruktor | |
---|---|
WebGLOverlayView |
WebGLOverlayView() Parameter:Keine
Erstellt einen WebGLOverlayView . |
Methoden | |
---|---|
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 für das Rendern implementiert werden. |
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:
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:
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, rufen Sie 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 für das Rendern implementiert werden. |
onStateUpdate |
onStateUpdate(options) Parameter:
Rückgabewert:Keiner
Implementieren Sie diese Methode, um alle GL-Zustandsaktualisierungen außerhalb des Render-Animations-Frames zu verarbeiten. |
requestRedraw |
requestRedraw() Parameter:Keine
Rückgabewert:Keiner
Löst das erneute Zeichnen eines Frames auf der Karte aus. |
requestStateUpdate |
requestStateUpdate() Parameter:Keine
Rückgabewert:Keiner
Löst die Aktualisierung des GL-Status der Karte aus. |
setMap |
setMap([map]) Parameter:
Rückgabewert:Keiner
Fügt den Overlay zur Karte hinzu. |
Geerbt:addListener ,
bindTo ,
get ,
notify ,
set ,
setValues ,
unbind ,
unbindAll
|
WebGLDrawOptions-Schnittstelle
google.maps.WebGLDrawOptions
-Schnittstelle
Zeichnungsoptionen.
Attribute | |
---|---|
gl |
Der WebGLRenderingContext, in dem diese WebGLOverlayView gerendert werden soll. |
transformer |
Die Matrix-Transformation vom Kameraraum in Breiten-/Längengradkoordinaten. |
WebGLStateOptions-Schnittstelle
google.maps.WebGLStateOptions
-Schnittstelle
Optionen für den GL-Zustand.
Attribute | |
---|---|
gl |
Der WebGLRenderingContext, in dem diese WebGLOverlayView gerendert werden soll. |
CoordinateTransformer-Schnittstelle
google.maps.CoordinateTransformer
-Schnittstelle
Diese Schnittstelle bietet praktische Methoden zum Generieren von Matrizen, die zum Rendern von WebGL-Szenen auf der Google-Basiskarte verwendet werden.
Hinweis: Eine Referenz auf dieses Objekt sollte nicht außerhalb des Bereichs des umschließenden WebGLOverlayView.onDraw
-Aufrufs gespeichert werden.
Methoden | |
---|---|
fromLatLngAltitude |
fromLatLngAltitude(latLngAltitude[, rotations, scale]) Parameter:
Rückgabewert:
Float64Array MVP-Matrix für die Verwendung mit WebGL. |
getCameraParams |
getCameraParams() Parameter:Keine
Rückgabewert:
CameraParams Kameraparameter |
CameraParams-Schnittstelle
google.maps.CameraParams
-Schnittstelle
Wird zum Abrufen von Kameraparametern verwendet, z. B. der GL-Kamera, die für WebGLOverlayView
verwendet wird.
Diese Schnittstelle erweitert CameraOptions
.
Attribute | |
---|---|
center |
Typ:
LatLng |
heading |
Typ:
number |
tilt |
Typ:
number |
zoom |
Typ:
number |