WebGL

Classe WebGLOverlayView

class google.maps.WebGLOverlayView extends MVCObject
library "maps"

La vue en superposition WebGL offre un accès direct au même contexte de rendu WebGL que celui utilisé par Google Maps Platform pour afficher la carte de base vectorielle. Utiliser un contexte de rendu partagé offre plusieurs avantages tels que l'occlusion de la profondeur avec la géométrie de bâtiments 3D et la possibilité de synchroniser le contenu 2D/3D avec le rendu de carte de base.

Avec la vue en superposition WebGL, vous pouvez ajouter du contenu à vos cartes en utilisant WebGL directement, ou à l'aide de bibliothèques graphiques populaires comme Three.js ou deck.gl. Pour utiliser l'overlay, vous pouvez étendre google.maps.WebGLOverlayView et fournir une implémentation pour chacun des hooks de cycle de vie suivants : WebGLOverlayView.onAdd, WebGLOverlayView.onContextRestored, WebGLOverlayView.onDraw, WebGLOverlayView.onContextLost et WebGLOverlayView.onRemove.

Vous devez appeler WebGLOverlayView.setMap avec un objet Map valide pour déclencher l'appel de la méthode onAdd() et setMap(null) afin de déclencher la méthode onRemove(). La méthode setMap() peut être appelée au moment de la construction ou à tout moment par la suite lorsque la superposition doit être réaffichée après avoir été supprimée. La méthode onDraw() est ensuite appelée chaque fois qu'une propriété de la carte est modifiée, ce qui peut modifier la position de l'élément (par exemple, le zoom, le centre ou le type de carte). WebGLOverlayView ne peut être ajouté qu'à une carte vectorielle ayant un MapOptions.mapId (y compris les cartes définies sur RenderingType.VECTOR MapOptions.renderingType et utilisant Map.DEMO_MAP_ID comme MapOptions.mapId).

const {WebGLOverlayView} = await google.maps.importLibrary("maps");
WebGLOverlayView
WebGLOverlayView()
Paramètres : aucun
Crée un objet WebGLOverlayView.
getMap
getMap()
Paramètres : aucun
Valeur renvoyée : Map|null|undefined
onAdd
onAdd()
Paramètres : aucun
Valeur renvoyée : aucune
Implémentez cette méthode pour extraire ou créer, avant que la superposition ne soit dessinée, des structures de données intermédiaires qui ne nécessitent pas d'accès immédiat au contexte de rendu WebGL. Cette méthode doit être implémentée pour le rendu.
onContextLost
onContextLost()
Paramètres : aucun
Valeur renvoyée : aucune
Cette méthode est appelée lorsque le contexte de rendu est perdu pour une raison quelconque. C'est là que vous devez nettoyer tout état GL préexistant, car vous n'en avez plus besoin.
onContextRestored
onContextRestored(options)
Paramètres :
  • options: WebGLStateOptions qui permettent aux développeurs de restaurer le contexte GL.
Valeur renvoyée : aucune
Cette méthode est appelée une fois que le contexte de rendu est disponible. Utilisez-le pour initialiser ou lier n'importe quel état WebGL, tel que les nuanceurs ou les objets de tampon.
onDraw
onDraw(options)
Paramètres :
  • options: WebGLDrawOptions qui permettent aux développeurs d'afficher du contenu sur une carte de base Google associée.
Valeur renvoyée : aucune
Implémentez cette méthode pour dessiner du contenu WebGL directement sur la carte. Notez que si la superposition nécessite le dessin d'un nouveau frame, appelez WebGLOverlayView.requestRedraw.
onRemove
onRemove()
Paramètres : aucun
Valeur renvoyée : aucune
Cette méthode est appelée lorsque la superposition est supprimée de la carte avec WebGLOverlayView.setMap(null). C'est là que vous devez supprimer tous les objets intermédiaires. Cette méthode doit être implémentée pour le rendu.
onStateUpdate
onStateUpdate(options)
Paramètres :
  • options: WebGLStateOptions qui permettent aux développeurs de restaurer le contexte GL.
Valeur renvoyée : aucune
Implémentez cette méthode pour gérer les mises à jour de l'état GL en dehors de l'image d'animation de rendu.
requestRedraw
requestRedraw()
Paramètres : aucun
Valeur renvoyée : aucune
Déclenche le rafraîchissement d'un frame de la carte.
requestStateUpdate
requestStateUpdate()
Paramètres : aucun
Valeur renvoyée : aucune
Déclenche la mise à jour de l'état GL de la carte.
setMap
setMap([map])
Paramètres :
  • map: Map optional : carte permettant d'accéder à l'élément div, au modèle et à l'état de la vue.
Valeur renvoyée : aucune
Ajoute la superposition à la carte.
Héritées : addListener, bindTo, get, notify, set, setValues, unbind, unbindAll

Interface WebGLDrawOptions

interface google.maps.WebGLDrawOptions

Options de dessin.

gl
WebGLRenderingContext sur lequel afficher cette WebGLOverlayView.
transformer
Transformation matricielle de l'espace de la caméra en coordonnées de latitude/longitude.

Interface WebGLStateOptions

interface google.maps.WebGLStateOptions

Options d'état GL.

gl
WebGLRenderingContext sur lequel afficher cette WebGLOverlayView.

Interface CoordinateTransformer

interface google.maps.CoordinateTransformer

Cette interface fournit des méthodes pratiques pour générer des matrices à utiliser pour afficher des scènes WebGL au-dessus de la carte de base Google.

Remarque : Une référence à cet objet ne doit pas être conservée en dehors du champ d'application de l'appel WebGLOverlayView.onDraw d'encapsulation.

fromLatLngAltitude
fromLatLngAltitude(latLngAltitude[, rotations, scale])
Paramètres :
  • latLngAltitude: LatLngAltitude|LatLngAltitudeLiteral Latitude, longitude et altitude.
  • rotations: Float32Array optional : tableau contenant un angle de rotation d'Euler en degrés, selon la convention XYZ.
  • scale: Float32Array optional Tableau contenant un tableau scalaire XYZ à appliquer à l'axe cardinal.
Valeur de retour : matrice MVP Float64Array à utiliser avec WebGL.
getCameraParams
getCameraParams()
Paramètres : aucun
Valeur renvoyée : paramètres de la caméra CameraParams

CameraParams

interface google.maps.CameraParams extends CameraOptions

Utilisé pour récupérer les paramètres de la caméra, tels que ceux de la caméra GL utilisée pour WebGLOverlayView.

center
Type : LatLng
heading
Type : number
tilt
Type : number
zoom
Type : number