WebGL

Klasa WebGLOverlayView

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

Widok nakładki WebGL zapewnia bezpośredni dostęp do tego samego kontekstu renderowania WebGL, którego Google Maps Platform używa do renderowania wektorowej mapy podstawowej. Użycie wspólnego kontekstu renderowania zapewnia korzyści, takie jak okluzja głębi z geometrią budynku 3D oraz możliwość synchronizowania treści 2D/3D z renderowaniem mapy podstawowej.

Dzięki widokowi nakładki WebGL możesz dodawać treści do map, korzystając bezpośrednio z WebGL lub popularnych bibliotek graficznych, takich jak Three.js czy deck.gl. Aby użyć nakładki, możesz rozszerzyć google.maps.WebGLOverlayView i zapewnić implementację dla każdego z tych punktów zaczepienia cyklu życia: WebGLOverlayView.onAdd, WebGLOverlayView.onContextRestored, WebGLOverlayView.onDraw, WebGLOverlayView.onContextLost i WebGLOverlayView.onRemove.

Musisz wywołać metodę WebGLOverlayView.setMap z prawidłowym obiektem Map, aby wywołać metodę onAdd(), oraz metodę setMap(null), aby wywołać metodę onRemove(). Metodę setMap() można wywołać w momencie tworzenia lub w dowolnym momencie, gdy nakładka ma zostać ponownie wyświetlona po usunięciu. Metoda onDraw() będzie wywoływana za każdym razem, gdy zmieni się właściwość mapy, która może zmienić pozycję elementu, np. powiększenie, środek lub typ mapy. Obiekt WebGLOverlayView można dodać tylko do mapy wektorowej z MapOptions.mapId (w tym do map ustawionych na RenderingType.VECTOR MapOptions.renderingType i używających Map.DEMO_MAP_ID jako MapOptions.mapId).

const {WebGLOverlayView} = await google.maps.importLibrary("maps");
WebGLOverlayView
WebGLOverlayView()
Parametry: brak
Tworzy WebGLOverlayView.
getMap
getMap()
Parametry: brak
Wartość zwracana: Map|null|undefined
onAdd
onAdd()
Parametry: brak
Zwracana wartość: brak
Zaimplementuj tę metodę, aby pobrać lub utworzyć pośrednie struktury danych przed narysowaniem nakładki, które nie wymagają natychmiastowego dostępu do kontekstu renderowania WebGL. Aby renderować, musisz zaimplementować tę metodę.
onContextLost
onContextLost()
Parametry: brak
Zwracana wartość: brak
Ta metoda jest wywoływana, gdy kontekst renderowania zostanie utracony z jakiegokolwiek powodu. W tym miejscu należy wyczyścić wszystkie istniejące wcześniej stany GL, ponieważ nie są już potrzebne.
onContextRestored
onContextRestored(options)
Parametry:
  • options: WebGLStateOptions, które umożliwiają deweloperom przywrócenie kontekstu GL.
Zwracana wartość: brak
Ta metoda jest wywoływana, gdy kontekst renderowania jest dostępny. Użyj go do zainicjowania lub powiązania dowolnego stanu WebGL, takiego jak shadery lub obiekty buforowe.
onDraw
onDraw(options)
Parametry:
  • options: WebGLDrawOptions, które umożliwiają deweloperom renderowanie treści na powiązanej mapie podstawowej Google.
Zwracana wartość: brak
Zaimplementuj tę metodę, aby rysować treści WebGL bezpośrednio na mapie. Pamiętaj, że jeśli nakładka wymaga narysowania nowej klatki, musisz wywołać funkcję WebGLOverlayView.requestRedraw.
onRemove
onRemove()
Parametry: brak
Zwracana wartość: brak
Ta metoda jest wywoływana, gdy nakładka jest usuwana z mapy za pomocą WebGLOverlayView.setMap(null). W tym miejscu należy usunąć wszystkie obiekty pośrednie. Aby renderować, musisz zaimplementować tę metodę.
onStateUpdate
onStateUpdate(options)
Parametry:
  • options: WebGLStateOptions, które umożliwiają deweloperom przywrócenie kontekstu GL.
Zwracana wartość: brak
Zaimplementuj tę metodę, aby obsługiwać aktualizacje stanu GL poza klatką animacji renderowania.
requestRedraw
requestRedraw()
Parametry: brak
Zwracana wartość: brak
Powoduje ponowne narysowanie ramki przez mapę.
requestStateUpdate
requestStateUpdate()
Parametry: brak
Zwracana wartość: brak
Powoduje, że mapa aktualizuje stan GL.
setMap
setMap([map])
Parametry:
  • map: Map optional Mapa umożliwiająca dostęp do elementu div, modelu i stanu widoku.
Zwracana wartość: brak
Dodaje nakładkę do mapy.
Dziedziczone: addListener, bindTo, get, notify, set, setValues, unbind, unbindAll

Interfejs WebGLDrawOptions

interfejs google.maps.WebGLDrawOptions

Opcje rysowania.

gl
Obiekt WebGLRenderingContext, na którym ma być renderowany ten obiekt WebGLOverlayView.
transformer
Przekształcenie macierzy z przestrzeni kamery na współrzędne szerokości i długości geograficznej.

Interfejs WebGLStateOptions

interfejs google.maps.WebGLStateOptions

Opcje stanu GL.

gl
Obiekt WebGLRenderingContext, na którym ma być renderowany ten obiekt WebGLOverlayView.

Interfejs CoordinateTransformer

interfejs google.maps.CoordinateTransformer

Ten interfejs udostępnia wygodne metody generowania macierzy do renderowania scen WebGL na mapie podstawowej Google.

Uwaga: odwołanie do tego obiektu nie powinno być przechowywane poza zakresem wywołania WebGLOverlayView.onDraw.

fromLatLngAltitude
fromLatLngAltitude(latLngAltitude[, rotations, scale])
Parametry:
  • latLngAltitude: LatLngAltitude|LatLngAltitudeLiteral Szerokość i długość geograficzna oraz wysokość.
  • rotations: Float32Array optional Tablica zawierająca kąt obrotu Eulera w stopniach, w konwencji XYZ.
  • scale: Float32Array optional Tablica zawierająca tablicę skalarną XYZ, która ma zostać zastosowana do osi głównej.
Zwracana wartość: Float64Array macierz MVP do użycia z WebGL.
getCameraParams
getCameraParams()
Parametry: brak
Zwracana wartość: parametry kamery CameraParams

CameraParams

interface google.maps.CameraParams extends CameraOptions

Służy do pobierania parametrów kamery, takich jak parametry kamery GL używanej w przypadku WebGLOverlayView.

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