Data

数据类

google.maps.Data class
extends MVCObject
library "maps"

用于显示地理空间数据的图层。可以显示点、线串和多边形。

默认情况下,每个 Map 都有一个 Data 对象,因此大多数情况下无需构建该对象。例如:

 var myMap = new google.maps.Map(...);
myMap.data.addGeoJson(...);
myMap.data.setStyle(...);
Data 对象是 Features 的集合。

const {Data} = await google.maps.importLibrary("maps");
Data
Data([options])
参数:
使用给定的 DataOptions 创建空集合。
add
add([feature])
参数:
返回值:Data.Feature
向集合添加地图项,并返回添加的地图项。

如果该地图项具有 ID,则会替换集合中具有相同 ID 的任何现有地图项。如果未提供任何地图项,系统将创建一个具有 null 几何图形且不含任何属性的新地图项。如果指定了 FeatureOptions,系统会使用指定的属性创建新特征。

请注意,ID 1234 和 '1234' 是等效的。添加 ID 为 1234 的功能将替换 ID 为 '1234' 的功能,反之亦然。

addGeoJson
addGeoJson(geoJson[, options])
参数:
返回值:Array<Data.Feature>
向集合添加 GeoJSON 地图项。为此方法提供一个已解析的 JSON。系统会返回导入的特征。如果无法导入 GeoJSON,则会抛出异常。
contains
contains(feature)
参数:
返回值:boolean
检查给定特征是否在集合中。
forEach
forEach(callback)
参数:
返回值:无
重复调用给定函数,每次调用时都会将集合中的一个地图项传递给该函数。特征的迭代顺序未定义。
getControlPosition
getControlPosition()
参数:无
返回值:ControlPosition|null
返回绘图控件在地图上的位置。
getControls
getControls()
参数:无
返回值:Array<string>|null
返回可供用户选择的绘图模式,并按其显示顺序排列。这不包括默认添加的 null 绘图模式。可能的绘制模式有 "Point"、"LineString" 或 "Polygon"。
getDrawingMode
getDrawingMode()
参数:无
返回值:string|null
返回给定数据层的当前绘制模式。null 绘图模式意味着用户可以正常与地图互动,点击不会绘制任何内容。可能的绘制模式包括 null、"Point"、"LineString" 或 "Polygon"。
getFeatureById
getFeatureById(id)
参数:
  • id:number|string
返回值:Data.Feature|undefined
返回具有给定 ID 的特征(如果该特征存在于集合中)。否则返回 undefined。

请注意,ID 1234 和 '1234' 是等效的。两者均可用于查找同一特征。

getMap
getMap()
参数:无
返回值:Map|null
返回显示地图项的地图。
getStyle
getStyle()
参数:无
获取集合中所有地图项的样式。
loadGeoJson
loadGeoJson(url[, options, callback])
参数:
返回值:无
从网址加载 GeoJSON,并将地图项添加到集合中。

注意:GeoJSON 是使用 XHR 提取的,可能无法跨网域运行。如果您遇到问题,我们建议您使用所选的 AJAX 库提取 GeoJSON,然后调用 addGeoJson()。

overrideStyle
overrideStyle(feature, style)
参数:
返回值:无
更改地图项的样式。这些更改会应用到 setStyle() 指定的样式之上。设置为 null 的样式属性会还原为通过 setStyle() 指定的值。
remove
remove(feature)
参数:
返回值:无
从集合中移除特征。
revertStyle
revertStyle([feature])
参数:
返回值:无
移除之前 overrideStyle() 调用的效果。给定地图项的样式会还原为 setStyle() 指定的样式。

如果未指定地图项,则所有地图项的样式都会还原。

setControlPosition
setControlPosition(controlPosition)
参数:
返回值:无
设置绘图控件在地图上的位置。
setControls
setControls(controls)
参数:
  • controls:Array<string> optional
返回值:无
设置可供用户选择的绘图模式,并按显示顺序排列。这不应包含 null 绘图模式,该模式默认添加。如果为 null,则绘图控件处于停用状态且不显示。可能的绘制模式有 "Point"、"LineString" 或 "Polygon"。
setDrawingMode
setDrawingMode(drawingMode)
参数:
  • drawingMode:string optional
返回值:无
设置给定数据层的当前绘制模式。null 绘图模式意味着用户可以正常与地图互动,点击不会绘制任何内容。可能的绘制模式包括 null、"Point"、"LineString" 或 "Polygon"。
setMap
setMap(map)
参数:
  • map:Map optional
返回值:无
在指定地图上渲染地图项。如果地图设置为 null,则地图项将从地图中移除。
setStyle
setStyle(style)
参数:
返回值:无
为集合中的所有地图项设置样式。通过 overrideStyle() 为每个地图项指定的样式仍会应用。

传递具有所需样式选项的对象,或传递用于计算每个地图项样式的函数。每次更新地图项的属性时,系统都会调用此函数。

toGeoJson
toGeoJson(callback)
参数:
  • callback:function(Object): void
返回值:无
将集合中的地图项导出为 GeoJSON 对象。
继承的方法: addListener、bindTo、get、notify、set、setValues、unbind、unbindAll
addfeature
function(event)
参数:
当有地图项添加到集合中时,会触发此事件。
click
function(event)
参数:
点击几何图形时会触发此事件。
contextmenu
function(event)
参数:
当在几何图形上触发 DOM contextmenu 事件时,会触发此事件。
dblclick
function(event)
参数:
双击几何图形时会触发此事件。
mousedown
function(event)
参数:
当用户在几何图形上按下鼠标时,系统会触发此事件。
mouseout
function(event)
参数:
当鼠标离开几何图形区域时,会触发此事件。
mouseover
function(event)
参数:
当鼠标进入几何图形区域时,会触发此事件。
mouseup
function(event)
参数:
当在几何图形上松开鼠标时,会触发此事件。
removefeature
function(event)
参数:
当从集合中移除地图项时,会触发此事件。
removeproperty
function(event)
参数:
当移除地图项的属性时,会触发此事件。
setgeometry
function(event)
参数:
当设置地图项的几何图形时,会触发此事件。
setproperty
function(event)
参数:
当设置地图项的属性时,会触发此事件。
rightclick
function(event)
参数:
此事件会在右键点击几何图形时触发。

Data.DataOptions 接口

google.maps.Data.DataOptions 接口

DataOptions 对象,用于定义开发者可在 Data 对象上设置的属性。

map
类型:Map
用于显示集合中地图项的地图。
controlPosition
可选
类型:ControlPosition optional
绘图控件在地图上的位置。
controls
可选
类型:Array<string> optional
默认值:null
描述用户可以选择哪些绘图模式,并按显示顺序排列。这不应包含 null 绘图模式,该模式默认添加。如果为 null,则绘图控件处于停用状态且不显示。可能的绘制模式有 "Point"、"LineString" 或 "Polygon"。
drawingMode
可选
类型:string optional
默认值:null
给定数据层的当前绘制模式。null 绘图模式意味着用户可以正常与地图互动,点击不会绘制任何内容。可能的绘制模式包括 null、"Point"、"LineString" 或 "Polygon"。
featureFactory
可选
类型:function(Data.Geometry): Data.Feature optional
启用绘图功能后,如果用户绘制几何图形(点、线串或多边形),系统会使用该几何图形调用此函数,并且此函数应返回要添加到数据层的地图项。如果未提供 featureFactory,系统会改为根据该 Geometry 创建一个没有 ID 也没有属性的 Feature。默认为 null。
style
可选
集合中所有地图项的样式。如需了解详情,请参阅上文中的 setStyle() 方法。

Data.GeoJsonOptions 接口

google.maps.Data.GeoJsonOptions 接口

用于导入 GeoJSON 的可选参数。

idPropertyName
可选
类型:string optional
要用作特征 ID 的特征属性的名称。如果未指定,系统将使用 GeoJSON 地理要素 ID。

Data.StyleOptions 接口

google.maps.Data.StyleOptions 接口

这些选项指定了地图项在地图上显示时应呈现的方式。

animation
可选
类型:Animation optional
将标记添加到地图时要播放的动画。仅适用于点几何图形。
clickable
可选
类型:boolean optional
默认值:true
如果设置为 true,标记会接收鼠标和触摸事件。
cursor
可选
类型:string optional
鼠标悬停时显示的鼠标光标。仅适用于点几何图形。
draggable
可选
类型:boolean optional
默认值:false
如果为 true,则可以在地图上拖动对象,并且底层地图项的几何图形会更新。
editable
可选
类型:boolean optional
默认值:false
如果为 true,则可以通过拖动控制点来修改对象,并且底层地图项的几何图形也会更新。仅适用于 LineString 和 Polygon 几何图形。
fillColor
可选
类型:string optional
填充色。支持所有CSS3颜色,扩展命名的颜色除外。仅适用于多边形几何图形。
fillOpacity
可选
类型:number optional
填充不透明度介于 0.0 和 1.0 之间。仅适用于多边形几何图形。
icon
可选
类型:string|Icon|Symbol optional
前景图标。如果提供的是字符串,则系统会将其视为 Icon,并将该字符串视为 url。仅适用于点几何图形。
icons
可选
类型:Array<IconSequence> optional
要沿多段线呈现的图标。仅适用于线几何图形。
label
可选
类型:string|MarkerLabel optional
向标记添加标签。标签可以是字符串,也可以是 MarkerLabel 对象。仅适用于点几何图形。
opacity
可选
类型:number optional
标记的不透明度,介于 0.0 到 1.0 之间。仅适用于点几何图形。
shape
可选
类型:MarkerShape optional
定义用于检测命中的图像地图。仅适用于点几何图形。
strokeColor
可选
类型:string optional
笔触颜色。支持所有CSS3颜色,扩展命名的颜色除外。仅适用于线和多边形几何图形。
strokeOpacity
可选
类型:number optional
描边不透明度介于 0.0 和 1.0 之间。仅适用于线和多边形几何图形。
strokeWeight
可选
类型:number optional
描边宽度(以像素为单位)。仅适用于线和多边形几何图形。
title
可选
类型:string optional
鼠标悬停文本。仅适用于点几何图形。
visible
可选
类型:boolean optional
默认值:true
该功能是否可见。
zIndex
可选
类型:number optional
所有地图项按照其 zIndex 的顺序显示在地图上,值较高的地图项会显示在值较低的地图项前面。标记始终显示在线串和多边形前面。

Data.StylingFunction typedef

google.maps.Data.StylingFunction typedef

用于计算特征外观的函数。

Data.setStyle() 方法可以接受样式设置函数。当要素应根据其属性以不同方式显示时,请使用此选项。如需详细了解地图项样式设置,请参阅开发者指南。

function(Data.Feature): Data.StyleOptions

Data.Feature 类

google.maps.Data.Feature class
library "maps"

地图项具有几何图形、ID 和一组属性。

const {Data} = await google.maps.importLibrary("maps");
Data.Feature
Data.Feature([options])
参数:
使用给定选项构造 Feature。
forEachProperty
forEachProperty(callback)
参数:
  • callback:function(*, string): void
返回值:无
重复调用给定函数,并在每次调用时传递属性值和名称。属性的迭代顺序未定义。
getGeometry
getGeometry()
参数:无
返回值:Data.Geometry|null
返回地图项的几何图形。
getId
getId()
参数:无
返回值:number|string|undefined
返回特征 ID。
getProperty
getProperty(name)
参数:
  • name:string
返回值:*
返回所请求属性的值;如果该属性不存在,则返回 undefined。
removeProperty
removeProperty(name)
参数:
  • name:string
返回值:无
移除具有指定名称的属性。
setGeometry
setGeometry(newGeometry)
参数:
返回值:无
设置地图项的几何图形。
setProperty
setProperty(name, newValue)
参数:
  • name:string
  • newValue:*
返回值:无
设置指定属性的值。如果 newValue 为 undefined,则等同于调用 removeProperty。
toGeoJson
toGeoJson(callback)
参数:
  • callback:function(Object): void
返回值:无
将地图项导出为 GeoJSON 对象。
removeproperty
function(event)
参数:
当移除地图项的属性时,会触发此事件。
setgeometry
function(event)
参数:
此事件会在设置地图项的几何图形时触发。
setproperty
function(event)
参数:
当设置了地图项的属性时,会触发此事件。

Data.FeatureOptions 接口

google.maps.Data.FeatureOptions 接口

用于创建 Data.Feature 对象的可选参数。

geometry
可选
地图项几何图形。如果在构建地图项时未指定任何几何图形,则地图项的几何图形将为 null。如果指定了 LatLng 对象或 LatLngLiteral,则会转换为 Data.Point 几何图形。
id
可选
类型:number|string optional
特征 ID 为选填项。如果提供,则可用于通过 getFeatureById() 方法在 Data 对象中查找特征。请注意,特征的 ID 之后无法更改。
properties
可选
类型:Object optional
功能属性。这是属性名称到值的任意映射。

Data.Geometry 接口

google.maps.Data.Geometry 接口

各种几何图形对象的父类。

forEachLatLng
forEachLatLng(callback)
参数:
  • callback:function(LatLng): void
返回值:void
重复调用给定函数,每次调用时都会将几何图形中的一个点传递给该函数。
getType
getType()
参数:无
返回值:string
返回几何图形对象的类型。可能的值包括 "Point"、"MultiPoint"、"LineString"、"MultiLineString"、"LinearRing"、"Polygon"、"MultiPolygon" 或 "GeometryCollection"。

Data.Point 类

google.maps.Data.Point 类
实现 Data.Geometry
库 "maps"

点几何图形包含单个 LatLng。

const {Data} = await google.maps.importLibrary("maps");
Data.Point
Data.Point(latLng)
参数:
根据给定的 LatLng 或 LatLngLiteral 构造 Data.Point。
forEachLatLng
forEachLatLng(callback)
参数:
  • callback:function(LatLng): void
返回值:无
get
get()
参数:无
返回值:LatLng
返回包含的 LatLng。
getType
getType()
参数:无
返回值:string
返回字符串 "Point"。

Data.MultiPoint 类

google.maps.Data.MultiPoint 类
实现 Data.Geometry
库 "maps"

MultiPoint 几何图形包含多个 LatLng。

const {Data} = await google.maps.importLibrary("maps");
Data.MultiPoint
Data.MultiPoint(elements)
参数:
根据给定的 LatLng 或 LatLngLiteral 构造 Data.MultiPoint。
forEachLatLng
forEachLatLng(callback)
参数:
  • callback:function(LatLng): void
返回值:无
getArray
getArray()
参数:无
返回值:Array<LatLng>
返回所含 LatLng 的数组。每次调用 getArray() 时,系统都会返回一个新数组。
getAt
getAt(n)
参数:
  • n:number
返回值:LatLng
返回第 n 个包含的 LatLng。
getLength
getLength()
参数:无
返回值:number
返回包含的 LatLng 数量。
getType
getType()
参数:无
返回值:string
返回字符串 "MultiPoint"。

Data.LineString 类

google.maps.Data.LineString 类
实现 Data.Geometry
库 "maps"

LineString 几何图形包含多个 LatLng。

const {Data} = await google.maps.importLibrary("maps");
Data.LineString
Data.LineString(elements)
参数:
根据给定的 LatLng 或 LatLngLiteral 构造 Data.LineString。
forEachLatLng
forEachLatLng(callback)
参数:
  • callback:function(LatLng): void
返回值:无
getArray
getArray()
参数:无
返回值:Array<LatLng>
返回所含 LatLngs 的数组。每次调用 getArray() 时,系统都会返回一个新数组。
getAt
getAt(n)
参数:
  • n:number
返回值:LatLng
返回第 n 个包含的 LatLng。
getLength
getLength()
参数:无
返回值:number
返回包含的 LatLng 数量。
getType
getType()
参数:无
返回值:string
返回字符串 "LineString"。

Data.MultiLineString 类

google.maps.Data.MultiLineString 类
实现 Data.Geometry
库 "maps"

MultiLineString 几何图形包含多个 LineString。

const {Data} = await google.maps.importLibrary("maps");
Data.MultiLineString
Data.MultiLineString(elements)
根据给定的 Data.LineString 或位置数组构造 Data.MultiLineString。
forEachLatLng
forEachLatLng(callback)
参数:
  • callback:function(LatLng): void
返回值:无
getArray
getArray()
参数:无
返回值:Array<Data.LineString>
返回所含 Data.LineString 的数组。每次调用 getArray() 时,系统都会返回一个新数组。
getAt
getAt(n)
参数:
  • n:number
返回值:Data.LineString
返回第 n 个包含的 Data.LineString。
getLength
getLength()
参数:无
返回值:number
返回包含的 Data.LineString 数量。
getType
getType()
参数:无
返回值:string
返回字符串 "MultiLineString"。

Data.LinearRing 类

google.maps.Data.LinearRing 类
实现 Data.Geometry
库 "maps"

LinearRing 几何图形包含多个 LatLng,表示一个闭合的 LineString。无需使第一个 LatLng 与最后一个 LatLng 相同。LinearRing 会隐式闭合。

const {Data} = await google.maps.importLibrary("maps");
Data.LinearRing
Data.LinearRing(elements)
参数:
根据给定的 LatLng 或 LatLngLiteral 构造 Data.LinearRing。
forEachLatLng
forEachLatLng(callback)
参数:
  • callback:function(LatLng): void
返回值:无
getArray
getArray()
参数:无
返回值:Array<LatLng>
返回所含 LatLng 的数组。每次调用 getArray() 时,系统都会返回一个新数组。
getAt
getAt(n)
参数:
  • n:number
返回值:LatLng
返回第 n 个包含的 LatLng。
getLength
getLength()
参数:无
返回值:number
返回包含的 LatLng 数量。
getType
getType()
参数:无
返回值:string
返回字符串 "LinearRing"。

Data.Polygon 类

google.maps.Data.Polygon 类
实现 Data.Geometry
库 "maps"

Polygon 几何图形包含多个 Data.LinearRing。第一个线性环必须是多边形外部边界,后续线性环必须是内部边界(也称为孔)。查看带孔多边形示例。

const {Data} = await google.maps.importLibrary("maps");
Data.Polygon
Data.Polygon(elements)
根据给定的 Data.LinearRing 或位置数组构造 Data.Polygon。
forEachLatLng
forEachLatLng(callback)
参数:
  • callback:function(LatLng): void
返回值:无
getArray
getArray()
参数:无
返回值:Array<Data.LinearRing>
返回所含 Data.LinearRing 的数组。每次调用 getArray() 时,系统都会返回一个新数组。
getAt
getAt(n)
参数:
  • n:number
返回值:Data.LinearRing
返回第 n 个包含的 Data.LinearRing。
getLength
getLength()
参数:无
返回值:number
返回包含的 Data.LinearRing 数量。
getType
getType()
参数:无
返回值:string
返回字符串 "Polygon"。

Data.MultiPolygon 类

google.maps.Data.MultiPolygon 类
实现 Data.Geometry
库 "maps"

MultiPolygon 几何图形包含多个 Data.Polygon。

const {Data} = await google.maps.importLibrary("maps");
Data.MultiPolygon
Data.MultiPolygon(elements)
根据给定的 Data.Polygon 或位置数组构造 Data.MultiPolygon。
forEachLatLng
forEachLatLng(callback)
参数:
  • callback:function(LatLng): void
返回值:无
getArray
getArray()
参数:无
返回值:Array<Data.Polygon>
返回所含 Data.Polygon 的数组。每次调用 getArray() 时,系统都会返回一个新数组。
getAt
getAt(n)
参数:
  • n:number
返回值:Data.Polygon
返回第 n 个包含的 Data.Polygon。
getLength
getLength()
参数:无
返回值:number
返回包含的 Data.Polygon 数量。
getType
getType()
参数:无
返回值:string
返回字符串 "MultiPolygon"。

Data.GeometryCollection 类

google.maps.Data.GeometryCollection 类
实现 Data.Geometry
库 "maps"

GeometryCollection 包含多个几何图形对象。任何 LatLng 或 LatLngLiteral 对象都会自动转换为 Data.Point 几何图形对象。

const {Data} = await google.maps.importLibrary("maps");
Data.GeometryCollection
Data.GeometryCollection(elements)
参数:
根据给定的几何图形对象或 LatLng 构造 Data.GeometryCollection。
forEachLatLng
forEachLatLng(callback)
参数:
  • callback:function(LatLng): void
返回值:无
getArray
getArray()
参数:无
返回值:Array<Data.Geometry>
返回所含几何图形对象的数组。每次调用 getArray() 时,系统都会返回一个新数组。
getAt
getAt(n)
参数:
  • n:number
返回值:Data.Geometry
返回第 n 个包含的几何图形对象。
getLength
getLength()
参数:无
返回值:number
返回所含几何图形对象的数量。
getType
getType()
参数:无
返回值:string
返回字符串 "GeometryCollection"。

Data.MouseEvent 接口

google.maps.Data.MouseEvent interface
extends MapMouseEvent

此对象会传递给 Data 对象上的鼠标事件处理脚本。

feature
类型:Data.Feature
生成鼠标事件的地图项。
继承的方法: domEvent、latLng
继承: stop

Data.AddFeatureEvent 接口

google.maps.Data.AddFeatureEvent 接口

addfeature 事件的属性。

feature
类型:Data.Feature
已添加到 FeatureCollection 的功能。

Data.RemoveFeatureEvent 接口

google.maps.Data.RemoveFeatureEvent 接口

removefeature 事件的属性。

feature
类型:Data.Feature
从 FeatureCollection 中移除的功能。

Data.SetGeometryEvent 接口

google.maps.Data.SetGeometryEvent 接口

setgeometry 事件的属性。

feature
类型:Data.Feature
已设置几何图形的地图项。
newGeometry
可选
类型:Data.Geometry optional
新地图项几何图形。
oldGeometry
可选
类型:Data.Geometry optional
之前的地图项几何图形。

Data.SetPropertyEvent 接口

google.maps.Data.SetPropertyEvent 接口

setproperty 事件的属性。

feature
类型:Data.Feature
已设置属性的地图项。
name
类型:string
属性名称。
newValue
类型:*
新值。
oldValue
类型:*
先前的值。如果添加了该属性,则为 undefined。

Data.RemovePropertyEvent 接口

google.maps.Data.RemovePropertyEvent 接口

removeproperty 事件的属性。

feature
类型:Data.Feature
属性已被移除的特征。
name
类型:string
属性名称。
oldValue
类型:*
先前的值。