Introducing Places UI Kit: A ready-to-use, low-cost component library that lets you bring the familiar Google Maps UI for Places to any map of your choice. Try it out, andshare your input to help shape the future of GMP!

Maps

MapElementclass

google.maps.MapElementclass

MapElement is anHTMLElement subclass for rendering maps. After loading themaps library, a map can be created in HTML. For example:

<gmp-map center="37.4220656,-122.0840897" zoom="10" map-id="DEMO_MAP_ID">
  <button slot="control-block-start-inline-end">Custom Control</button>
</gmp-map>

Internally, it usesMap, which can be accessed with theMapElement.innerMap property.

Custom element:
<gmp-map center="lat,lng" heading-interaction-disabled internal-usage-attribution-ids="id1 id2" map-id="string" rendering-type="vector" tilt-interaction-disabled zoom="number"></gmp-map>

This class extendsHTMLElement.

This class implementsMapElementOptions.

Access by callingconst {MapElement} = await google.maps.importLibrary("maps").
SeeLibraries in the Maps JavaScript API.

Constructor

MapElement
MapElement([options])
Parameters: 

Properties

center
Type: LatLng|LatLngLiteraloptional
The center latitude/longitude of the map.
HTML attribute:
  • <gmp-map center="lat,lng"></gmp-map>
headingInteractionDisabled
Type: booleanoptional
Default:false
Whether the map should allow user control of the camera heading (rotation). This option is only in effect when the map is a vector map. If not set in code, then the cloud configuration for the map ID will be used (if available).
HTML attribute:
  • <gmp-map heading-interaction-disabled></gmp-map>
innerMap
Type: Map
A reference to theMap that the MapElement uses internally.
internalUsageAttributionIds
Type: Iterable<string>optional
Default:null
Adds a usage attribution ID to the initializer, which helps Google understand which libraries and samples are helpful to developers, such as usage of a marker clustering library. To opt out of sending the usage attribution ID, it is safe to delete this property or replace the value with an empty string. Only unique values will be sent. Changes to this value after instantiation may be ignored.
HTML attribute:
  • <gmp-map internal-usage-attribution-ids="id1 id2"></gmp-map>
mapId
Type: stringoptional
Themap ID of the map. This parameter cannot be set or changed after a map is instantiated.Map.DEMO_MAP_ID can be used to try out features that require a map ID but which do not require cloud enablement.
HTML attribute:
  • <gmp-map map-id="string"></gmp-map>
renderingType
Type: RenderingTypeoptional
Whether the map should be a raster or vector map. This parameter cannot be set or changed after a map is instantiated. If not set, then the cloud configuration for the map ID will determine the rendering type (if available). Please note that vector maps may not be available for all devices and browsers and the map will fall back to a raster map as needed.
HTML attribute:
  • <gmp-map rendering-type="vector"></gmp-map>
  • <gmp-map rendering-type="raster"></gmp-map>
tiltInteractionDisabled
Type: booleanoptional
Default:false
Whether the map should allow user control of the camera tilt. This option is only in effect when the map is a vector map. If not set in code, then the cloud configuration for the map ID will be used (if available).
HTML attribute:
  • <gmp-map tilt-interaction-disabled></gmp-map>
zoom
Type: numberoptional
The zoom level of the map. Valid zoom values are numbers from zero up to the supportedmaximum zoom level. Larger zoom values correspond to a higher resolution.
HTML attribute:
  • <gmp-map zoom="number"></gmp-map>

Slots

control-block-end-inline-center
Places the slotted element in theControlPosition.BLOCK_END_INLINE_CENTER position.
control-block-end-inline-end
Places the slotted element in theControlPosition.BLOCK_END_INLINE_END position.
control-block-end-inline-start
Places the slotted element in theControlPosition.BLOCK_END_INLINE_START position.
control-block-start-inline-center
Places the slotted element in theControlPosition.BLOCK_START_INLINE_CENTER position.
control-block-start-inline-end
Places the slotted element in theControlPosition.BLOCK_START_INLINE_END position.
control-block-start-inline-start
Places the slotted element in theControlPosition.BLOCK_START_INLINE_START position.
control-inline-end-block-center
Places the slotted element in theControlPosition.INLINE_END_BLOCK_CENTER position.
control-inline-end-block-end
Places the slotted element in theControlPosition.INLINE_END_BLOCK_END position.
control-inline-end-block-start
Places the slotted element in theControlPosition.INLINE_END_BLOCK_START position.
control-inline-start-block-center
Places the slotted element in theControlPosition.INLINE_START_BLOCK_CENTER position.
control-inline-start-block-end
Places the slotted element in theControlPosition.INLINE_START_BLOCK_END position.
control-inline-start-block-start
Places the slotted element in theControlPosition.INLINE_START_BLOCK_START position.
default
You can create reusable components around the Maps JavaScript Web Components, likeAdvancedMarkerElement, using custom elements. By default, any custom elements added directly to theMapElement will be slotted and rendered inMapPanes.overlayMouseTarget. However, the Maps JavaScript API Web Components may be re-slotted to theMapElement's internal slots.

Methods

BetaaddEventListener

Notice: Available only in thev=beta channel.

addEventListener(type, listener[, options])
Parameters: 
  • typestring A case-sensitive string representing the event type to listen for.
  • listenerEventListener|EventListenerObject The object that receives a notification. This must be a function or an object with the handleEvent method
  • optionsboolean|AddEventListenerOptionsoptional Seeoptions. Custom events only supportcapture andpassive.
Return Value: void
Sets up a function that will be called whenever the specified event is delivered to the target. SeeaddEventListener.
BetaremoveEventListener

Notice: Available only in thev=beta channel.

removeEventListener(type, listener[, options])
Parameters: 
Return Value: void
Removes an event listener previously registered with addEventListener from the target. SeeremoveEventListener.

Events

gmp-zoomchange
function(event)
Arguments: 
This event is fired when the map zoom property changes.

MapElementOptionsinterface

google.maps.MapElementOptionsinterface

Notice: Available only in thev=beta channel.

MapElementOptions object used to define the properties that can be set on a MapElement.

Properties

centeroptional
Type: LatLng|LatLngLiteraloptional
headingInteractionDisabledoptional
Type: booleanoptional
internalUsageAttributionIdsoptional
Type: Iterable<string>optional
mapIdoptional
Type: stringoptional
renderingTypeoptional
Type: RenderingTypeoptional
tiltInteractionDisabledoptional
Type: booleanoptional
zoomoptional
Type: numberoptional

ZoomChangeEventclass

google.maps.ZoomChangeEventclass

This event is created from monitoring zoom change.

This class extendsEvent.

Access by callingconst {ZoomChangeEvent} = await google.maps.importLibrary("maps").
SeeLibraries in the Maps JavaScript API.

Mapclass

google.maps.Mapclass

This class extendsMVCObject.

Access by callingconst {Map} = await google.maps.importLibrary("maps").
SeeLibraries in the Maps JavaScript API.

Constructor

Map
Map(mapDiv[, opts])
Parameters: 
Creates a new map inside of the given HTML container, which is typically aDIV element.

Constants

DEMO_MAP_IDMap ID which can be used for code samples which require a map ID. This map ID is not intended for use in production applications and cannot be used for features which require cloud configuration (such as Cloud Styling).

Properties

controls
Additional controls to attach to the map. To add a control to the map, add the control's<div> to theMVCArray corresponding to theControlPosition where it should be rendered.
data
Type: Data
An instance ofData, bound to the map. Add features to thisData object to conveniently display them on this map.
mapTypes
A registry ofMapType instances by string ID.
overlayMapTypes
Type: MVCArray<MapTypeoptional>
Additional map types to overlay. Overlay map types will display on top of the base map they are attached to, in the order in which they appear in theoverlayMapTypes array (overlays with higher index values are displayed in front of overlays with lower index values).

Methods

fitBounds
fitBounds(bounds[, padding])
Parameters: 
  • boundsLatLngBounds|LatLngBoundsLiteral Bounds to show.
  • paddingnumber|Paddingoptional Padding in pixels. The bounds will be fit in the part of the map that remains after padding is removed. A number value will yield the same padding on all 4 sides. Supply 0 here to make a fitBounds idempotent on the result of getBounds.
Return Value:  None
Sets the viewport to contain the given bounds.
Note: When the map is set todisplay: none, thefitBounds function reads the map's size as 0x0, and therefore does not do anything. To change the viewport while the map is hidden, set the map tovisibility: hidden, thereby ensuring the map div has an actual size. For vector maps, this method sets the map's tilt and heading to their default zero values. Calling this method may cause a smooth animation as the map pans and zooms to fit the bounds. Whether or not this method animates depends on an internal heuristic.
getBounds
getBounds()
Parameters:  None
Return Value: LatLngBounds|undefined The lat/lng bounds of the current viewport.
Returns the lat/lng bounds of the current viewport. If more than one copy of the world is visible, the bounds range in longitude from -180 to 180 degrees inclusive. If the map is not yet initialized or center and zoom have not been set then the result isundefined. For vector maps with non-zero tilt or heading, the returned lat/lng bounds represents the smallest bounding box that includes the visible region of the map's viewport. SeeMapCanvasProjection.getVisibleRegion for getting the exact visible region of the map's viewport.
getCenter
getCenter()
Parameters:  None
Return Value: LatLng|undefined
Returns the position displayed at the center of the map. Note that thisLatLng object isnot wrapped. SeeLatLng for more information. If the center or bounds have not been set then the result isundefined.
getClickableIcons
getClickableIcons()
Parameters:  None
Return Value: boolean|undefined
Returns the clickability of the map icons. A map icon represents a point of interest, also known as a POI. If the returned value istrue, then the icons are clickable on the map.
BetagetDatasetFeatureLayer

Notice: Available only in thev=beta channel.

getDatasetFeatureLayer(datasetId)
Parameters: 
  • datasetIdstring
Return Value: FeatureLayer
Returns theFeatureLayer for the specifieddatasetId. Dataset IDs must be configured in the Google Cloud Console. If the dataset ID is not associated with the map's map style, or if Data-driven styling is not available (no map ID, no vector tiles, no Data-Driven Styling feature layers or Datasets configured in the Map Style), this logs an error, and the resultingFeatureLayer.isAvailable will be false.
getDiv
getDiv()
Parameters:  None
Return Value: HTMLElement The mapDiv of the map.
getFeatureLayer
getFeatureLayer(featureType)
Parameters: 
Return Value: FeatureLayer
Returns theFeatureLayer of the specificFeatureType. AFeatureLayer must be enabled in the Google Cloud Console. If aFeatureLayer of the specifiedFeatureType does not exist on this map, or if Data-driven styling is not available (no map ID, no vector tiles, and noFeatureLayer enabled in the map style), this logs an error, and the resultingFeatureLayer.isAvailable will be false.
getHeading
getHeading()
Parameters:  None
Return Value: number|undefined
Returns the compass heading of the map. The heading value is measured in degrees (clockwise) from cardinal direction North. If the map is not yet initialized then the result isundefined.
getHeadingInteractionEnabled
getHeadingInteractionEnabled()
Parameters:  None
Return Value: boolean|null
Returns whether heading interactions are enabled. This option is only in effect when the map is a vector map. If not set in code, then the cloud configuration for the map ID will be used (if available).
getInternalUsageAttributionIds
getInternalUsageAttributionIds()
Parameters:  None
Return Value: Iterable<string>|null
Returns the list of usage attribution IDs, which help Google understand which libraries and samples are helpful to developers, such as usage of a marker clustering library.
getMapCapabilities
getMapCapabilities()
Parameters:  None
Return Value: MapCapabilities
Informs the caller of the current capabilities available to the map based on the map ID that was provided.
getMapTypeId
getMapTypeId()
Parameters:  None
Return Value: MapTypeId|string|undefined
getProjection
getProjection()
Parameters:  None
Return Value: Projection|undefined
Returns the currentProjection. If the map is not yet initialized then the result isundefined. Listen to theprojection_changed event and check its value to ensure it is notundefined.
getRenderingType
getRenderingType()
Parameters:  None
Return Value: RenderingType
Returns the current RenderingType of the map.
getStreetView
getStreetView()
Parameters:  None
Return Value: StreetViewPanorama The panorama bound to the map.
Returns the defaultStreetViewPanorama bound to the map, which may be a default panorama embedded within the map, or the panorama set usingsetStreetView(). Changes to the map'sstreetViewControl will be reflected in the display of such a bound panorama.
getTilt
getTilt()
Parameters:  None
Return Value: number|undefined
Returns the current angle of incidence of the map, in degrees from the viewport plane to the map plane. For raster maps, the result will be0 for imagery taken directly overhead or45 for 45° imagery. This method does not return the value set bysetTilt. SeesetTilt for details.
getTiltInteractionEnabled
getTiltInteractionEnabled()
Parameters:  None
Return Value: boolean|null
Returns whether tilt interactions are enabled. This option is only in effect when the map is a vector map. If not set in code, then the cloud configuration for the map ID will be used (if available).
getZoom
getZoom()
Parameters:  None
Return Value: number|undefined
Returns the zoom of the map. If the zoom has not been set then the result isundefined.
moveCamera
moveCamera(cameraOptions)
Parameters: 
Return Value:  None
Immediately sets the map's camera to the target camera options, without animation.
panBy
panBy(x, y)
Parameters: 
  • xnumber Number of pixels to move the map in the x direction.
  • ynumber Number of pixels to move the map in the y direction.
Return Value:  None
Changes the center of the map by the given distance in pixels. If the distance is less than both the width and height of the map, the transition will be smoothly animated. Note that the map coordinate system increases from west to east (for x values) and north to south (for y values).
panTo
panTo(latLng)
Parameters: 
Return Value:  None
Changes the center of the map to the givenLatLng. If the change is less than both the width and height of the map, the transition will be smoothly animated.
panToBounds
panToBounds(latLngBounds[, padding])
Parameters: 
  • latLngBoundsLatLngBounds|LatLngBoundsLiteral The bounds to pan the map to.
  • paddingnumber|Paddingoptional Padding in pixels. A number value will yield the same padding on all 4 sides. The default value is 0.
Return Value:  None
Pans the map by the minimum amount necessary to contain the givenLatLngBounds. It makes no guarantee where on the map the bounds will be, except that the map will be panned to show as much of the bounds as possible inside{currentMapSizeInPx} - {padding}. For both raster and vector maps, the map's zoom, tilt, and heading will not be changed.
setCenter
setCenter(latlng)
Parameters: 
Return Value:  None
setClickableIcons
setClickableIcons(value)
Parameters: 
  • valueboolean
Return Value:  None
Controls whether the map icons are clickable or not. A map icon represents a point of interest, also known as a POI. To disable the clickability of map icons, pass a value offalse to this method.
setHeading
setHeading(heading)
Parameters: 
  • headingnumber
Return Value:  None
Sets the compass heading for map measured in degrees from cardinal direction North. For raster maps, this method only applies to aerial imagery.
setHeadingInteractionEnabled
setHeadingInteractionEnabled(headingInteractionEnabled)
Parameters: 
  • headingInteractionEnabledboolean
Return Value:  None
Sets whether heading interactions are enabled. This option is only in effect when the map is a vector map. If not set in code, then the cloud configuration for the map ID will be used (if available).
setMapTypeId
setMapTypeId(mapTypeId)
Parameters: 
Return Value:  None
setOptions
setOptions(options)
Parameters: 
Return Value:  None
setRenderingType
setRenderingType(renderingType)
Parameters: 
Return Value:  None
Sets the current RenderingType of the map.
setStreetView
setStreetView(panorama)
Parameters: 
Return Value:  None
Binds aStreetViewPanorama to the map. This panorama overrides the defaultStreetViewPanorama, allowing the map to bind to an external panorama outside of the map. Setting the panorama tonull binds the default embedded panorama back to the map.
setTilt
setTilt(tilt)
Parameters: 
  • tiltnumber
Return Value:  None
For vector maps, sets the angle of incidence of the map. The allowed values are restricted depending on the zoom level of the map.

For raster maps, controls the automatic switching behavior for the angle of incidence of the map. The only allowed values are0 and45.setTilt(0) causes the map to always use a 0° overhead view regardless of the zoom level and viewport.setTilt(45) causes the tilt angle to automatically switch to 45 whenever 45° imagery is available for the current zoom level and viewport, and switch back to 0 whenever 45° imagery is not available (this is the default behavior). 45° imagery is only available forsatellite andhybrid map types, within some locations, and at some zoom levels.Note:getTilt returns the current tilt angle, not the value set bysetTilt. BecausegetTilt andsetTilt refer to different things, do notbind() thetilt property; doing so may yield unpredictable effects.
setTiltInteractionEnabled
setTiltInteractionEnabled(tiltInteractionEnabled)
Parameters: 
  • tiltInteractionEnabledboolean
Return Value:  None
Sets whether tilt interactions are enabled. This option is only in effect when the map is a vector map. If not set in code, then the cloud configuration for the map ID will be used (if available).
setZoom
setZoom(zoom)
Parameters: 
  • zoomnumber Larger zoom values correspond to a higher resolution.
Return Value:  None
Sets the zoom of the map.
Inherited:addListener,bindTo,get,notify,set,setValues,unbind,unbindAll

Events

bounds_changed
function()
Arguments:  None
This event is fired when the viewport bounds have changed.
center_changed
function()
Arguments:  None
This event is fired when the map center property changes.
click
function(event)
Arguments: 
This event is fired when the user clicks on the map. A MapMouseEvent with properties for the clicked location is returned unless a place icon was clicked, in which case an IconMouseEvent with a place ID is returned. IconMouseEvent and MapMouseEvent are identical, except that IconMouseEvent has the place ID field. The event can always be treated as an MapMouseEvent when the place ID is not important. The click event is not fired if a marker or info window was clicked.
contextmenu
function(event)
Arguments: 
This event is fired when the DOM contextmenu event is fired on the map container.
dblclick
function(event)
Arguments: 
This event is fired when the user double-clicks on the map. Note that the click event will sometimes fire once and sometimes twice, right before this one.
drag
function()
Arguments:  None
This event is repeatedly fired while the user drags the map.
dragend
function()
Arguments:  None
This event is fired when the user stops dragging the map. Note: dragend is NOT fired when the user stops panning the map using the keyboard. Please use theMap.idle event instead in order to determine when the user has stopped panning OR dragging the map.
dragstart
function()
Arguments:  None
This event is fired when the user starts dragging the map.
heading_changed
function()
Arguments:  None
This event is fired when the map heading property changes.
idle
function()
Arguments:  None
This event is fired when the map becomes idle after panning or zooming.
isfractionalzoomenabled_changed
function()
Arguments:  None
This event is fired when the isFractionalZoomEnabled property has changed.
mapcapabilities_changed
function()
Arguments:  None
This event is fired when the map capabilities change.
maptypeid_changed
function()
Arguments:  None
This event is fired when the mapTypeId property changes.
mousemove
function(event)
Arguments: 
This event is fired whenever the user's mouse moves over the map container.
mouseout
function(event)
Arguments: 
This event is fired when the user's mouse exits the map container.
mouseover
function(event)
Arguments: 
This event is fired when the user's mouse enters the map container.
projection_changed
function()
Arguments:  None
This event is fired when the projection has changed.
renderingtype_changed
function()
Arguments:  None
This event is fired when the renderingType has changed.
tilesloaded
function()
Arguments:  None
This event is fired when the visible tiles have finished loading.
tilt_changed
function()
Arguments:  None
This event is fired when the map tilt property changes.
zoom_changed
function()
Arguments:  None
This event is fired when the map zoom property changes.
rightclick

Deprecated: Use theMap.contextmenu event instead in order to support usage patterns like control-click on macOS.

function(event)
Arguments: 
This event is fired when the user right-clicks on the map.

MapOptionsinterface

google.maps.MapOptionsinterface

MapOptions object used to define the properties that can be set on a Map.

Properties

backgroundColoroptional
Type: stringoptional
Color used for the background of the Map div. This color will be visible when tiles have not yet loaded as the user pans. This option can only be set when the map is initialized.
cameraControloptional
Type: booleanoptional
The enabled/disabled state of the Camera control.
cameraControlOptionsoptional
Type: CameraControlOptionsoptional
The display options for the Camera control.
centeroptional
Type: LatLng|LatLngLiteraloptional
The initial Map center.
clickableIconsoptional
Type: booleanoptional
Default:true
Whenfalse, map icons are not clickable. A map icon represents a point of interest, also known as a POI.
colorSchemeoptional
Type: ColorScheme|stringoptional
The initial Map color scheme. This option can only be set when the map is initialized.
controlSizeoptional
Type: numberoptional
Size in pixels of the controls appearing on the map. This value must be supplied directly when creating the Map, updating this value later may bring the controls into anundefined state. Only governs the controls made by the Maps API itself. Does not scale developer created custom controls.
disableDefaultUIoptional
Type: booleanoptional
Enables/disables all default UI buttons. May be overridden individually. Does not disable the keyboard controls, which are separately controlled by theMapOptions.keyboardShortcuts option. Does not disable gesture controls, which are separately controlled by theMapOptions.gestureHandling option.
disableDoubleClickZoomoptional
Type: booleanoptional
Enables/disables zoom and center on double click. Enabled by default.

Note: This property isnot recommended. To disable zooming on double click, you can use thegestureHandling property, and set it to"none".

draggableoptional

Deprecated: Deprecated in 2017. To disable dragging on the map, you can use thegestureHandling property, and set it to"none".

Type: booleanoptional
Iffalse, prevents the map from being dragged. Dragging is enabled by default.
draggableCursoroptional
Type: stringoptional
The name or url of the cursor to display when mousing over a draggable map. This property uses the csscursor attribute to change the icon. As with the css property, you must specify at least one fallback cursor that is not a URL. For example:draggableCursor: 'url(http://www.example.com/icon.png), auto;'.
draggingCursoroptional
Type: stringoptional
The name or url of the cursor to display when the map is being dragged. This property uses the csscursor attribute to change the icon. As with the css property, you must specify at least one fallback cursor that is not a URL. For example:draggingCursor: 'url(http://www.example.com/icon.png), auto;'.
fullscreenControloptional
Type: booleanoptional
The enabled/disabled state of the Fullscreen control.
fullscreenControlOptionsoptional
The display options for the Fullscreen control.
gestureHandlingoptional
Type: stringoptional
This setting controls how the API handles gestures on the map. Allowed values:
  • "cooperative": Scroll events and one-finger touch gestures scroll the page, and do not zoom or pan the map. Two-finger touch gestures pan and zoom the map. Scroll events with a ctrl key or ⌘ key pressed zoom the map.
    In this mode the mapcooperates with the page.
  • "greedy": All touch gestures and scroll events pan or zoom the map.
  • "none": The map cannot be panned or zoomed by user gestures.
  • "auto": (default) Gesture handling is either cooperative or greedy, depending on whether the page is scrollable or in an iframe.
headingoptional
Type: numberoptional
The heading for aerial imagery in degrees measured clockwise from cardinal direction North. Headings are snapped to the nearest available angle for which imagery is available.
headingInteractionEnabledoptional
Type: booleanoptional
Default:false
Whether the map should allow user control of the camera heading (rotation). This option is only in effect when the map is a vector map. If not set in code, then the cloud configuration for the map ID will be used (if available).
internalUsageAttributionIdsoptional
Type: Iterable<string>optional
Default:null
Adds a usage attribution ID to the initializer, which helps Google understand which libraries and samples are helpful to developers, such as usage of a marker clustering library. To opt out of sending the usage attribution ID, it is safe to delete this property or replace the value with an empty string. Only unique values will be sent. Changes to this value after instantiation may be ignored.
isFractionalZoomEnabledoptional
Type: booleanoptional
Default:true for vector maps andfalse for raster maps
Whether the map should allow fractional zoom levels. Listen toisfractionalzoomenabled_changed to know when the default has been set.
keyboardShortcutsoptional
Type: booleanoptional
Iffalse, prevents the map from being controlled by the keyboard. Keyboard shortcuts are enabled by default.
mapIdoptional
Type: stringoptional
Themap ID of the map. This parameter cannot be set or changed after a map is instantiated.Map.DEMO_MAP_ID can be used to try out features that require a map ID but which do not require cloud enablement.
mapTypeControloptional
Type: booleanoptional
The initial enabled/disabled state of the Map type control.
mapTypeControlOptionsoptional
Type: MapTypeControlOptionsoptional
The initial display options for the Map type control.
mapTypeIdoptional
Type: MapTypeId|stringoptional
The initial Map mapTypeId. Defaults toROADMAP.
maxZoomoptional
Type: numberoptional
The maximum zoom level which will be displayed on the map. If omitted, or set tonull, the maximum zoom from the current map type is used instead. Valid zoom values are numbers from zero up to the supportedmaximum zoom level.
minZoomoptional
Type: numberoptional
The minimum zoom level which will be displayed on the map. If omitted, or set tonull, the minimum zoom from the current map type is used instead. Valid zoom values are numbers from zero up to the supportedmaximum zoom level.
noClearoptional
Type: booleanoptional
Iftrue, do not clear the contents of the Map div.
panControloptional

Deprecated: The Pan control is deprecated as of September 2015.

Type: booleanoptional
The enabled/disabled state of the Pan control.

panControlOptionsoptional

Deprecated: The Pan control is deprecated as of September 2015.

Type: PanControlOptionsoptional
The display options for the Pan control.

renderingTypeoptional
Type: RenderingTypeoptional
Whether the map should be a raster or vector map. This parameter cannot be set or changed after a map is instantiated. If not set, then the cloud configuration for the map ID will determine the rendering type (if available). Please note that vector maps may not be available for all devices and browsers and the map will fall back to a raster map as needed.
restrictionoptional
Type: MapRestrictionoptional
Defines a boundary that restricts the area of the map accessible to users. When set, a user can only pan and zoom while the camera view stays inside the limits of the boundary.
rotateControloptional
Type: booleanoptional
The enabled/disabled state of the Rotate control.
rotateControlOptionsoptional
Type: RotateControlOptionsoptional
The display options for the Rotate control.
scaleControloptional
Type: booleanoptional
The initial enabled/disabled state of the Scale control.
scaleControlOptionsoptional
Type: ScaleControlOptionsoptional
The initial display options for the Scale control.
scrollwheeloptional
Type: booleanoptional
Iffalse, disables zooming on the map using a mouse scroll wheel. The scrollwheel is enabled by default.

Note: This property isnot recommended. To disable zooming using scrollwheel, you can use thegestureHandling property, and set it to either"cooperative" or"none".

streetViewoptional
Type: StreetViewPanoramaoptional
AStreetViewPanorama to display when the Street View pegman is dropped on the map. If no panorama is specified, a defaultStreetViewPanorama will be displayed in the map'sdiv when the pegman is dropped.
streetViewControloptional
Type: booleanoptional
The initial enabled/disabled state of the Street View Pegman control. This control is part of the default UI, and should be set tofalse when displaying a map type on which the Street View road overlay should not appear (e.g. a non-Earth map type).
streetViewControlOptionsoptional
The initial display options for the Street View Pegman control.
stylesoptional
Type: Array<MapTypeStyle>optional
Styles to apply to each of the default map types. Note that forsatellite/hybrid andterrain modes, these styles will only apply to labels and geometry. This feature is not available when using a map ID, or when using vector maps (usecloud-based maps styling instead).
tiltoptional
Type: numberoptional
For vector maps, sets the angle of incidence of the map. The allowed values are restricted depending on the zoom level of the map. For raster maps, controls the automatic switching behavior for the angle of incidence of the map. The only allowed values are0 and45. The value0 causes the map to always use a 0° overhead view regardless of the zoom level and viewport. The value45 causes the tilt angle to automatically switch to 45 whenever 45° imagery is available for the current zoom level and viewport, and switch back to 0 whenever 45° imagery is not available (this is the default behavior). 45° imagery is only available forsatellite andhybrid map types, within some locations, and at some zoom levels.Note:getTilt returns the current tilt angle, not the value specified by this option. BecausegetTilt and this option refer to different things, do notbind() thetilt property; doing so may yield unpredictable effects.
tiltInteractionEnabledoptional
Type: booleanoptional
Default:false
Whether the map should allow user control of the camera tilt. This option is only in effect when the map is a vector map. If not set in code, then the cloud configuration for the map ID will be used (if available).
zoomoptional
Type: numberoptional
The initial Map zoom level. Valid zoom values are numbers from zero up to the supportedmaximum zoom level. Larger zoom values correspond to a higher resolution.
zoomControloptional
Type: booleanoptional
The enabled/disabled state of the Zoom control.
zoomControlOptionsoptional
Type: ZoomControlOptionsoptional
The display options for the Zoom control.

MapTypeStyleinterface

google.maps.MapTypeStyleinterface

TheMapTypeStyle is a collection of selectors and stylers that define how the map should be styled. Selectors specify the map features and/or elements that should be affected, and stylers specify how those features and elements should be modified. For details, see thestyle reference.

Properties

stylers
Type: Array<Object>
The style rules to apply to the selected map features and elements. The rules are applied in the order that you specify in this array. For guidelines on usage and allowed values, see thestyle reference.
elementTypeoptional
Type: stringoptional
The element to which a styler should be applied. An element is a visual aspect of a feature on the map. Example: a label, an icon, the stroke or fill applied to the geometry, and more. Optional. IfelementType is not specified, the value is assumed to be'all'. For details of usage and allowed values, see thestyle reference.
featureTypeoptional
Type: stringoptional
The feature, or group of features, to which a styler should be applied. Optional. IffeatureType is not specified, the value is assumed to be'all'. For details of usage and allowed values, see thestyle reference.

MapMouseEventinterface

google.maps.MapMouseEventinterface

This object is returned from various mouse events on the map and overlays, and contains all the fields shown below.

Properties

domEvent
The corresponding native DOM event. Developers should not rely ontarget,currentTarget,relatedTarget andpath properties being defined and consistent. Developers should not also rely on the DOM structure of the internal implementation of the Maps API. Due to internal event mapping, thedomEvent may have different semantics from theMapMouseEvent (e.g. aMapMouseEvent "click" may have adomEvent of typeKeyboardEvent).
latLngoptional
Type: LatLngoptional
The latitude/longitude that was below the cursor when the event occurred.

Methods

stop
stop()
Parameters:  None
Return Value: void
Prevents this event from propagating further.

IconMouseEventinterface

google.maps.IconMouseEventinterface

This object is sent in an event when a user clicks on an icon on the map. The place ID of this place is stored in the placeId member. To prevent the default info window from showing up, call the stop() method on this event to prevent it being propagated. Learn more aboutplace IDs in the Places API developer guide.

This interface extendsMapMouseEvent.

Properties

placeIdoptional
Type: stringoptional
The place ID of the place that was clicked. This place ID can be used to query more information about the feature that was clicked.

Learn more aboutplace IDs in the Places API developer guide.

Inherited:domEvent,latLng

Methods

Inherited:stop

ColorSchemeconstants

google.maps.ColorSchemeconstants

Identifiers for map color schemes. Specify these by value, or by using the constant's name. For example,'FOLLOW_SYSTEM' orgoogle.maps.ColorScheme.FOLLOW_SYSTEM.

Access by callingconst {ColorScheme} = await google.maps.importLibrary("core").
SeeLibraries in the Maps JavaScript API.

Constants

DARKThe dark color scheme for a map.
FOLLOW_SYSTEMThe color scheme is selected based on system preferences.
LIGHTThe light color scheme for a map. Default value for legacy Maps JS.

MapTypeIdconstants

google.maps.MapTypeIdconstants

Identifiers for common MapTypes. Specify these by value, or by using the constant's name. For example,'satellite' orgoogle.maps.MapTypeId.SATELLITE.

Access by callingconst {MapTypeId} = await google.maps.importLibrary("maps").
SeeLibraries in the Maps JavaScript API.

Constants

HYBRIDThis map type displays a transparent layer of major streets on satellite images.
ROADMAPThis map type displays a normal street map.
SATELLITEThis map type displays satellite images.
TERRAINThis map type displays maps with physical features such as terrain and vegetation.

MapTypeRegistryclass

google.maps.MapTypeRegistryclass

A registry for MapType instances, keyed by MapType id.

This class extendsMVCObject.

Access by callingconst {MapTypeRegistry} = await google.maps.importLibrary("maps").
SeeLibraries in the Maps JavaScript API.

Constructor

MapTypeRegistry
MapTypeRegistry()
Parameters:  None
TheMapTypeRegistry holds the collection of custom map types available to the map for its use. The API consults this registry when providing the list of available map types within controls, for example.

Methods

set
set(id, mapType)
Parameters: 
  • idstring Identifier of the MapType to add to the registry.
  • mapTypeMapType|? MapType object to add to the registry.
Return Value:  None
Sets the registry to associate the passed string identifier with the passed MapType.
Inherited:addListener,bindTo,get,notify,setValues,unbind,unbindAll

MapRestrictioninterface

google.maps.MapRestrictioninterface

A restriction that can be applied to the Map. The map's viewport will not exceed these restrictions.

Properties

latLngBounds
When set, a user can only pan and zoom inside the given bounds. Bounds can restrict both longitude and latitude, or can restrict latitude only. For latitude-only bounds use west and east longitudes of -180 and 180, respectively, for example,latLngBounds: {north: northLat, south: southLat, west: -180, east: 180}.
strictBoundsoptional
Type: booleanoptional
Bounds can be made more restrictive by setting thestrictBounds flag totrue. This reduces how far a user can zoom out, ensuring that everything outside of the restricted bounds stays hidden. The default isfalse, meaning that a user can zoom out until the entire bounded area is in view, possibly including areas outside the bounded area.

TrafficLayerclass

google.maps.TrafficLayerclass

A traffic layer.

This class extendsMVCObject.

Access by callingconst {TrafficLayer} = await google.maps.importLibrary("maps").
SeeLibraries in the Maps JavaScript API.

Constructor

TrafficLayer
TrafficLayer([opts])
Parameters: 
A layer that displays current road traffic.

Methods

getMap
getMap()
Parameters:  None
Return Value: Map|null
Returns the map on which this layer is displayed.
setMap
setMap(map)
Parameters: 
  • mapMapoptional
Return Value:  None
Renders the layer on the specified map. If map is set tonull, the layer will be removed.
setOptions
setOptions(options)
Parameters: 
Return Value:  None
Inherited:addListener,bindTo,get,notify,set,setValues,unbind,unbindAll

TrafficLayerOptionsinterface

google.maps.TrafficLayerOptionsinterface

TrafficLayerOptions object used to define the properties that can be set on a TrafficLayer.

Properties

autoRefreshoptional
Type: booleanoptional
Default:true
Whether the traffic layer refreshes with updated information automatically.
mapoptional
Type: Mapoptional
Map on which to display the traffic layer.

TransitLayerclass

google.maps.TransitLayerclass

A transit layer.

This class extendsMVCObject.

Access by callingconst {TransitLayer} = await google.maps.importLibrary("maps").
SeeLibraries in the Maps JavaScript API.

Constructor

TransitLayer
TransitLayer()
Parameters:  None
A layer that displays transit lines.

Methods

getMap
getMap()
Parameters:  None
Return Value: Map|null
Returns the map on which this layer is displayed.
setMap
setMap(map)
Parameters: 
  • mapMapoptional
Return Value: void
Renders the layer on the specified map. If map is set tonull, the layer will be removed.
Inherited:addListener,bindTo,get,notify,set,setValues,unbind,unbindAll

BicyclingLayerclass

google.maps.BicyclingLayerclass

A layer showing bike lanes and paths.

This class extendsMVCObject.

Access by callingconst {BicyclingLayer} = await google.maps.importLibrary("maps").
SeeLibraries in the Maps JavaScript API.

Constructor

BicyclingLayer
BicyclingLayer()
Parameters:  None
A layer that displays bike lanes and paths and demotes large roads.

Methods

getMap
getMap()
Parameters:  None
Return Value: Map|null
Returns the map on which this layer is displayed.
setMap
setMap(map)
Parameters: 
  • mapMapoptional
Return Value: void
Renders the layer on the specified map. If map is set tonull, the layer will be removed.
Inherited:addListener,bindTo,get,notify,set,setValues,unbind,unbindAll

CameraOptionsinterface

google.maps.CameraOptionsinterface

Notice: Available only in thev=beta channel.

Used for setting the map's camera options.

Properties

centeroptional
Type: LatLngLiteral|LatLngoptional
headingoptional
Type: numberoptional
tiltoptional
Type: numberoptional
zoomoptional
Type: numberoptional

VisibleRegioninterface

google.maps.VisibleRegioninterface

Contains the four points defining the four-sided polygon that is the visible region of the map. On a vector map this polygon can be a trapezoid instead of a rectangle, when a vector map has tilt.

Properties

farLeft
Type: LatLng
farRight
Type: LatLng
latLngBounds
The smallest bounding box that includes the visible region.
nearLeft
Type: LatLng
nearRight
Type: LatLng

RenderingTypeconstants

google.maps.RenderingTypeconstants

Access by callingconst {RenderingType} = await google.maps.importLibrary("maps").
SeeLibraries in the Maps JavaScript API.

Constants

RASTERIndicates that the map is a raster map.
UNINITIALIZEDIndicates that it is unknown yet whether the map is vector or raster, because the map has not finished initializing yet.
VECTORIndicates that the map is a vector map.

MapCapabilitiesinterface

google.maps.MapCapabilitiesinterface

Object containing a snapshot of what capabilities are currently available for the Map. Note that this does not necessarily mean that relevant modules are loaded or initialized, but rather that the current map has permission to use these APIs. See the properties for a list of possible capabilities.

Properties

isAdvancedMarkersAvailableoptional
Type: booleanoptional
If true, this map is configured properly to allow for the use of advanced markers. Note that you must still import themarker library in order to use advanced markers. Seehttps://goo.gle/gmp-isAdvancedMarkersAvailable for more information.
isDataDrivenStylingAvailableoptional
Type: booleanoptional
If true, this map is configured properly to allow for the use of data-driven styling for at least one FeatureLayer. Seehttps://goo.gle/gmp-data-driven-styling andhttps://goo.gle/gmp-FeatureLayerIsAvailable for more information.
isWebGLOverlayViewAvailableoptional
Type: booleanoptional
If true, this map is configured properly to allow for the use ofWebGLOverlayView.

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

Last updated 2025-07-18 UTC.