WebGL

Класс WebGLOverlayView

google.maps . WebGLOverlayView

Вид наложения WebGL обеспечивает прямой доступ к тому же контексту рендеринга WebGL, который платформа Google Карт использует для рендеринга векторной базовой карты. Использование общего контекста рендеринга обеспечивает такие преимущества, как перекрытие глубины в трёхмерной геометрии зданий и возможность синхронизации 2D/3D-контента с рендерингом базовой карты.

С помощью WebGL Overlay View вы можете добавлять контент на карты напрямую, используя WebGL или популярные графические библиотеки, такие как Three.js или deck.gl. Чтобы использовать наложение, вы можете расширить google.maps.WebGLOverlayView и предоставить реализацию для каждого из следующих хуков жизненного цикла: WebGLOverlayView.onAdd , WebGLOverlayView.onContextRestored , WebGLOverlayView.onDraw , WebGLOverlayView.onContextLost и WebGLOverlayView.onRemove .

Необходимо вызвать WebGLOverlayView.setMap с допустимым объектом Map , чтобы инициировать вызов метода onAdd() и setMap(null) для вызова метода onRemove() . Метод setMap() можно вызвать во время создания или в любой момент после этого, когда наложение должно быть отображено повторно после удаления. Метод onDraw() будет вызываться при каждом изменении свойства карты, которое может повлиять на положение элемента, например, масштабирование, центрирование или тип карты. WebGLOverlayView можно добавить только к векторной карте с MapOptions.mapId (включая карты с установленным значением RenderingType.VECTOR MapOptions.renderingType и использующие Map.DEMO_MAP_ID в качестве MapOptions.mapId ).

Этот класс расширяет MVCObject .

Доступ осуществляется путем вызова const {WebGLOverlayView} = await google.maps.importLibrary("maps") .
См. Библиотеки в Maps JavaScript API .

WebGLOverlayView
WebGLOverlayView()
Параметры: нет
Создает WebGLOverlayView .
getMap
getMap()
Параметры: нет
Возвращаемое значение: Map |null|undefined
onAdd
onAdd()
Параметры: нет
Возвращаемое значение: нет
Реализуйте этот метод для извлечения или создания промежуточных структур данных перед отрисовкой наложения, не требующих немедленного доступа к контексту рендеринга WebGL. Этот метод должен быть реализован для рендеринга.
onContextLost
onContextLost()
Параметры: нет
Возвращаемое значение: нет
Этот метод вызывается, когда контекст рендеринга по какой-либо причине теряется, и именно здесь следует очистить любое ранее существовавшее состояние GL, поскольку оно больше не нужно.
onContextRestored
onContextRestored(options)
Параметры:
  • options : WebGLStateOptions , позволяющие разработчикам восстанавливать контекст GL.
Возвращаемое значение: нет
Этот метод вызывается, как только становится доступен контекст рендеринга. Используйте его для инициализации или привязки любого состояния WebGL, например шейдеров или объектов буфера.
onDraw
onDraw(options)
Параметры:
  • options : WebGLDrawOptions , которые позволяют разработчикам отображать контент на связанной базовой карте Google.
Возвращаемое значение: нет
Реализуйте этот метод для отображения содержимого WebGL непосредственно на карте. Обратите внимание: если для наложения требуется отрисовка нового кадра, вызовите метод WebGLOverlayView.requestRedraw .
onRemove
onRemove()
Параметры: нет
Возвращаемое значение: нет
Этот метод вызывается при удалении наложения с карты с помощью WebGLOverlayView.setMap(null) , и именно здесь следует удалить все промежуточные объекты. Для рендеринга этот метод должен быть реализован.
onStateUpdate
onStateUpdate(options)
Параметры:
  • options : WebGLStateOptions , позволяющие разработчикам восстанавливать контекст GL.
Возвращаемое значение: нет
Реализуйте этот метод для обработки любых обновлений состояния GL за пределами кадра анимации рендеринга.
requestRedraw
requestRedraw()
Параметры: нет
Возвращаемое значение: нет
Заставляет карту перерисовывать рамку.
requestStateUpdate
requestStateUpdate()
Параметры: нет
Возвращаемое значение: нет
Запускает карту для обновления состояния GL.
setMap
setMap([map])
Параметры:
  • map : Map optional Карта для доступа к div, модели и состоянию представления.
Возвращаемое значение: нет
Добавляет наложение на карту.
Унаследовано: addListener , bindTo , get , notify , set , setValues , unbind , unbindAll

Интерфейс WebGLDrawOptions

google.maps . WebGLDrawOptions

Варианты рисования.

gl
WebGLRenderingContext, на котором будет отображаться этот WebGLOverlayView.
transformer
Матричное преобразование из пространства камеры в координаты широты/долготы.

Интерфейс WebGLStateOptions

google.maps . WebGLStateOptions

Параметры состояния GL.

gl
WebGLRenderingContext, на котором будет отображаться этот WebGLOverlayView.

Интерфейс CoordinateTransformer

google.maps . CoordinateTransformer

Этот интерфейс предоставляет удобные методы для генерации матриц, используемых для рендеринга сцен WebGL поверх базовой карты Google.

Примечание: ссылка на этот объект не должна находиться вне области действия инкапсулирующего вызова WebGLOverlayView.onDraw .

fromLatLngAltitude
fromLatLngAltitude(latLngAltitude[, rotations, scale])
Параметры:
  • latLngAltitude : LatLngAltitude | LatLngAltitudeLiteral Буквальные широта, долгота и высота.
  • rotations : Float32Array optional Массив, содержащий угол поворота Эйлера в градусах в системе координат XYZ.
  • scale : Float32Array optional массив, содержащий скалярный массив XYZ для применения к кардинальной оси.
Возвращаемое значение: матрица MVP Float64Array для использования с WebGL.
getCameraParams
getCameraParams()
Параметры: нет
Возвращаемое значение: параметры камеры CameraParams

Интерфейс CameraParams

google.maps . CameraParams

Используется для получения параметров камеры, например, параметров камеры GL, используемой для WebGLOverlayView .

Этот интерфейс расширяет CameraOptions .

center
Тип: LatLng
heading
Тип: number
tilt
Тип: number
zoom
Тип: number