3D Maps

Класс Map3DElement

google.maps.maps3d.Map3DElement class
extends HTMLElement
implements Map3DElementOptions
library "maps3d"

Map3DElement – это HTML-интерфейс для 3D-карты. Обратите внимание, что для начала отрисовки 3D-карты необходимо задать mode.

                  
<gmp-map-3d
  autofits-camera-animation="value-name"
  camera-position="lat,lng,altitude"
  center="lat,lng,altitude"
  default-ui-hidden
  description="string"
  fov="number"
  gesture-handling="value-name"
  heading="number"
  internal-usage-attribution-ids="id1 id2"
  map-id="string"
  max-altitude="number"
  max-heading="number"
  max-tilt="number"
  min-altitude="number"
  min-heading="number"
  min-tilt="number"
  mode="value-name"
  range="number"
  roll="number"
  tilt="number">
</gmp-map-3d>
const {Map3DElement} = await google.maps.importLibrary("maps3d");
Map3DElement
Map3DElement([options])
Параметры:
AlphaautofitsCameraAnimation
attr: autofits-camera-animation
Тип входных данных: AutofitsCameraAnimation optional
Тип выходных данных: AutofitsCameraAnimation optional
По умолчанию: none.
Анимация, которая будет использоваться для автоматического подбора камеры.
HTML-атрибут: autofits-camera-animation="value-name"
bounds
Тип входных данных: LatLngBounds|LatLngBoundsLiteral optional
Тип выходных данных: LatLngBounds optional
Если задано, ограничивает положение камеры указанными границами широты и долготы. Обратите внимание, что объекты за пределами границ все равно отрисовываются. Границы могут ограничивать как широту, так и долготу, или только широту, или только долготу. Для границ только по широте используйте западную и восточную долготу -180 и 180 соответственно. Для границ только по долготе используйте северную и южную широту 90 и -90 соответственно.
cameraPosition
attr: camera-position
Тип входных данных: LatLngAltitude|LatLngAltitudeLiteral|LatLngLiteral optional
Тип выходных данных: LatLngAltitude optional
Положение камеры, заданное как LatLngAltitude. Если не указано, будет выведено. Если center не указан, но указан cameraPosition, center будет получен из cameraPosition.. Если оба параметра обновляются в одном цикле выполнения, предпочтение будет отдано cameraPosition. Поля cameraPosition и center могут быть взаимно производными друг от друга в контексте заданных общих значений направления, диапазона, крена и наклона.
HTML-атрибут: camera-position="lat,lng,altitude"
center
attr: center
Тип входных данных: LatLngAltitude|LatLngAltitudeLiteral|LatLngLiteral optional
Тип выходных данных: LatLngAltitude optional
Центр карты, заданный как LatLngAltitude, где высота указана в метрах над средним уровнем моря. Обратите внимание, что это не обязательно местоположение камеры, поскольку поле range влияет на расстояние от камеры до центра карты. Если не задано, по умолчанию используется {lat: 0, lng: 0, altitude: 63170000}. 63 170 000 м – максимально допустимая высота (радиус Земли, умноженный на 10).
HTML-атрибут: center="lat,lng,altitude"
defaultUIHidden
attr: default-ui-hidden
Тип входных данных: boolean optional
Тип выходных данных: boolean
По умолчанию: false.
Если задано значение true, все кнопки интерфейса по умолчанию скрыты.
HTML-атрибут: default-ui-hidden
description
attr: description
Тип входных данных: string optional
Тип выходных данных: string optional
Если вы добавите описание специальных возможностей (например, для программ чтения с экрана), оно будет добавлено на карту с указанным значением.
HTML-атрибут: description="string"
fov
attr: fov
Тип входных данных: number optional
Тип выходных данных: number optional
Указывает вертикальную зону обзора в градусах. Допустимые значения: от 5,0 до 80,0. Чем выше значение, тем больше видимая область, но могут появиться искажения перспективы. Значение по умолчанию: 35.0.
HTML-атрибут: fov="number"
gestureHandling
attr: gesture-handling
Тип входных данных: GestureHandling optional
Тип выходных данных: GestureHandling
По умолчанию: GestureHandling.GREEDY.
Управляет жестами в совместном режиме. Если задано значение COOPERATIVE, для прокрутки карты нужно использовать клавиши-модификаторы или жесты двумя пальцами. Если задано значение GREEDY, то прокрутка страницы не будет выполняться при действиях пользователя с элементом карты. Если задано значение AUTO, обработка жестов определяется возможностью прокрутки страницы.
HTML-атрибут: gesture-handling="value-name"
heading
attr: heading
Тип входных данных: number optional
Тип выходных данных: number optional
Направление карты по компасу в градусах, где север – это ноль. Если наклона нет, то любой крен будет интерпретироваться как курс.
HTML-атрибут: heading="number"
internalUsageAttributionIds
attr: internal-usage-attribution-ids
Тип входных данных: Iterable<string> optional
Тип выходных данных: Array<string> optional
Добавляет идентификатор атрибуции использования в инициализатор, что помогает Google понять, какие библиотеки и примеры полезны для разработчиков, например использование библиотеки кластеризации маркеров. Чтобы отказаться от отправки идентификатора атрибуции использования, можно удалить это свойство. Будут отправлены только уникальные значения. Изменения этого значения после создания экземпляра могут игнорироваться.
HTML-атрибут: internal-usage-attribution-ids="id1 id2"
language
Тип входных данных: string optional
Тип выходных данных: string optional
Язык, на котором будет отображаться базовая карта. По умолчанию используется язык, запрошенный разработчиком при загрузке Maps JS API.
mapId
attr: map-id
Тип входных данных: string optional
Тип выходных данных: string optional
Указывает идентификатор карты, который будет использоваться для получения облачного стиля карты.
HTML-атрибут: map-id="string"
maxAltitude
attr: max-altitude
Тип входных данных: number optional
Тип выходных данных: number optional
Максимальная высота над землей, которая будет отображаться на карте. Допустимое значение – от 0 до 63170000 метров (радиус Земли, умноженный на 10).
HTML-атрибут: max-altitude="number"
maxHeading
attr: max-heading
Тип входных данных: number optional
Тип выходных данных: number optional
Максимальный угол поворота карты. Допустимое значение – от 0 до 360 градусов. minHeading и maxHeading представляют собой интервал <= 360 градусов, в котором будут разрешены жесты головой. minHeading = 180 и maxHeading = 90 позволят двигаться в направлении [0, 90] и [180, 360]. minHeading = 90 и maxHeading = 180 позволят двигаться в направлении [90, 180].
HTML-атрибут: max-heading="number"
maxTilt
attr: max-tilt
Тип входных данных: number optional
Тип выходных данных: number optional
Максимальный угол падения карты. Допустимое значение – от 0 до 90 градусов.
HTML-атрибут: max-tilt="number"
minAltitude
attr: min-altitude
Тип входных данных: number optional
Тип выходных данных: number optional
Минимальная высота над землей, которая будет отображаться на карте. Допустимое значение – от 0 до 63170000 метров (радиус Земли, умноженный на 10).
HTML-атрибут: min-altitude="number"
minHeading
attr: min-heading
Тип входных данных: number optional
Тип выходных данных: number optional
Минимальный угол направления (поворота) карты. Допустимое значение – от 0 до 360 градусов. minHeading и maxHeading представляют собой интервал <= 360 градусов, в котором будут разрешены жесты головой. minHeading = 180 и maxHeading = 90 позволят двигаться в направлении [0, 90] и [180, 360]. minHeading = 90 и maxHeading = 180 позволят двигаться в направлении [90, 180].
HTML-атрибут: min-heading="number"
minTilt
attr: min-tilt
Тип входных данных: number optional
Тип выходных данных: number optional
Минимальный угол падения карты. Допустимое значение – от 0 до 90 градусов.
HTML-атрибут: min-tilt="number"
mode
attr: mode
Тип входных данных: MapMode optional
Тип выходных данных: MapMode optional
Указывает режим, в котором должна отображаться карта. Если не задать этот параметр, карта не будет отрисована.
HTML-атрибут: mode="value-name"
range
attr: range
Тип входных данных: number optional
Тип выходных данных: number optional
Расстояние от камеры до центра карты в метрах.
HTML-атрибут: range="number"
region
Тип входных данных: string optional
Тип выходных данных: string optional
Регион, для которого нужно отрисовать объекты инфраструктуры на базовой карте. По умолчанию используется регион, указанный разработчиком при загрузке Maps JS API.
roll
attr: roll
Тип входных данных: number optional
Тип выходных данных: number optional
Крен камеры вокруг вектора обзора в градусах. Чтобы избежать неоднозначности, при отсутствии наклона любой крен будет интерпретироваться как курс.
HTML-атрибут: roll="number"
tilt
attr: tilt
Тип входных данных: number optional
Тип выходных данных: number optional
Наклон вектора обзора камеры в градусах. Если вектор направлен прямо вниз, наклон равен нулю. Вектор, направленный от Земли, имеет наклон 180 градусов.
HTML-атрибут: tilt="number"
defaultUIDisabled
attr: default-ui-disabled
Тип: boolean optional
По умолчанию: false.
Если задано значение true, все кнопки пользовательского интерфейса по умолчанию отключены. Не отключает клавиатуру и управление жестами.
HTML-атрибут: default-ui-disabled
flyCameraAround
flyCameraAround(options)
Параметры:
Возвращаемое значение: нет.
Этот метод вращает камеру вокруг заданного местоположения в течение заданного времени. Анимацию можно повторить заданное количество раз (FlyAroundAnimationOptions.repeatCount).

Камера будет двигаться по часовой стрелке.

Местоположение, вокруг которого вращается камера, задается с помощью CameraOptions.center. Это местоположение будет показываться в центре области просмотра во время анимации вращения, когда камера движется вокруг него.

Метод является асинхронным, поскольку анимация может начаться только после того, как карта загрузится до определенного уровня. Метод возвращает значение после запуска анимации.

Если указать FlyAroundAnimationOptions.repeatCount, вращения не будет, а анимация завершится сразу после начала.
flyCameraTo
flyCameraTo(options)
Параметры:
Возвращаемое значение: нет.
Этот метод перемещает камеру по параболе из текущего местоположения в заданное конечное местоположение за заданное время. Конечную точку можно задать с помощью параметра CameraOptions.cameraPosition, который определяет точное положение камеры, или параметра CameraOptions.center, который определяет центр видимой области просмотра карты.

Метод является асинхронным, поскольку анимация может начаться только после того, как карта загрузится до определенного уровня. Метод возвращает значение после запуска анимации.
stopCameraAnimation
stopCameraAnimation()
Параметры: нет.
Возвращаемое значение: нет.
Этот метод останавливает любую анимацию полета, которая может выполняться. Камера остается там, где она находится в середине анимации, и не телепортируется в конечную точку.

Метод является асинхронным, поскольку анимация может запускаться или останавливаться только после того, как карта загрузится до определенного уровня. Метод возвращает значение после остановки анимации.
Унаследованные: addEventListener, removeEventListener
gmp-animationend
function(animationEndEvent)
Аргументы:
  • animationEndEvent: Event optional.
Это событие активируется, когда заканчивается анимация полета. Это событие всплывает по дереву DOM.
gmp-camerapositionchange
function(cameraPositionChangeEvent)
Аргументы:
  • cameraPositionChangeEvent: Event optional.
Это событие запускается при изменении свойства cameraPosition элемента Map3DElement.
gmp-centerchange
function(centerChangeEvent)
Аргументы:
  • centerChangeEvent: Event optional.
Это событие активируется при изменении свойства center элемента Map3DElement.
gmp-click
function(clickEvent)
Аргументы:
Это событие активируется при нажатии на элемент Map3DElement.
gmp-error
function(mapInitializationErrorEvent)
Аргументы:
  • mapInitializationErrorEvent: Event optional.
Это событие активируется, когда не удается инициализировать карту.
gmp-fovchange
function(fovChangeEvent)
Аргументы:
  • fovChangeEvent: Event optional.
Это событие запускается при изменении свойства fov элемента Map3DElement.
gmp-headingchange
function(headingChangeEvent)
Аргументы:
  • headingChangeEvent: Event optional.
Это событие запускается при изменении свойства heading элемента Map3DElement.
gmp-map-id-error
function(mapIdErrorEvent)
Аргументы:
  • mapIdErrorEvent: Event optional.
Это событие активируется, если свойство mapId элемента Map3DElement недействительно.
gmp-rangechange
function(rangeChangeEvent)
Аргументы:
  • rangeChangeEvent: Event optional.
Это событие активируется, когда меняется свойство range элемента Map3DElement.
gmp-rollchange
function(rollChangeEvent)
Аргументы:
  • rollChangeEvent: Event optional.
Это событие активируется при изменении свойства roll элемента Map3DElement.
gmp-steadychange
function(steadyChangeEvent)
Аргументы:
Это событие активируется, когда меняется устойчивое состояние Map3DElement.
gmp-tiltchange
function(tiltChangeEvent)
Аргументы:
  • tiltChangeEvent: Event optional.
Это событие активируется при изменении свойства tilt элемента Map3DElement.

Интерфейс Map3DElementOptions

google.maps.maps3d.Map3DElementOptions интерфейс

Объект Map3DElementOptions, используемый для определения свойств, которые можно задать для Map3DElement.

AlphaautofitsCameraAnimation
необязательно
Тип: AutofitsCameraAnimation optional
bounds
необязательно
Посмотрите Map3DElement.bounds.
cameraPosition
необязательно
Посмотрите Map3DElement.cameraPosition.
center
необязательно
Посмотрите Map3DElement.center.
defaultUIDisabled
необязательно
Тип: boolean optional
Посмотрите Map3DElement.defaultUIDisabled.
defaultUIHidden
необязательно
Тип: boolean optional
Посмотрите Map3DElement.defaultUIHidden.
description
необязательно
Тип: string optional
Посмотрите Map3DElement.description.
fov
необязательно
Тип: number optional
Посмотрите Map3DElement.fov.
gestureHandling
необязательно
Тип: GestureHandling optional
Посмотрите Map3DElement.gestureHandling.
heading
необязательно
Тип: number optional
Посмотрите Map3DElement.heading.
internalUsageAttributionIds
необязательно
Тип: Iterable<string> optional
language
необязательно
Тип: string optional
Посмотрите Map3DElement.language.
mapId
необязательно
Тип: string optional
Посмотрите Map3DElement.mapId.
maxAltitude
необязательно
Тип: number optional
Посмотрите Map3DElement.maxAltitude.
maxHeading
необязательно
Тип: number optional
Посмотрите Map3DElement.maxHeading.
maxTilt
необязательно
Тип: number optional
Посмотрите Map3DElement.maxTilt.
minAltitude
необязательно
Тип: number optional
Посмотрите Map3DElement.minAltitude.
minHeading
необязательно
Тип: number optional
Посмотрите Map3DElement.minHeading.
minTilt
необязательно
Тип: number optional
Посмотрите Map3DElement.minTilt.
mode
необязательно
Тип: MapMode optional
Посмотрите Map3DElement.mode.
range
необязательно
Тип: number optional
Посмотрите Map3DElement.range.
region
необязательно
Тип: string optional
Посмотрите Map3DElement.region.
roll
необязательно
Тип: number optional
Посмотрите Map3DElement.roll.
tilt
необязательно
Тип: number optional
Посмотрите Map3DElement.tilt.

Константы MapMode

google.maps.maps3d.MapMode Библиотека констант
"maps3d"

Указывает режим, в котором должна отображаться карта.

Эти константы также можно использовать в качестве строк. В TypeScript строковые литералы определяются типом MapModeString.

const {MapMode} = await google.maps.importLibrary("maps3d");
HYBRID В этом режиме на спутниковые или фотореалистичные снимки накладывается прозрачный слой с основными улицами.
AlphaROADMAP В этом режиме показывается обычная карта улиц.
SATELLITE В этом режиме карты показываются спутниковые или фотореалистичные снимки, если они доступны.

Константы GestureHandling

google.maps.maps3d.GestureHandling Библиотека констант
"maps3d"

Указывает, как должны обрабатываться события жестов на элементе карты.

Эти константы также можно использовать в качестве строк. В TypeScript строковые литералы определяются типом GestureHandlingString.

const {GestureHandling} = await google.maps.importLibrary("maps3d");
AUTO В этом случае карта сама выбирает, как обрабатывать жесты – в режиме cooperative или greedy. Это режим работы по умолчанию.

Если карта занимает большую часть родительского элемента прокрутки (обычно это страница, на которой она размещена), так что пользователь не может прокрутить страницу дальше карты, чтобы увидеть другой контент, то карта переходит в режим совместной работы.
COOPERATIVE В этом режиме для прокрутки карты нужно использовать клавиши-модификаторы или жесты двумя пальцами.
GREEDY В этом случае принудительно включается режим greedy, в котором пользователь не может прокручивать страницу, взаимодействуя с элементом карты.

Константы AutofitsCameraAnimation

google.maps.maps3d.AutofitsCameraAnimation Библиотека констант
"maps3d"

Определяет, как должна вести себя камера, когда она перемещается в новое положение, чтобы центрироваться в соответствии с дочерними элементами, для которых было получено согласие.

Эти константы также можно использовать в качестве строк. В TypeScript строковые литералы определяются типом AutofitsCameraAnimationString.

const {AutofitsCameraAnimation} = await google.maps.importLibrary("maps3d");
FLY_TO Перемещает камеру в новое положение.
NONE Перемещает объект в новую позицию без анимации.

Интерфейс FlyAroundAnimationOptions

google.maps.maps3d.FlyAroundAnimationOptions интерфейс

Параметры настройки для анимации FlyCameraAround.

camera
Центральная точка, на которую должна быть направлена камера во время анимации вращения. Обратите внимание, что ориентация карты будет меняться по мере того, как камера вращается вокруг центральной точки.
durationMillis
необязательно
Тип: number optional
Продолжительность одного цикла анимации в миллисекундах.
repeatCount
необязательно
Тип: number optional
Указывает, сколько раз должна повторяться анимация. Если указать ноль, анимация завершится сразу после начала. Если передано значение Number.Infinity, анимация будет повторяться бесконечно.
rounds
необязательно
Тип: number optional
Количество оборотов вокруг центра за указанное время. Этот параметр определяет общую скорость вращения. Если передать отрицательное число, камера будет вращаться против часовой стрелки, а не по часовой стрелке, как по умолчанию.

Интерфейс FlyToAnimationOptions

google.maps.maps3d.FlyToAnimationOptions интерфейс

Параметры настройки для анимации FlyCameraTo.

endCamera
Место, на которое должна быть направлена камера в конце анимации.
durationMillis
необязательно
Тип: number optional
Длительность анимации в миллисекундах. Если задать значение 0, камера сразу переместится в конечную точку.

Интерфейс CameraOptions

google.maps.maps3d.CameraOptions интерфейс

Объект CameraOptions, используемый для определения свойств, которые можно задать для объекта камеры. Объектом камеры может быть любой объект, у которого есть положение камеры, например текущее состояние карты или будущее запрошенное состояние анимации.

altitudeMode
необязательно
Тип: AltitudeMode optional
По умолчанию: AltitudeMode.ABSOLUTE.
Перечисление, указывающее, как интерпретировать значение высоты заданного объекта CameraOptions. При этом используется существующее перечисление AltitudeMode.
cameraPosition
необязательно
Посмотрите Map3DElement.cameraPosition.
center
необязательно
Посмотрите Map3DElement.center.
fov
необязательно
Тип: number optional
Посмотрите Map3DElement.fov.
heading
необязательно
Тип: number optional
Посмотрите Map3DElement.heading.
range
необязательно
Тип: number optional
Посмотрите Map3DElement.range.
roll
необязательно
Тип: number optional
Посмотрите Map3DElement.roll.
tilt
необязательно
Тип: number optional
Посмотрите Map3DElement.tilt.

Класс SteadyChangeEvent

google.maps.maps3d.SteadyChangeEvent class
extends Event
library "maps3d"

Это событие создано на основе мониторинга стабильного состояния Map3DElement. Это событие всплывает по дереву DOM.

const {SteadyChangeEvent} = await google.maps.importLibrary("maps3d");
isSteady
Тип: boolean
Указывает, является ли Map3DElement стабильным (т.е. завершен ли рендеринг текущей сцены).

Класс LocationClickEvent

google.maps.maps3d.LocationClickEvent class
extends Event
library "maps3d"

Это событие создается при нажатии на Map3DElement.

const {LocationClickEvent} = await google.maps.importLibrary("maps3d");
position
Тип: LatLngAltitude optional
Широта, долгота и высота, на которых находился курсор в момент события. Обратите внимание, что на более грубых уровнях будут возвращаться менее точные данные. Кроме того, если нажать на водную поверхность с более высокой позиции камеры, в качестве значения высоты может быть возвращена высота морского дна. Это событие всплывает по дереву DOM.

Класс PlaceClickEvent

google.maps.maps3d.PlaceClickEvent class
extends LocationClickEvent
library "maps3d"

Это событие создается при нажатии на значок места на Map3DElement. Чтобы всплывающее окно по умолчанию не показывалось, вызовите метод preventDefault() для этого события. Тогда оно не будет обрабатываться Map3DElement.

const {PlaceClickEvent} = await google.maps.importLibrary("maps3d");
placeId
Тип: string
Идентификатор места для объекта на карте.
Унаследованные: position
fetchPlace
fetchPlace()
Параметры: нет.
Возвращаемое значение: Promise<Place>
Получает Place для этого идентификатора места. В полученном объекте Place будет заполнено свойство id. Дополнительные поля можно запросить позже через Place.fetchFields(). При этом действуют стандартные условия включения и оплаты Places API. Если при получении Place произошла ошибка, объект Promise отклоняется.