Data Stay organized with collections Save and categorize content based on your preferences.
Dataclass
google.maps.Dataclass
A layer for displaying geospatial data. Points, line-strings and polygons can be displayed.
EveryMap has aData object by default, so most of the time there is no need to construct one. For example:
var myMap = new google.maps.Map(...);
myMap.data.addGeoJson(...);
myMap.data.setStyle(...);
Data object is a collection ofFeatures.This class extendsMVCObject.
Access by callingconst {Data} = await google.maps.importLibrary("maps").
SeeLibraries in the Maps JavaScript API.
Constructor | |
|---|---|
Data | Data([options])Parameters:
Creates an empty collection, with the given DataOptions. |
Methods | |
|---|---|
add | add([feature])Parameters:
Return Value: Data.FeatureAdds a feature to the collection, and returns the added feature. If the feature has an ID, it will replace any existing feature in the collection with the same ID. If no feature is given, a new feature will be created with null geometry and no properties. If Note that the IDs |
addGeoJson | addGeoJson(geoJson[, options])Parameters:
Return Value: Array<Data.Feature>Adds GeoJSON features to the collection. Give this method a parsed JSON. The imported features are returned. Throws an exception if the GeoJSON could not be imported. |
contains | contains(feature)Parameters:
Return Value: booleanChecks whether the given feature is in the collection. |
forEach | forEach(callback)Parameters:
Return Value: None Repeatedly invokes the given function, passing a feature in the collection to the function on each invocation. The order of iteration through the features is undefined. |
getControlPosition | getControlPosition()Parameters: None Return Value: ControlPositionReturns the position of the drawing controls on the map. |
getControls | getControls()Parameters: None Return Value: Array<string>Returns which drawing modes are available for the user to select, in the order they are displayed. This does not include the null drawing mode, which is added by default. Possible drawing modes are"Point","LineString" or"Polygon". |
getDrawingMode | getDrawingMode()Parameters: None Return Value: string|nullReturns the current drawing mode of the given Data layer. A drawing mode of null means that the user can interact with the map as normal, and clicks do not draw anything. Possible drawing modes arenull,"Point","LineString" or"Polygon". |
getFeatureById | getFeatureById(id)Parameters:
Return Value: Data.Feature|undefinedReturns the feature with the given ID, if it exists in the collection. Otherwise returns undefined. Note that the IDs |
getMap | getMap()Parameters: None Return Value: MapReturns the map on which the features are displayed. |
getStyle | getStyle()Parameters: None Return Value: Data.StylingFunction|Data.StyleOptionsGets the style for all features in the collection. |
loadGeoJson | loadGeoJson(url[, options, callback])Parameters:
Return Value: None Loads GeoJSON from a URL, and adds the features to the collection. NOTE: The GeoJSON is fetched using XHR, and may not work cross-domain. If you have issues, we recommend you fetch the GeoJSON using your choice of AJAX library, and then call |
overrideStyle | overrideStyle(feature, style)Parameters:
Return Value: None Changes the style of a feature. These changes are applied on top of the style specified by setStyle(). Style properties set tonull revert to the value specified viasetStyle(). |
remove | remove(feature)Parameters:
Return Value: None Removes a feature from the collection. |
revertStyle | revertStyle([feature])Parameters:
Return Value: None Removes the effect of previous overrideStyle() calls. The style of the given feature reverts to the style specified bysetStyle().If no feature is given, all features have their style reverted. |
setControlPosition | setControlPosition(controlPosition)Parameters:
Return Value: None Sets the position of the drawing controls on the map. |
setControls | setControls(controls)Parameters:
Return Value: None Sets which drawing modes are available for the user to select, in the order they are displayed. This should not include the null drawing mode, which is added by default. Ifnull, drawing controls are disabled and not displayed. Possible drawing modes are"Point","LineString" or"Polygon". |
setDrawingMode | setDrawingMode(drawingMode)Parameters:
Return Value: None Sets the current drawing mode of the given Data layer. A drawing mode of null means that the user can interact with the map as normal, and clicks do not draw anything. Possible drawing modes arenull,"Point","LineString" or"Polygon". |
setMap | setMap(map)Parameters:
Return Value: None Renders the features on the specified map. If map is set to null, the features will be removed from the map. |
setStyle | setStyle(style)Parameters: Return Value: None Sets the style for all features in the collection. Styles specified on a per-feature basis via overrideStyle() continue to apply.Pass either an object with the desired style options, or a function that computes the style for each feature. The function will be called every time a feature's properties are updated. |
toGeoJson | toGeoJson(callback)Parameters:
Return Value: None Exports the features in the collection to a GeoJSON object. |
Inherited:addListener,bindTo,get,notify,set,setValues,unbind,unbindAll | |
Events | |
|---|---|
addfeature | function(event)Arguments:
This event is fired when a feature is added to the collection. |
click | function(event)Arguments:
This event is fired for a click on the geometry. |
contextmenu | function(event)Arguments:
This event is fired when the DOM contextmenu event is fired on the geometry. |
dblclick | function(event)Arguments:
This event is fired for a double click on the geometry. |
mousedown | function(event)Arguments:
This event is fired for a mousedown on the geometry. |
mouseout | function(event)Arguments:
This event is fired when the mouse leaves the area of the geometry. |
mouseover | function(event)Arguments:
This event is fired when the mouse enters the area of the geometry. |
mouseup | function(event)Arguments:
This event is fired for a mouseup on the geometry. |
removefeature | function(event)Arguments:
This event is fired when a feature is removed from the collection. |
removeproperty | function(event)Arguments:
This event is fired when a feature's property is removed. |
setgeometry | function(event)Arguments:
This event is fired when a feature's geometry is set. |
setproperty | function(event)Arguments:
This event is fired when a feature's property is set. |
| Deprecated: Use the function(event)Arguments:
This event is fired for a rightclick on the geometry. |
Data.DataOptionsinterface
google.maps.Data.DataOptionsinterface
DataOptions object used to define the properties that a developer can set on aData object.
Properties | |
|---|---|
map | Type: MapMap on which to display the features in the collection. |
controlPositionoptional | Type: ControlPositionoptionalDefault: ControlPosition.TOP_LEFTThe position of the drawing controls on the map. |
controlsoptional | Type: Array<string>optionalDefault: nullDescribes which drawing modes are available for the user to select, in the order they are displayed. This should not include the null drawing mode, which is added by default. Ifnull, drawing controls are disabled and not displayed. Possible drawing modes are"Point","LineString" or"Polygon". |
drawingModeoptional | Type: stringoptionalDefault: nullThe current drawing mode of the given Data layer. A drawing mode of null means that the user can interact with the map as normal, and clicks do not draw anything. Possible drawing modes arenull,"Point","LineString" or"Polygon". |
featureFactoryoptional | Type: function(Data.Geometry):Data.FeatureoptionalWhen drawing is enabled and a user draws a Geometry (a Point, Line String or Polygon), this function is called with that Geometry and should return a Feature that is to be added to the Data layer. If a featureFactory is not supplied, a Feature with no id and no properties will be created from that Geometry instead. Defaults to null. |
styleoptional | Type: Data.StylingFunction|Data.StyleOptionsoptionalStyle for all features in the collection. For more details, see the setStyle() method above. |
Data.GeoJsonOptionsinterface
google.maps.Data.GeoJsonOptionsinterface
Optional parameters for importing GeoJSON.
Properties | |
|---|---|
idPropertyNameoptional | Type: stringoptionalThe name of the Feature property to use as the feature ID. If not specified, the GeoJSON Feature id will be used. |
Data.StyleOptionsinterface
google.maps.Data.StyleOptionsinterface
These options specify the way a Feature should appear when displayed on a map.
Properties | |
|---|---|
animationoptional | Type: AnimationoptionalThe animation to play when marker is added to a map. Only applies to point geometries. |
clickableoptional | Type: booleanoptionalDefault: trueIf true, the marker receives mouse and touch events. |
cursoroptional | Type: stringoptionalMouse cursor to show on hover. Only applies to point geometries. |
draggableoptional | Type: booleanoptionalDefault: falseIf true, the object can be dragged across the map and the underlying feature will have its geometry updated. |
editableoptional | Type: booleanoptionalDefault: falseIf true, the object can be edited by dragging control points and the underlying feature will have its geometry updated. Only applies to LineString and Polygon geometries. |
fillColoroptional | Type: stringoptionalThe fill color. All CSS3 colors are supported except for extended named colors. Only applies to polygon geometries. |
fillOpacityoptional | Type: numberoptionalThe fill opacity between 0.0 and 1.0. Only applies to polygon geometries. |
iconoptional | Icon for the foreground. If a string is provided, it is treated as though it were an Icon with the string asurl. Only applies to point geometries. |
iconsoptional | Type: Array<IconSequence>optionalThe icons to be rendered along a polyline. Only applies to line geometries. |
labeloptional | Type: string|MarkerLabeloptionalAdds a label to the marker. The label can either be a string, or a MarkerLabel object. Only applies to point geometries. |
opacityoptional | Type: numberoptionalThe marker's opacity between 0.0 and 1.0. Only applies to point geometries. |
shapeoptional | Type: MarkerShapeoptionalDefines the image map used for hit detection. Only applies to point geometries. |
strokeColoroptional | Type: stringoptionalThe stroke color. All CSS3 colors are supported except for extended named colors. Only applies to line and polygon geometries. |
strokeOpacityoptional | Type: numberoptionalThe stroke opacity between 0.0 and 1.0. Only applies to line and polygon geometries. |
strokeWeightoptional | Type: numberoptionalThe stroke width in pixels. Only applies to line and polygon geometries. |
titleoptional | Type: stringoptionalRollover text. Only applies to point geometries. |
visibleoptional | Type: booleanoptionalDefault: trueWhether the feature is visible. |
zIndexoptional | Type: numberoptionalAll features are displayed on the map in order of their zIndex, with higher values displaying in front of features with lower values. Markers are always displayed in front of line-strings and polygons. |
Data.StylingFunctiontypedef
google.maps.Data.StylingFunctiontypedef
A function that computes the appearance of a feature.
TheData.setStyle() method can accept a styling function. Use this when features should appear differently depending on their properties. You can find more information about styling features in thedeveloper's guide.
function(Data.Feature):Data.StyleOptions
Data.Featureclass
google.maps.Data.Featureclass
A feature has a geometry, an id, and a set of properties.
Access by callingconst {Data} = await google.maps.importLibrary("maps").
SeeLibraries in the Maps JavaScript API.
Constructor | |
|---|---|
Data.Feature | Data.Feature([options])Parameters:
Constructs a Feature with the given options. |
Methods | |
|---|---|
forEachProperty | forEachProperty(callback)Parameters:
Return Value: None Repeatedly invokes the given function, passing a property value and name on each invocation. The order of iteration through the properties is undefined. |
getGeometry | getGeometry()Parameters: None Return Value: Data.GeometryReturns the feature's geometry. |
getId | getId()Parameters: None Return Value: number|string|undefinedReturns the feature ID. |
getProperty | getProperty(name)Parameters:
Return Value: *Returns the value of the requested property, or undefined if the property does not exist. |
removeProperty | removeProperty(name)Parameters:
Return Value: None Removes the property with the given name. |
setGeometry | setGeometry(newGeometry)Parameters:
Return Value: None Sets the feature's geometry. |
setProperty | setProperty(name, newValue)Parameters:
Return Value: None Sets the value of the specified property. If newValue isundefined this is equivalent to callingremoveProperty. |
toGeoJson | toGeoJson(callback)Parameters:
Return Value: None Exports the feature to a GeoJSON object. |
Events | |
|---|---|
removeproperty | function(event)Arguments:
This event is triggered when a feature's property is removed. |
setgeometry | function(event)Arguments:
This event is triggered when a feature's geometry is set. |
setproperty | function(event)Arguments:
This event is triggered when a feature's property is set. |
Data.FeatureOptionsinterface
google.maps.Data.FeatureOptionsinterface
Optional parameters for creatingData.Feature objects.
Properties | |
|---|---|
geometryoptional | Type: Data.Geometry|LatLng|LatLngLiteraloptionalThe feature geometry. If none is specified when a feature is constructed, the feature's geometry will be null. If aLatLng object orLatLngLiteral is given, this will be converted to aData.Point geometry. |
idoptional | Type: number|stringoptionalFeature ID is optional. If provided, it can be used to look up the feature in a Data object using thegetFeatureById() method. Note that a feature's ID cannot be subsequently changed. |
propertiesoptional | Type: ObjectoptionalThe feature properties. This is an arbitrary mapping of property names to values. |
Data.Geometryinterface
google.maps.Data.Geometryinterface
A superclass for the various geometry objects.
Methods | |
|---|---|
forEachLatLng | forEachLatLng(callback)Parameters:
Return Value: None Repeatedly invokes the given function, passing a point from the geometry to the function on each invocation. |
getType | getType()Parameters: None Return Value: stringReturns the type of the geometry object. Possibilities are "Point","MultiPoint","LineString","MultiLineString","LinearRing","Polygon","MultiPolygon", or"GeometryCollection". |
Data.Pointclass
google.maps.Data.Pointclass
A Point geometry contains a singleLatLng.
This class implementsData.Geometry.
Access by callingconst {Data} = await google.maps.importLibrary("maps").
SeeLibraries in the Maps JavaScript API.
Constructor | |
|---|---|
Data.Point | Data.Point(latLng)Parameters:
Constructs a Data.Point from the givenLatLng orLatLngLiteral. |
Methods | |
|---|---|
forEachLatLng | forEachLatLng(callback)Parameters:
Return Value: None |
get | get()Parameters: None Return Value: LatLngReturns the contained LatLng. |
getType | getType()Parameters: None Return Value: stringReturns the string "Point". |
Data.MultiPointclass
google.maps.Data.MultiPointclass
A MultiPoint geometry contains a number ofLatLngs.
This class implementsData.Geometry.
Access by callingconst {Data} = await google.maps.importLibrary("maps").
SeeLibraries in the Maps JavaScript API.
Constructor | |
|---|---|
Data.MultiPoint | Data.MultiPoint(elements)Parameters:
Constructs a Data.MultiPoint from the givenLatLngs orLatLngLiterals. |
Methods | |
|---|---|
forEachLatLng | forEachLatLng(callback)Parameters:
Return Value: None |
getArray | getArray()Parameters: None Returns an array of the contained LatLngs. A new array is returned each timegetArray() is called. |
getAt | getAt(n)Parameters:
Return Value: LatLngReturns the n-th containedLatLng. |
getLength | getLength()Parameters: None Return Value: numberReturns the number of contained LatLngs. |
getType | getType()Parameters: None Return Value: stringReturns the string "MultiPoint". |
Data.LineStringclass
google.maps.Data.LineStringclass
A LineString geometry contains a number ofLatLngs.
This class implementsData.Geometry.
Access by callingconst {Data} = await google.maps.importLibrary("maps").
SeeLibraries in the Maps JavaScript API.
Constructor | |
|---|---|
Data.LineString | Data.LineString(elements)Parameters:
Constructs a Data.LineString from the givenLatLngs orLatLngLiterals. |
Methods | |
|---|---|
forEachLatLng | forEachLatLng(callback)Parameters:
Return Value: None |
getArray | getArray()Parameters: None Returns an array of the contained LatLngs. A new array is returned each timegetArray() is called. |
getAt | getAt(n)Parameters:
Return Value: LatLngReturns the n-th containedLatLng. |
getLength | getLength()Parameters: None Return Value: numberReturns the number of contained LatLngs. |
getType | getType()Parameters: None Return Value: stringReturns the string "LineString". |
Data.MultiLineStringclass
google.maps.Data.MultiLineStringclass
A MultiLineString geometry contains a number ofLineStrings.
This class implementsData.Geometry.
Access by callingconst {Data} = await google.maps.importLibrary("maps").
SeeLibraries in the Maps JavaScript API.
Constructor | |
|---|---|
Data.MultiLineString | Data.MultiLineString(elements)Parameters:
Constructs a Data.MultiLineString from the givenData.LineStrings or arrays of positions. |
Methods | |
|---|---|
forEachLatLng | forEachLatLng(callback)Parameters:
Return Value: None |
getArray | getArray()Parameters: None Return Value: Array<Data.LineString>Returns an array of the contained Data.LineStrings. A new array is returned each timegetArray() is called. |
getAt | getAt(n)Parameters:
Return Value: Data.LineStringReturns the n-th containedData.LineString. |
getLength | getLength()Parameters: None Return Value: numberReturns the number of contained Data.LineStrings. |
getType | getType()Parameters: None Return Value: stringReturns the string "MultiLineString". |
Data.LinearRingclass
google.maps.Data.LinearRingclass
A LinearRing geometry contains a number ofLatLngs, representing a closed LineString. There is no need to make the firstLatLng equal to the lastLatLng. The LinearRing is closed implicitly.
This class implementsData.Geometry.
Access by callingconst {Data} = await google.maps.importLibrary("maps").
SeeLibraries in the Maps JavaScript API.
Constructor | |
|---|---|
Data.LinearRing | Data.LinearRing(elements)Parameters:
Constructs a Data.LinearRing from the givenLatLngs orLatLngLiterals. |
Methods | |
|---|---|
forEachLatLng | forEachLatLng(callback)Parameters:
Return Value: None |
getArray | getArray()Parameters: None Returns an array of the contained LatLngs. A new array is returned each timegetArray() is called. |
getAt | getAt(n)Parameters:
Return Value: LatLngReturns the n-th containedLatLng. |
getLength | getLength()Parameters: None Return Value: numberReturns the number of contained LatLngs. |
getType | getType()Parameters: None Return Value: stringReturns the string "LinearRing". |
Data.Polygonclass
google.maps.Data.Polygonclass
A Polygon geometry contains a number ofData.LinearRings. The first linear-ring must be the polygon exterior boundary and subsequent linear-rings must be interior boundaries, also known as holes. See thesample polygon with a hole.
This class implementsData.Geometry.
Access by callingconst {Data} = await google.maps.importLibrary("maps").
SeeLibraries in the Maps JavaScript API.
Constructor | |
|---|---|
Data.Polygon | Data.Polygon(elements)Parameters:
Constructs a Data.Polygon from the givenData.LinearRings or arrays of positions. |
Methods | |
|---|---|
forEachLatLng | forEachLatLng(callback)Parameters:
Return Value: None |
getArray | getArray()Parameters: None Return Value: Array<Data.LinearRing>Returns an array of the contained Data.LinearRings. A new array is returned each timegetArray() is called. |
getAt | getAt(n)Parameters:
Return Value: Data.LinearRingReturns the n-th containedData.LinearRing. |
getLength | getLength()Parameters: None Return Value: numberReturns the number of contained Data.LinearRings. |
getType | getType()Parameters: None Return Value: stringReturns the string "Polygon". |
Data.MultiPolygonclass
google.maps.Data.MultiPolygonclass
A MultiPolygon geometry contains a number ofData.Polygons.
This class implementsData.Geometry.
Access by callingconst {Data} = await google.maps.importLibrary("maps").
SeeLibraries in the Maps JavaScript API.
Constructor | |
|---|---|
Data.MultiPolygon | Data.MultiPolygon(elements)Parameters:
Constructs a Data.MultiPolygon from the givenData.Polygons or arrays of positions. |
Methods | |
|---|---|
forEachLatLng | forEachLatLng(callback)Parameters:
Return Value: None |
getArray | getArray()Parameters: None Return Value: Array<Data.Polygon>Returns an array of the contained Data.Polygons. A new array is returned each timegetArray() is called. |
getAt | getAt(n)Parameters:
Return Value: Data.PolygonReturns the n-th containedData.Polygon. |
getLength | getLength()Parameters: None Return Value: numberReturns the number of contained Data.Polygons. |
getType | getType()Parameters: None Return Value: stringReturns the string "MultiPolygon". |
Data.GeometryCollectionclass
google.maps.Data.GeometryCollectionclass
A GeometryCollection contains a number of geometry objects. AnyLatLng orLatLngLiteral objects are automatically converted toData.Point geometry objects.
This class implementsData.Geometry.
Access by callingconst {Data} = await google.maps.importLibrary("maps").
SeeLibraries in the Maps JavaScript API.
Constructor | |
|---|---|
Data.GeometryCollection | Data.GeometryCollection(elements)Parameters:
Constructs a Data.GeometryCollection from the given geometry objects orLatLngs. |
Methods | |
|---|---|
forEachLatLng | forEachLatLng(callback)Parameters:
Return Value: None |
getArray | getArray()Parameters: None Return Value: Array<Data.Geometry>Returns an array of the contained geometry objects. A new array is returned each time getArray() is called. |
getAt | getAt(n)Parameters:
Return Value: Data.GeometryReturns the n-th contained geometry object. |
getLength | getLength()Parameters: None Return Value: numberReturns the number of contained geometry objects. |
getType | getType()Parameters: None Return Value: stringReturns the string "GeometryCollection". |
Data.MouseEventinterface
google.maps.Data.MouseEventinterface
This object is passed to mouse event handlers on aData object.
This interface extendsMapMouseEvent.
Properties | |
|---|---|
feature | Type: Data.FeatureThe feature which generated the mouse event. |
Inherited:domEvent,latLng | |
Methods | |
|---|---|
Inherited:stop |
Data.AddFeatureEventinterface
google.maps.Data.AddFeatureEventinterface
The properties of aaddfeature event.
Properties | |
|---|---|
feature | Type: Data.FeatureThe feature that was added to the FeatureCollection. |
Data.RemoveFeatureEventinterface
google.maps.Data.RemoveFeatureEventinterface
The properties of aremovefeature event.
Properties | |
|---|---|
feature | Type: Data.FeatureThe feature that was removed from the FeatureCollection. |
Data.SetGeometryEventinterface
google.maps.Data.SetGeometryEventinterface
The properties of asetgeometry event.
Properties | |
|---|---|
feature | Type: Data.FeatureThe feature whose geometry was set. |
newGeometryoptional | Type: Data.GeometryoptionalThe new feature geometry. |
oldGeometryoptional | Type: Data.GeometryoptionalThe previous feature geometry. |
Data.SetPropertyEventinterface
google.maps.Data.SetPropertyEventinterface
The properties of asetproperty event.
Properties | |
|---|---|
feature | Type: Data.FeatureThe feature whose property was set. |
name | Type: stringThe property name. |
newValue | Type: *The new value. |
oldValue | Type: *The previous value. Will be undefined if the property was added. |
Data.RemovePropertyEventinterface
google.maps.Data.RemovePropertyEventinterface
The properties of aremoveproperty event.
Properties | |
|---|---|
feature | Type: Data.FeatureThe feature whose property was removed. |
name | Type: stringThe property name. |
oldValue | Type: *The previous value. |
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-11-21 UTC.