3D Maps  |  Maps JavaScript API  |  Google for Developers (original) (raw)

Skip to main content

3D Maps

Map3DElementclass

google.maps.maps3d.Map3DElementclass

Map3DElement is an HTML interface for the 3D Map view. Note that the mode must be set for the 3D Map to start rendering.

Custom element:
<gmp-map-3d center="lat,lng,altitude" default-ui-disabled heading="number" max-altitude="number" max-heading="number" max-tilt="number" min-altitude="number" min-heading="number" min-tilt="number" mode="hybrid" range="number" roll="number" tilt="number"></gmp-map-3d>

This class extendsHTMLElement.

This class implements[Map3DElementOptions](/maps/documentation/javascript/reference/3d-map#Map3DElementOptions).

Access by calling const {Map3DElement} = await google.maps.importLibrary("maps3d").
See Libraries in the Maps JavaScript API.

Constructor
Map3DElement Map3DElement([options]) Parameters: options: Map3DElementOptions optional
Properties
bounds Type: LatLngBounds|LatLngBoundsLiteral optional When set, restricts the position of the camera within the specified lat/lng bounds. Note that objects outside the bounds are still rendered. Bounds can restrict both longitude and latitude, or can restrict either latitude or longitude only. For latitude-only bounds use west and east longitudes of -180 and 180, respectively. For longitude-only bounds use north and south latitudes of 90 and -90, respectively.
center Type: LatLngAltitude|LatLngAltitudeLiteral optional The center of the map given as a LatLngAltitude, where altitude is in meters above ground level. Note that this is not necessarily where the camera is located, as the range field affects the camera's distance from the map center. If not set, defaults to {lat: 0, lng: 0, altitude: 63170000}. 63170000 meters is a maximum allowed altitude (Earth radius multiplied by 10). HTML attribute:
defaultUIDisabled Type: boolean optional Default: false When true, all default UI buttons are disabled. Does not disable the keyboard and gesture controls. HTML attribute:
heading Type: number optional The compass heading of the map, in degrees, where due north is zero. When there is no tilt, any roll will be interpreted as heading. HTML attribute:
maxAltitude Type: number optional The maximum altitude above the ground which will be displayed on the map. A valid value is between 0 and 63170000 meters (Earth radius multiplied by 10). HTML attribute:
maxHeading Type: number optional The maximum angle of heading (rotation) of the map. A valid value is between 0 and 360 degrees. minHeading and maxHeading represent an interval of <= 360 degrees in which heading gestures will be allowed. minHeading = 180 and maxHeading = 90 will allow heading in [0, 90] and heading in [180, 360]. minHeading = 90 and maxHeading = 180 will allow heading in [90, 180]. **HTML attribute:**
maxTilt Type: number optional The maximum angle of incidence of the map. A valid value is between 0 and 90 degrees. HTML attribute:
minAltitude Type: number optional The minimum altitude above the ground which will be displayed on the map. A valid value is between 0 and 63170000 meters (Earth radius multiplied by 10). HTML attribute:
minHeading Type: number optional The minimum angle of heading (rotation) of the map. A valid value is between 0 and 360 degrees. minHeading and maxHeading represent an interval of <= 360 degrees in which heading gestures will be allowed. minHeading = 180 and maxHeading = 90 will allow heading in [0, 90] and heading in [180, 360]. minHeading = 90 and maxHeading = 180 will allow heading in [90, 180]. **HTML attribute:**
minTilt Type: number optional The minimum angle of incidence of the map. A valid value is between 0 and 90 degrees. HTML attribute:
mode Type: MapMode optional Specifies a mode the map should be rendered in. If not set, the map won't be rendered. HTML attribute:
range Type: number optional The distance from camera to the center of the map, in meters. HTML attribute:
roll Type: number optional The roll of the camera around the view vector in degrees. To resolve ambiguities, when there is no tilt, any roll will be interpreted as heading. HTML attribute:
tilt Type: number optional The tilt of the camera's view vector in degrees. A view vector looking directly down at the earth would have a tilt of zero degrees. A view vector pointing away from the earth would have a tilt of 180 degrees. HTML attribute:
Methods
addEventListener addEventListener(type, listener[, options]) Parameters: type: string A case-sensitive string representing the event type to listen for. listener: EventListener|EventListenerObject The object that receives a notification. This must be a function or an object with the handleEvent method options: boolean
flyCameraAround flyCameraAround(options) Parameters: options: FlyAroundAnimationOptions Return Value: None This method orbits the camera around a given location for a given duration, making the given number of rounds in that time. By default, the camera orbits clockwise. If given a negative number for rounds, the camera will orbit in a counter-clockwise direction instead. The method is asynchronous because animations can only start after the map has loaded a minimum amount. The method returns once the animation has been started. If the number of rounds is zero, no spin will occur, and the animation will complete immediately after it starts.
flyCameraTo flyCameraTo(options) Parameters: options: FlyToAnimationOptions Return Value: None This method moves the camera parabolically from the current location to a given end location over a given duration. The method is asynchronous because animations can only start after the map has loaded a minimum amount. The method returns once the animation has been started.
removeEventListener removeEventListener(type, listener[, options]) Parameters: type: string A string which specifies the type of event for which to remove an event listener. listener: EventListener|EventListenerObject The event listener of the event handler to remove from the event target. options: boolean
stopCameraAnimation stopCameraAnimation() Parameters: None Return Value: None This method stops any fly animation that might happen to be running. The camera stays wherever it is mid-animation; it does not teleport to the end point. The method is asynchronous because animations can only start or stop after the map has loaded a minimum amount. The method returns once the animation has stopped.
Events
gmp-animationend function(animationEndEvent) Arguments: animationEndEvent: Event This event is fired when the fly animation ends. This event bubbles up through the DOM tree.
gmp-centerchange function(centerChangeEvent) Arguments: centerChangeEvent: Event This event is fired when the Map3DElement's center property changes.
gmp-click function(clickEvent) Arguments: clickEvent: LocationClickEvent|PlaceClickEvent This event is fired when the Map3DElement element is clicked.
gmp-headingchange function(headingChangeEvent) Arguments: headingChangeEvent: Event This event is fired when the Map3DElement's heading property changes.
gmp-rangechange function(rangeChangeEvent) Arguments: rangeChangeEvent: Event This event is fired when the Map3DElement's range property changes.
gmp-rollchange function(rollChangeEvent) Arguments: rollChangeEvent: Event This event is fired when the Map3DElement's roll property changes.
gmp-steadychange function(steadyChangeEvent) Arguments: steadyChangeEvent: SteadyChangeEvent This event is fired when the steady state of Map3DElement changes.
gmp-tiltchange function(tiltChangeEvent) Arguments: tiltChangeEvent: Event This event is fired when the Map3DElement's tilt property changes.

MapModeconstants

google.maps.maps3d.MapModeconstants

Specifies a mode the map should be rendered in.

Access by calling const {MapMode} = await google.maps.importLibrary("maps3d").
See Libraries in the Maps JavaScript API.

Constants
HYBRID This map mode displays a transparent layer of major streets on satellite, or photorealistic imagery.
SATELLITE This map mode displays satellite, or photorealistic imagery where available.

FlyAroundAnimationOptionsinterface

google.maps.maps3d.FlyAroundAnimationOptionsinterface

Customization options for the FlyCameraAround Animation.

Properties
camera Type: CameraOptions The central point at which the camera should look at during the orbit animation. Note that the map heading will change as the camera orbits around this center point.
durationMillis optional Type: number optional The duration of the animation in milliseconds. This is the total duration of the animation, not the duration of a single rotation.
rounds optional Type: number optional The number of rounds to rotate around the center in the given duration. This controls the overall speed of rotation. Passing a negative number to rounds will cause the camera to rotate in a counter-clockwise direction instead of the default clockwise direction.

FlyToAnimationOptionsinterface

google.maps.maps3d.FlyToAnimationOptionsinterface

Customization options for the FlyCameraTo Animation.

Properties
endCamera Type: CameraOptions The location at which the camera should point at the end of the animation.
durationMillis optional Type: number optional The duration of the animation in milliseconds. A duration of 0 will teleport the camera straight to the end position.

SteadyChangeEventclass

google.maps.maps3d.SteadyChangeEventclass

This event is created from monitoring a steady state of Map3DElement. This event bubbles up through the DOM tree.

This class extendsEvent.

Access by calling const {SteadyChangeEvent} = await google.maps.importLibrary("maps3d").
See Libraries in the Maps JavaScript API.

Properties
isSteady Type: boolean Indicates whether Map3DElement is steady (i.e. all rendering for the current scene has completed) or not.

LocationClickEventclass

google.maps.maps3d.LocationClickEventclass

This event is created from clicking a Map3DElement.

This class extendsEvent.

Access by calling const {LocationClickEvent} = await google.maps.importLibrary("maps3d").
See Libraries in the Maps JavaScript API.

Properties
position Type: LatLngAltitude optional The latitude/longitude/altitude that was below the cursor when the event occurred. Please note, that at coarser levels, less accurate data will be returned. Also, sea floor elevation may be returned for the altitude value when clicking at the water surface from higher camera positions. This event bubbles up through the DOM tree.

PlaceClickEventclass

google.maps.maps3d.PlaceClickEventclass

This event is created from clicking on a place icon on a Map3DElement. To prevent the default popover from showing up, call the preventDefault() method on this event to prevent it being handled by the Map3DElement.

This class extends[LocationClickEvent](/maps/documentation/javascript/reference/3d-map#LocationClickEvent).

Access by calling const {PlaceClickEvent} = await google.maps.importLibrary("maps3d").
See Libraries in the Maps JavaScript API.

Properties
placeId Type: string The place id of the map feature.
Inherited: position
Methods
fetchPlace fetchPlace() Parameters: None Return Value: Promise<Place> Fetches a Place for this place id. In the resulting Place object, the id property will be populated. Additional fields can be subsequently requested via Place.fetchFields() subject to normal Places API enablement and billing. The promise is rejected if there was an error fetching the Place.

Marker3DElementclass

google.maps.maps3d.Marker3DElementclass

Shows a position on a 3D map. Note that the position must be set for the Marker3DElement to display.

Custom element:
<gmp-marker-3d altitude-mode="absolute" collision-behavior="required" draws-when-occluded extruded label="string" position="lat,lng" size-preserved z-index="number"></gmp-marker-3d>

This class extendsHTMLElement.

This class implements[Marker3DElementOptions](/maps/documentation/javascript/reference/3d-map#Marker3DElementOptions).

Access by calling const {Marker3DElement} = await google.maps.importLibrary("maps3d").
See Libraries in the Maps JavaScript API.

Constructor
Marker3DElement Marker3DElement([options]) Parameters: options: Marker3DElementOptions optional Creates an Marker3DElement with the options specified.
Properties
altitudeMode Type: AltitudeMode optional Default: AltitudeMode.CLAMP_TO_GROUND Specifies how the altitude component of the position is interpreted. HTML attribute:
collisionBehavior Type: CollisionBehavior optional Default: CollisionBehavior.REQUIRED An enumeration specifying how a Marker3DElement should behave when it collides with another Marker3DElement or with the basemap labels. HTML attribute:
drawsWhenOccluded Type: boolean optional Default: false Specifies whether this marker should be drawn or not when it's occluded. The marker can be occluded by map geometry (e.g. buildings). HTML attribute:
extruded Type: boolean optional Default: false Specifies whether to connect the marker to the ground. To extrude a marker, the altitudeMode must be either RELATIVE_TO_GROUND or ABSOLUTE. HTML attribute:
label Type: string optional Text to be displayed by this marker. HTML attribute:
position Type: LatLngLiteral|LatLngAltitude
sizePreserved Type: boolean optional Default: false Specifies whether this marker should preserve its size or not regardless of distance from camera. By default, the marker is scaled based on distance from camera/tilt. HTML attribute:
zIndex Type: number optional The zIndex compared to other markers. HTML attribute:
Slots
default Any custom elements directly added to the Marker3DElement will be slotted, however only elements of HTMLImageElement, SVGElement and PinElement types will be used for drawing markers, other elements will be ignored. HTMLImageElement and SVGElement must be wrapped in element before assigning to the Marker3DElement's default slot. Images and SVGs are currently rasterized before they are rendered in the 3D scene, so custom HTML embedded into SVG or CSS classes added to images won't be applied and might not be reflected when markers are displayed on the screen.
Methods
addEventListener addEventListener(type, listener[, options]) Parameters: type: string A case-sensitive string representing the event type to listen for. listener: EventListener|EventListenerObject The object that receives a notification. This must be a function or an object with the handleEvent method options: boolean
removeEventListener removeEventListener(type, listener[, options]) Parameters: type: string A string which specifies the type of event for which to remove an event listener. listener: EventListener|EventListenerObject The event listener of the event handler to remove from the event target. options: boolean

Marker3DInteractiveElementclass

google.maps.maps3d.Marker3DInteractiveElementclass

Shows a position on a 3D map. Note that the position must be set for the Marker3DInteractiveElement to display. Unlike Marker3DElement, Marker3DInteractiveElement receives a gmp-click event.

Custom element:
<gmp-marker-3d-interactive gmp-popover-target="popover-id" title="string"></gmp-marker-3d-interactive>

This class extends[Marker3DElement](/maps/documentation/javascript/reference/3d-map#Marker3DElement).

This class implements[Marker3DInteractiveElementOptions](/maps/documentation/javascript/reference/3d-map#Marker3DInteractiveElementOptions).

Access by calling const {Marker3DInteractiveElement} = await google.maps.importLibrary("maps3d").
See Libraries in the Maps JavaScript API.

Constructor
Marker3DInteractiveElement Marker3DInteractiveElement([options]) Parameters: options: Marker3DInteractiveElementOptions optional Creates an Marker3DInteractiveElement with the options specified.
Properties
gmpPopoverTargetElement Type: PopoverElement optional When set, the popover element will be open on this marker's click. HTML attribute:
title Type: string Rollover text. If provided, an accessibility text (e.g. for use with screen readers) will be added to the Marker3DInteractiveElement with the provided value. HTML attribute:
Inherited: altitudeMode,collisionBehavior,drawsWhenOccluded,extruded,label,position,sizePreserved,zIndex
Slots
default Any custom elements directly added to the Marker3DInteractiveElement will be slotted, however only elements of PinElement's type will be used for drawing markers, other elements will be ignored.
Methods
addEventListener addEventListener(type, listener[, options]) Parameters: type: string A case-sensitive string representing the event type to listen for. listener: EventListener|EventListenerObject The object that receives a notification. This must be a function or an object with the handleEvent method options: boolean
removeEventListener removeEventListener(type, listener[, options]) Parameters: type: string A string which specifies the type of event for which to remove an event listener. listener: EventListener|EventListenerObject The event listener of the event handler to remove from the event target. options: boolean
Events
gmp-click function(clickEvent) Arguments: clickEvent: LocationClickEvent This event is fired when the Marker3DInteractiveElement element is clicked.

Model3DElementclass

google.maps.maps3d.Model3DElementclass

A 3D model which allows the rendering of gLTF models. Note that the position and the src must be set for the Model3DElement to display.

Core properties of the gLTF PBR should be supported. No extensions or extension properties are currently supported.

Custom element:
<gmp-model-3d altitude-mode="absolute" orientation="heading,tilt,roll" position="lat,lng" scale="number" src="url"></gmp-model-3d>

This class extendsHTMLElement.

This class implements[Model3DElementOptions](/maps/documentation/javascript/reference/3d-map#Model3DElementOptions).

Access by calling const {Model3DElement} = await google.maps.importLibrary("maps3d").
See Libraries in the Maps JavaScript API.

Constructor
Model3DElement Model3DElement([options]) Parameters: options: Model3DElementOptions optional Creates an Model3DElement with the options specified.
Properties
altitudeMode Type: AltitudeMode optional Default: AltitudeMode.CLAMP_TO_GROUND Specifies how altitude in the position is interpreted. HTML attribute:
orientation Type: Orientation3D|Orientation3DLiteral optional Describes rotation of a 3D model's coordinate system to position the model on the 3D Map. Rotations are applied to the model in the following order: roll, tilt and then heading. HTML attribute:
position Type: LatLngLiteral|LatLngAltitude
scale Type: number|Vector3D
src Type: string|URL optional Specifies the url of the 3D model. At this time, only models in the .glb format are supported. Any relative HTTP urls will be resolved to their corresponding absolute ones. Please note that If you're hosting your .glb model files on a different website or server than your main application, make sure to set up the correct CORS HTTP headers. This allows your application to securely access the model files from the other domain. HTML attribute:
Methods
addEventListener addEventListener(type, listener[, options]) Parameters: type: string A case-sensitive string representing the event type to listen for. listener: EventListener|EventListenerObject The object that receives a notification. This must be a function or an object with the handleEvent method options: boolean
removeEventListener removeEventListener(type, listener[, options]) Parameters: type: string A string which specifies the type of event for which to remove an event listener. listener: EventListener|EventListenerObject The event listener of the event handler to remove from the event target. options: boolean

Model3DInteractiveElementclass

google.maps.maps3d.Model3DInteractiveElementclass

A 3D model which allows the rendering of gLTF models. Note that the position and the src must be set for the Model3DElement to display.

Core properties of the gLTF PBR should be supported. No extensions or extension properties are currently supported.

Unlike Model3DElement, Model3DInteractiveElement receives a gmp-click event.

Custom element:
<gmp-model-3d-interactive></gmp-model-3d-interactive>

This class extends[Model3DElement](/maps/documentation/javascript/reference/3d-map#Model3DElement).

This class implements[Model3DInteractiveElementOptions](/maps/documentation/javascript/reference/3d-map#Model3DInteractiveElementOptions).

Access by calling const {Model3DInteractiveElement} = await google.maps.importLibrary("maps3d").
See Libraries in the Maps JavaScript API.

Constructor
Model3DInteractiveElement Model3DInteractiveElement([options]) Parameters: options: Model3DElementOptions optional Creates a Model3DInteractiveElement with the options specified.
Properties
Inherited: altitudeMode,orientation,position,scale,src
Methods
addEventListener addEventListener(type, listener[, options]) Parameters: type: string A case-sensitive string representing the event type to listen for. listener: EventListener|EventListenerObject The object that receives a notification. This must be a function or an object with the handleEvent method options: boolean
removeEventListener removeEventListener(type, listener[, options]) Parameters: type: string A string which specifies the type of event for which to remove an event listener. listener: EventListener|EventListenerObject The event listener of the event handler to remove from the event target. options: boolean
Events
gmp-click function(clickEvent) Arguments: clickEvent: LocationClickEvent This event is fired when the Model3DInteractiveElement element is clicked.

Polyline3DElementclass

google.maps.maps3d.Polyline3DElementclass

A 3D polyline is a linear overlay of connected line segments on a 3D map.

Custom element:
<gmp-polyline-3d altitude-mode="absolute" draws-occluded-segments extruded geodesic outer-color="string" outer-width="number" stroke-color="string" stroke-width="number" z-index="number"></gmp-polyline-3d>

This class extendsHTMLElement.

This class implements[Polyline3DElementOptions](/maps/documentation/javascript/reference/3d-map#Polyline3DElementOptions).

Access by calling const {Polyline3DElement} = await google.maps.importLibrary("maps3d").
See Libraries in the Maps JavaScript API.

Constructor
Polyline3DElement Polyline3DElement([options]) Parameters: options: Polyline3DElementOptions optional Creates an Polyline3DElement with the options specified.
Properties
altitudeMode Type: AltitudeMode optional Default: AltitudeMode.CLAMP_TO_GROUND Specifies how altitude components in the coordinates are interpreted. HTML attribute:
coordinates Type: Iterable<LatLngAltitude|LatLngAltitudeLiteral
drawsOccludedSegments Type: boolean optional Default: false Specifies whether parts of the polyline which could be occluded are drawn or not. Polylines can be occluded by map geometry (e.g. buildings). HTML attribute:
extruded Type: boolean optional Default: false Specifies whether to connect the polyline to the ground. To extrude a polyline, the altitudeMode must be either RELATIVE_TO_GROUND or ABSOLUTE. HTML attribute:
geodesic Type: boolean optional Default: false When true, edges of the polyline are interpreted as geodesic and will follow the curvature of the Earth. When false, edges of the polyline are rendered as straight lines in screen space. HTML attribute:
outerColor Type: string optional The outer color. All CSS3 colors are supported. HTML attribute:
outerWidth Type: number optional The outer width is between 0.0 and 1.0. This is a percentage of the strokeWidth. HTML attribute:
strokeColor Type: string optional The stroke color. All CSS3 colors are supported. HTML attribute:
strokeWidth Type: number optional The stroke width in pixels. HTML attribute:
zIndex Type: number optional The zIndex compared to other polys. HTML attribute:
Methods
addEventListener addEventListener(type, listener[, options]) Parameters: type: string A case-sensitive string representing the event type to listen for. listener: EventListener|EventListenerObject The object that receives a notification. This must be a function or an object with the handleEvent method options: boolean
removeEventListener removeEventListener(type, listener[, options]) Parameters: type: string A string which specifies the type of event for which to remove an event listener. listener: EventListener|EventListenerObject The event listener of the event handler to remove from the event target. options: boolean

Polyline3DInteractiveElementclass

google.maps.maps3d.Polyline3DInteractiveElementclass

A 3D polyline is a linear overlay of connected line segments on a 3D map. Unlike Polyline3DElement, Polyline3DInteractiveElement receives a gmp-click event.

Custom element:
<gmp-polyline-3d-interactive></gmp-polyline-3d-interactive>

This class extends[Polyline3DElement](/maps/documentation/javascript/reference/3d-map#Polyline3DElement).

This class implements[Polyline3DInteractiveElementOptions](/maps/documentation/javascript/reference/3d-map#Polyline3DInteractiveElementOptions).

Access by calling const {Polyline3DInteractiveElement} = await google.maps.importLibrary("maps3d").
See Libraries in the Maps JavaScript API.

Constructor
Polyline3DInteractiveElement Polyline3DInteractiveElement([options]) Parameters: options: Polyline3DElementOptions optional Creates a Polyline3DInteractiveElement with the options specified.
Properties
Inherited: altitudeMode,coordinates,drawsOccludedSegments,extruded,geodesic,outerColor,outerWidth,strokeColor,strokeWidth,zIndex
Methods
addEventListener addEventListener(type, listener[, options]) Parameters: type: string A case-sensitive string representing the event type to listen for. listener: EventListener|EventListenerObject The object that receives a notification. This must be a function or an object with the handleEvent method options: boolean
removeEventListener removeEventListener(type, listener[, options]) Parameters: type: string A string which specifies the type of event for which to remove an event listener. listener: EventListener|EventListenerObject The event listener of the event handler to remove from the event target. options: boolean
Events
gmp-click function(clickEvent) Arguments: clickEvent: LocationClickEvent The event object will contain the lat-lng-altitude location of the click. This event is fired when the Polyline3DInteractiveElement element is clicked.

Polygon3DElementclass

google.maps.maps3d.Polygon3DElementclass

A 3D polygon (like a 3D polyline) defines a series of connected coordinates in an ordered sequence. Additionally, polygons form a closed loop and define a filled region.

Custom element:
<gmp-polygon-3d altitude-mode="absolute" draws-occluded-segments extruded fill-color="string" geodesic stroke-color="string" stroke-width="number" z-index="number"></gmp-polygon-3d>

This class extendsHTMLElement.

This class implements[Polygon3DElementOptions](/maps/documentation/javascript/reference/3d-map#Polygon3DElementOptions).

Access by calling const {Polygon3DElement} = await google.maps.importLibrary("maps3d").
See Libraries in the Maps JavaScript API.

Constructor
Polygon3DElement Polygon3DElement([options]) Parameters: options: Polygon3DElementOptions optional Creates an Polygon3DElement with the options specified.
Properties
altitudeMode Type: AltitudeMode optional Default: AltitudeMode.CLAMP_TO_GROUND Specifies how altitude components in the coordinates are interpreted. HTML attribute:
drawsOccludedSegments Type: boolean optional Default: false Specifies whether parts of the polygon which could be occluded are drawn or not. Polygons can be occluded by map geometry (e.g. buildings). HTML attribute:
extruded Type: boolean optional Default: false Specifies whether to connect the polygon to the ground. To extrude a polygon, the altitudeMode must be either RELATIVE_TO_GROUND or ABSOLUTE. HTML attribute:
fillColor Type: string optional The fill color. All CSS3 colors are supported. HTML attribute:
geodesic Type: boolean optional Default: false When true, edges of the polygon are interpreted as geodesic and will follow the curvature of the Earth. When false, edges of the polygon are rendered as straight lines in screen space. HTML attribute:
innerCoordinates Type: Iterable<Iterable<LatLngAltitude|LatLngAltitudeLiteral
outerCoordinates Type: Iterable<LatLngAltitude|LatLngAltitudeLiteral
strokeColor Type: string optional The stroke color. All CSS3 colors are supported. HTML attribute:
strokeWidth Type: number optional The stroke width in pixels. HTML attribute:
zIndex Type: number optional The zIndex compared to other polys. HTML attribute:
Methods
addEventListener addEventListener(type, listener[, options]) Parameters: type: string A case-sensitive string representing the event type to listen for. listener: EventListener|EventListenerObject The object that receives a notification. This must be a function or an object with the handleEvent method options: boolean
removeEventListener removeEventListener(type, listener[, options]) Parameters: type: string A string which specifies the type of event for which to remove an event listener. listener: EventListener|EventListenerObject The event listener of the event handler to remove from the event target. options: boolean

Polygon3DInteractiveElementclass

google.maps.maps3d.Polygon3DInteractiveElementclass

A 3D polygon (like a 3D polyline) defines a series of connected coordinates in an ordered sequence. Additionally, polygons form a closed loop and define a filled region. Unlike Polygon3DElement, Polygon3DInteractiveElement receives a gmp-click event.

Custom element:
<gmp-polygon-3d-interactive></gmp-polygon-3d-interactive>

This class extends[Polygon3DElement](/maps/documentation/javascript/reference/3d-map#Polygon3DElement).

This class implements[Polygon3DInteractiveElementOptions](/maps/documentation/javascript/reference/3d-map#Polygon3DInteractiveElementOptions).

Access by calling const {Polygon3DInteractiveElement} = await google.maps.importLibrary("maps3d").
See Libraries in the Maps JavaScript API.

Constructor
Polygon3DInteractiveElement Polygon3DInteractiveElement([options]) Parameters: options: Polygon3DElementOptions optional Creates a Polygon3DInteractiveElement with the options specified.
Properties
Inherited: altitudeMode,drawsOccludedSegments,extruded,fillColor,geodesic,innerCoordinates,outerCoordinates,strokeColor,strokeWidth,zIndex
Methods
addEventListener addEventListener(type, listener[, options]) Parameters: type: string A case-sensitive string representing the event type to listen for. listener: EventListener|EventListenerObject The object that receives a notification. This must be a function or an object with the handleEvent method options: boolean
removeEventListener removeEventListener(type, listener[, options]) Parameters: type: string A string which specifies the type of event for which to remove an event listener. listener: EventListener|EventListenerObject The event listener of the event handler to remove from the event target. options: boolean
Events
gmp-click function(clickEvent) Arguments: clickEvent: LocationClickEvent The event object will contain the lat-lng-altitude location of the click. This event is fired when the Polygon3DInteractiveElement element is clicked.

PopoverElementclass

google.maps.maps3d.PopoverElementclass

A custom HTML element that renders a popover. It looks like a bubble and is often connected to a marker.

Custom element:
<gmp-popover altitude-mode="absolute" light-dismiss-disabled open position-anchor="lat,lng"></gmp-popover>

This class extendsHTMLElement.

This class implements[PopoverElementOptions](/maps/documentation/javascript/reference/3d-map#PopoverElementOptions).

Access by calling const {PopoverElement} = await google.maps.importLibrary("maps3d").
See Libraries in the Maps JavaScript API.

Constructor
PopoverElement PopoverElement([options]) Parameters: options: PopoverElementOptions optional
Properties
altitudeMode Type: AltitudeMode optional Default: AltitudeMode.CLAMP_TO_GROUND Specifies how the altitude component of the position is interpreted. HTML attribute:
lightDismissDisabled Type: boolean optional Default: false Specifies whether this popover should be "light dismissed" or not. The "light dismiss" behavior is similar to setting the popover="auto" attribute which is part of the browser Popover API. HTML attribute:
open Type: boolean optional Default: false Specifies whether this popover should be open or not. HTML attribute:
positionAnchor Type: LatLngLiteral|LatLngAltitudeLiteral
Slots
default Places the slotted content in the main section of the popover.
header Places the slotted content in the heading section of the popover.
CSS Properties
--gmp-popover-max-width Maximum width of the popover, regardless of content's width.
--gmp-popover-min-width Minimum width of the popover, regardless of content's width. When using this property, it is strongly recommended to set it to a value less than the width of the map (in pixels).
--gmp-popover-pixel-offset-x The offset on the x-axis, in pixels, of the tip of the popover from the point on the map at whose geographical coordinates the popover is anchored.
--gmp-popover-pixel-offset-y The offset on the y-axis, in pixels, of the tip of the popover from the point on the map at whose geographical coordinates the popover is anchored.
color-scheme Indicates which color scheme this popover can be rendered in. See color-scheme documentation for more details. If not specified, it defaults to the user's color scheme preferences.
Methods
addEventListener addEventListener(type, listener[, options]) Parameters: type: string A case-sensitive string representing the event type to listen for. listener: EventListener|EventListenerObject The object that receives a notification. This must be a function or an object with the handleEvent method options: boolean
removeEventListener removeEventListener(type, listener[, options]) Parameters: type: string A string which specifies the type of event for which to remove an event listener. listener: EventListener|EventListenerObject The event listener of the event handler to remove from the event target. options: boolean

AltitudeModeconstants

google.maps.maps3d.AltitudeModeconstants

Specifies how altitude components in the coordinates are interpreted.

Access by calling const {AltitudeMode} = await google.maps.importLibrary("maps3d").
See Libraries in the Maps JavaScript API.

Constants
ABSOLUTE Allows to express objects relative to the average mean sea level. That also means that if the terrain level of detail changes underneath the object, its absolute position will remain the same.
CLAMP_TO_GROUND Allows to express objects placed on the ground. They will remain at ground level following the terrain regardless of what altitude is provided. If the object is positioned over a major body of water, it will be placed at sea level.
RELATIVE_TO_GROUND Allows to express objects relative to the ground surface. If the terrain level of detail changes, the position of the object will remain constant relative to the ground. When over water, the altitude will be interpreted as a value in meters above sea level.
RELATIVE_TO_MESH Allows to express objects relative to the highest of ground+building+water surface. When over water, this will be water surface; when over terrain, this will be the building surface (if present) or ground surface (if no buildings).

Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.

Last updated 2025-06-12 UTC.