# 聚合热力图层(Grid3DLayer)
聚合热力图层用于将点类型的数据按照方形或者六边形进行聚合,可以根据聚合后的数值显示对应的颜色和高度。
提示
聚合热力图层与柱状图层都是以柱状的形式展示数据,区别在于:聚合热力图层会按照自动生成的几何对数据进行汇总聚合,而柱状图层严格按照数据进行展示。
例如:
- 对一份全国各个省份的GDP数据,使用柱状图层进行展示,因为数据已经按照省份区划聚合好了。
- 对一份浦东新区的人流热力数据,使用聚合热力图层进行展示,否则每个热力点显示一个棱柱,没有实际意义。
new aimap.Grid3DLayer(layerOptions: Object)
# 初始化参数
# LayerOptions参数说明
字段名 | 类型 | 说明 |
---|---|---|
id | string | 默认值为${type}.${uuid} ,该值不允许重复。 |
map | Map | 地图对象,如果设置,该图层会自动加载到地图中,如果未设置,需要手动加载图层:addTo(map) 。 |
data必须 | Data | 支持点类型的矢量数据,包括SimpleFeature ,GeoJSON 等,具体参见:矢量数据定义。 |
style必须 | Grid3DStyle | 本图层支持样式参考下方说明。 |
animate | AnimateOptions | 图层首次加载,以及每次重新指定数据时,图层展示的动画效果配置。 |
# Grid3DStyle
字段名 | 类型 | 说明 |
---|---|---|
type | grid 或者hexagon | 网格的类别,hexagon 表示六边形,grid 表示四边形,默认grid 。 |
radius | number | 每个格子的大小,单位米,默认值:1000。 |
opacity | number | 图层整体的透明度,默认值:1。 |
colorRange | Array<Color> | 颜色数组,默认是黄色到红色的渐变色带。 |
coverage | number | 每个格子的缩放,默认为 1,设置为 0.8,0.9左右可以让格子存在一点点间隙,更加美观。 |
elevationRange | [number, number] | 拔高的高度范围,默认 [0, 1000],拔高的最终显示高度还要乘以elevationScale 。 |
elevationScale | number | 拔高的缩放比例,默认 1。 |
extruded | boolean | 是否拔高,true 或者 false ,默认为 true 。不拔高则为二维的网格。 |
upperPercentile | number | 根据颜色百分比筛选需要显示的网格。例如:填写 90,则聚合后的值处于总数据集的前 10% 的数据将隐藏。 |
lowerPercentile | number | 根据颜色百分比筛选需要显示的网格。例如:填写 20,则聚合后的值处于总数据集的后 20% 的数据将隐藏。 |
elevationUpperPercentile | number | 根据高度百分比筛选需要显示的网格。例如:填写 90,则聚合后的值处于总数据集的前 10% 的数据将隐藏。 |
elevationLowerPercentile | number | 根据高度百分比筛选需要显示的网格。例如:填写 30,则聚合后的值处于总数据集的后 30% 的数据将隐藏。 |
colorAggregation | SUM ,MEAN ,MIN 或 MAX | 聚合后的颜色值的计算方式,可选 SUM ,MEAN ,MIN 或 MAX 。默认值:SUM 。 |
elevationAggregation | SUM ,MEAN ,MIN 或 MAX | 聚合后的高度值的计算方式,可选 SUM ,MEAN ,MIN 或 MAX 。默认值:SUM 。 |
getColorWeight | Function | 自定义颜色权重的获取方式,例如:t => t.value ,则取每条数据的value 字段进行聚合计算。 |
getElevationWeight | Function | 自定义高度权重的获取方式,例如:t => t.value ,则取每条数据的value 字段进行聚合计算。 |
# AnimateOptions
字段名 | 类型 | 说明 |
---|---|---|
duration | number | 动画的时长,单位:毫秒,默认为 2000。 |
type | grow ,up2down ,down2up ,right2left ,left2right 或 ripple | 动画的类型,可选: - grow :从地面向天空的生长效果- up2down :从北向南的过渡效果- down2up : 从南向北的过渡效果- right2left :从东向西的过渡效果- left2right :从西向东的过渡效果- ripple :从中心向四周的扩散效果默认为 grow 。 |
center | [number, number] | 当动画的type 为ripple 时,可以为扩散效果指定经纬度中心点,不指定则采用数据的 bbox 的中心点。 |
# 示例
coverLayer = new aimap.Grid3DLayer({
data: `path-to-a-points-geojson-data/data.txt`,
style: {
extruded: true,
type: 'hexagon',
radius: 200,
elevationScale: 10,
coverage: 0.9,
opacity: 0.8
},
animate: {
duration: 5000,
type: 'grow'
},
map
});
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# 实例变量
# id
此图层的 id,如果在初始化图层的参数中指定,则为参数中的 id,否则 SDK 内部会自动生成一个 id。
# 示例
var grid3DLayer = new aimap.Grid3DLayer({...});
console.log(grid3DLayer.id); // "grid3d.9db79b01-f3c0-4da6-a36a-b4d5827c4e37"
2
# type
此图层的类型,对于本图层, type
为固定值:grid3d
。
# 示例
var grid3DLayer = new aimap.Grid3DLayer({...});
console.log(grid3DLayer.type); // "grid3d"
2
# 实例方法
addTo(map)
如果在初始化图层时,没有传入地图对象参数,则需要使用此方法来将图层添加到地图上。
参数
map(Map)
:需要添加本图层的地图对象。
返回值
Grid3DLayer
:this
remove()
将本图层从地图中移除,并销毁相关的资源。
show()
显示该图层。
返回值
Grid3DLayer
:this
hide()
隐藏该图层。
返回值
Grid3DLayer
:this
flyTo(options?)
使地图带有动画的跳转,使得图层的中心点位于屏幕中间。
参数
options(SetFocusOptions)
:跳转动画的更多参数,具体参见:SetFocusOptions 配置。
返回值
Grid3DLayer
:this
fitView(options?)
使地图带有动画的跳转,使得图层的数据铺满屏幕。
参数
options(SetFocusOptions)
:跳转动画的更多参数,具体参见:SetFocusOptions 配置。
返回值
Grid3DLayer
:this
setStyle(style)
增量更新图层的样式。
参数
style(Grid3DStyle)
:样式对象,这些样式将增量更新到图层已有的样式上,支持的样式与当前图层一致。
返回值
Grid3DLayer
:this
setData(data, options?)
重新指定数据,原有的数据会被清除掉。
参数
data(Data)
:与 layeroptions参数说明 中的Data
字段定义一致。
options(options)
:指定新数据源的其他配置项,支持在 options 中配置 animate
参数。
返回值
Grid3DLayer
:this