WebGL

Класс WebGLOverlayView

google.maps . WebGLOverlayView Класс google.maps . WebGLOverlayView

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

С помощью режима наложения WebGL вы можете добавлять контент на свои карты напрямую с помощью 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 Интерфейс google.maps . WebGLDrawOptions

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

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

Интерфейс WebGLStateOptions

google.maps . WebGLStateOptions Интерфейс google.maps . WebGLStateOptions

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

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

Интерфейс координатотрансформатора

google.maps . 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

Интерфейс камерыпарамс

google.maps . CameraParams Интерфейс google.maps . CameraParams

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

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

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