ClusterLayer

new mars2d.layer.ClusterLayer(options)

聚合点 图层

参数名称 类型 描述信息
options Object

参数对象,包括以下:

参数名称 类型 默认值 描述信息
zoomToBoundsOnClick Boolean true 可选

当你点击一个集群时,是否缩放到它的边界

showCoverageOnHover Boolean true 可选

将鼠标悬停在集群上时,是否显示其标记的边界

spiderLegPolylineOptions Polyline.StyleOptions | Object 可选

允许你指定聚群单击散开的连接线样式。

polygonOptions Polygon.StyleOptions | Object 可选

集群的Polygon边界的样式

maxClusterRadius Number | function 80 可选

集群将从中央标记覆盖的最大半径(以像素为单位)。减少会使更多,更小的群集。 您也可以使用接受当前地图缩放的函数,并以像素为单位返回最大群集半径。

singleMarkerMode Boolean false 可选

如果设置为true,则覆盖所有添加标记的图标,使其显示为1尺寸的群集。注意:标记不会被集群对象替换,只会替换它们的图标。因此,他们仍然对正常事件作出反应,选项disableClusteringAtZoom不会恢复其以前的图标

removeOutsideVisibleBounds Boolean true 可选

当离开视图太远的集群和标记,是否将其从地图中移除以获得性能。

spiderfyOnMaxZoom Boolean true 可选

当在最底层级别时,点击一个集群时,如果他们重叠着,我们是否可以通过spiderLeg连接线散开方式看到它的所有标记。

spiderfyDistanceMultiplier Number 1 可选

从1增加增加距离中心的距离,spiderfied marker被放置。如果您使用大标记图标,则使用

animate Boolean true 可选

在缩放时是否有平滑分割/合并群集子项的动画。如果L.DomUtil.TRANSITION为false,则此选项不起作用(不可能有动画)

chunkedLoading Boolean false 可选

在执行addLayer方法时,将处理分成很小的时间间隔,这样页面就不会冻结。

chunkInterval Number 200 可选

在执行addLayer方法时, 暂停之前让页面的其他部分处理的时间间隔(以毫秒为单位)。 特别是,这样可以防止页面在添加大量标记时被冻结。

chunkDelay Number 50 可选

在执行addLayer方法时, 连续处理周期之间的时间延迟(以毫秒为单位)

chunkProgress boolean true 可选

在每个chunkInterval结尾调用的回调函数。通常用于实现进度指示器。

iconCreateFunction function 可选

自定义创建集群图标的功能

disableClusteringAtZoom Number 可选

如果设置,在此缩放级别及以下,标记将不会聚集,注意:在使用disableClusteringAtZoom时,您可能有兴趣禁用spiderfyOnMaxZoom选项。

id String | Number createGuid() 可选

图层id标识

pid String | Number -1 可选

图层父级的id,一般图层管理中使用

name String '' 可选

图层名称

pane String 'overlayPane' 可选

指定图层添加到地图的哪个pane的DIV中,用于控制不同层级显示的,优先级高于zIndex。

参考:

继承

  • MarkerClusterGroup

成员(属性)

id : String|Number

对象的id标识

readonly isAdded : Boolean

是否已添加到地图

name : String

名称 标识

pid : String|Number

对象的pid标识

show : Boolean

显示隐藏状态

方法

addEventParent(obj)ClusterLayer

添加抛出事件到父类,它将接收传播的事件

参数名称 类型 描述信息
obj Object

父类对象

返回值:

当前对象本身,可以链式调用

addGraphic(graphic)ClusterLayer

添加 图标点矢量对象 到本图层

参数名称 类型 描述信息
graphic Marker

图标点矢量对象

返回值:

当前对象本身,可以链式调用

addTo(map)ClusterLayer

将图层添加到地图

参数名称 类型 描述信息
map Map

地图对象

返回值:

当前对象本身,可以链式调用

bindContextMenu(contextmenuItems)Map

绑定右键菜单

参数名称 类型 描述信息
contextmenuItems Array.<Object>

右键菜单数组

返回值:

当前对象本身,可以链式调用

bindPopup(content, options)ClusterLayer

绑定Popup弹窗配置

参数名称 类型 描述信息
content String | HTMLElement | function | L.Popup

Popup弹窗内容

options Map.PopupOptions | Object 可选

Popup弹窗参数

返回值:

当前对象本身,可以链式调用

bindTooltip(content, options)ClusterLayer

绑定Tooltip弹窗配置

参数名称 类型 描述信息
content String | HTMLElement | function | L.Tooltip

Tooltip弹窗内容

options Map.TooltipOptions | Object 可选

Tooltip弹窗参数

返回值:

当前对象本身,可以链式调用

bringToBack()ClusterLayer

将图层置于所有图层之下

返回值:

当前对象本身,可以链式调用

bringToFront()ClusterLayer

将图层置于所有图层之上

返回值:

当前对象本身,可以链式调用

clear()void

清除图层内所有矢量数据

返回值:

closePopup()ClusterLayer

关闭打开的弹窗

返回值:

当前对象本身,可以链式调用

closeTooltip()ClusterLayer

关闭打开的弹窗

返回值:

当前对象本身,可以链式调用

eachGraphic(method, context)ClusterLayer

遍历所有矢量数据并将其作为参数传递给回调函数

参数名称 类型 描述信息
method function

回调方法

context Object 可选

侦听器的上下文(this关键字将指向的对象)。

返回值:

当前对象本身,可以链式调用

fire(type, data, propagate)void

触发指定类型的事件。

参数名称 类型 默认值 描述信息
type String | EventType

事件类型

data Object 可选

传输的数据或对象,可在事件回调方法中event对象中获取进行使用

propagate BaseClass | Object null 可选

将事件传播给父类 (用addEventParent设置)

返回值:

flyTo(options)ClusterLayer

执行平滑的飞行动画,移动缩放地图范围至指定的数据范围

参数名称 类型 描述信息
options Object 可选

定位参数,包括:

参数名称 类型 默认值 描述信息
paddingTopLeft L.Point | Array.<Number> 可选

设置在将视图设置为适合边界时不应考虑的地图容器左上角的填充量。如果您在地图上有一些控件重叠式(如侧边栏),而且您不希望它们遮挡您正在缩放的对象,则很有用。

paddingBottomRight L.Point | Array.<Number> 可选

同上,不考虑地图容器右下角时使用。

padding L.Point | Array.<Number> 可选

相当于将左上和右下填充设置为相同的值。

maxZoom Number 可选

最大层级

animate Boolean true 可选

是否进行动画缩放。false时始终重置视图完全没有动画。

duration Number 0.25 可选

动画平移的持续时间,以秒为单位。

easeLinearity Number 0.25 可选

平移动画宽松的曲率因子 Cubic Bezier curve曲线的第三个参数。1.0表示线性动画,而这个数字越小,曲线越鞠躬。

noMoveStart Boolean false 可选

如果true,平移不会movestart在启动时触发事件(内部用于平移惯性)。

返回值:

当前对象本身,可以链式调用

getBounds()L.LatLngBounds

获取图层矩形边界

返回值:

矩形边界

getContextMenu()Array.<Object>

获取绑定的右键菜单

返回值:

右键菜单数组

getPopup()L.Popup

获取当前绑定在图层上的Popup弹窗对象

返回值:

Popup弹窗对象

getTooltip()L.Tooltip

获取当前绑定在图层上的Tooltip弹窗对象

返回值:

Tooltip弹窗对象

getVisibleParent(marker)Marker

想要获取标记的可见父项(自身或包含在其中的群集当前在地图上可见)。

参数名称 类型 描述信息
marker Marker

标记

返回值:

可见父项(自身或包含在其中的群集当前在地图上可见)。 如果标记及其父集合当前不可见,则返回null(它们不在可见视点附近)

hasGraphic(graphic)Boolean

是否包含Graphic矢量数据

参数名称 类型 描述信息
graphic *

矢量数据

返回值:

是否包含

isPopupOpen()boolean

当前绑定的弹窗是是否打开

返回值:

是否打开弹窗

isTooltipOpen()boolean

当前绑定的弹窗是是否打开

返回值:

是否打开弹窗

listens(type, propagate)Boolean

是否有绑定指定的事件

参数名称 类型 描述信息
type String | EventType

事件类型

propagate Object 可选

是否判断指定的父类 (用addEventParent设置的)

返回值:

是否存在

off(types, fn, context)void

解除绑定指定类型事件监听器

参数名称 类型 描述信息
types String | EventType | Object 可选

事件类型,Object时删除一组类型/侦听器对。

fn function 可选

绑定的监听器回调方法

context Object 可选

侦听器的上下文(this关键字将指向的对象)。

返回值:

on(type, fn, context)void

绑定指定类型事件监听器

参数名称 类型 描述信息
type String | EventType | Object

事件类型,当是Object时可以添加一组类型/侦听器对,例如 {click: onClick, mousemove: onMouseMove}

fn function 可选

绑定的监听器回调方法

context Object 可选

侦听器的上下文(this关键字将指向的对象)。

返回值:

once(types, fn, context)void

绑定一次性执行的指定类型事件监听器 与on类似,监听器只会被触发一次,然后被删除。

参数名称 类型 描述信息
types String | EventType | Object 可选

事件类型,Object时删除一组类型/侦听器对。

fn function 可选

绑定的监听器回调方法

context Object 可选

侦听器的上下文(this关键字将指向的对象)。

返回值:

openPopup(latlng)ClusterLayer

打开Popup弹窗

参数名称 类型 描述信息
latlng L.LatLng 可选

位置,如果latlng没有设置则在默认的所在位置打开。

返回值:

当前对象本身,可以链式调用

openTooltip(latlng)ClusterLayer

打开Tooltip弹窗

参数名称 类型 描述信息
latlng L.LatLng 可选

位置,如果latlng没有设置则在默认的所在位置打开。

返回值:

当前对象本身,可以链式调用

refreshClusters(markers)ClusterLayer

如果您已自定义群集图标以使用所包含标记中的某些数据,并且之后数据发生更改,请使用此方法强制刷新群集图标。

参数名称 类型 描述信息
markers Marker | Array.<Marker> 可选

标记

返回值:

当前对象本身,可以链式调用

使用示例:
//没有参数强制重新绘制标记集群组中的所有集群图标。
markers.refreshClusters();
//用一个标记。
markers.refreshClusters(myMarker);
//使用一个数组或一个标记映射来强制只重新绘制它们的父集群。
markers.refreshClusters([myMarker0, myMarker33]);
markers.refreshClusters({id_0: myMarker0, id_any: myMarker33});

remove()ClusterLayer

将图层从地图上移除

返回值:

当前对象本身,可以链式调用

removeEventParent(obj)ClusterLayer

移除抛出事件到父类

参数名称 类型 描述信息
obj Object

父类对象

返回值:

当前对象本身,可以链式调用

removeGraphic(graphic)ClusterLayer

移除指定矢量对象

参数名称 类型 描述信息
graphic Marker

指定矢量对象

返回值:

当前对象本身,可以链式调用

setPopupContent(content)ClusterLayer

设定绑定在图层上的弹窗的内容

参数名称 类型 描述信息
content String | HTMLElement | L.Popup

Popup弹窗内容

返回值:

当前对象本身,可以链式调用

setTooltipContent(content)ClusterLayer

设定绑定在图层上的弹窗的内容

参数名称 类型 描述信息
content String | HTMLElement | L.Tooltip

Tooltip弹窗内容

返回值:

当前对象本身,可以链式调用

setZIndex(zIndex)ClusterLayer

调用setZIndex此组中包含的每个图层,传递z-index。

参数名称 类型 描述信息
zIndex Number

图层顺序值

返回值:

当前对象本身,可以链式调用

toGeoJSON()Object

将图层内的矢量数据转为GeoJSON格式对象

返回值:

返回GeoJSON格式对象(作为GeoJSON GeometryCollection)。

unbindContextMenu()Map

解除绑定右键菜单

返回值:

当前对象本身,可以链式调用

unbindPopup()ClusterLayer

解除绑定Popup弹窗配置

返回值:

当前对象本身,可以链式调用

unbindTooltip()ClusterLayer

解除绑定Tooltip弹窗配置

返回值:

当前对象本身,可以链式调用

zoomToShowLayer(marker, callback)ClusterLayer

缩放以显示给定的标记(如果需要的话,spiderfying),当标记在地图上可见时调用回调。

参数名称 类型 描述信息
marker Marker

标记

callback function

标记

返回值:

当前对象本身,可以链式调用

定义的类型

mars2d.layer.ClusterLayer.EventType

当前类支持的EventType事件类型(包括自定义字符串事件名)

属性:
属性名称 类型 描述信息
clusterclick String

单击聚合点

clustermouseover String

鼠标移入聚合点

clustermouseout String

鼠标移出聚合点

animationend String

当标记聚类/非聚集动画完成时触发

spiderfied String

当重叠的标记被spiderified时触发(Contains cluster和markersattributes)

unspiderfied String

当重叠标记得到隐藏时触发(Contains cluster和markersattributes)

使用示例:
//绑定监听事件
markers.on('clusterclick', function (a) {
 a.layer.zoomToBounds({padding: [20, 20]});
});
参考: