android 7.5.2起地图sdk支持动态热力图功能,支持以3d的形式表示数据的密度和分布情况,示例图如下:
属性 | 类型 | 说明 |
---|---|---|
datas | arraylist | 多帧动画数据 |
data | arraylist | 单帧动画数据 |
initanimation | heatmapanimation | 开始动画属性 |
frameanimation | heatmapanimation | 帧动画属性 |
maxhigh | int | 设置3d热力图最大高度,默认为0ps,范围[0~200],since 6.5.0 |
radius | int | 设置热力图点半径,默认为12ps,范围[10~50] |
maxintentity | float | 点的强度权值,默认值1,范围[> 0 |
minintensity | float | 设置热力图最小权重值,默认为0.0, |
gradient | gradient | 设置热力图渐变,有默认值 default_gradient |
opacity | double | 设置热力图层透明度,默认 0.6,范围[0~1] |
colors | int[] | 渐变色用到的所有颜色数组,有默认值 |
属性 | 类型 | 说明 |
---|---|---|
colors | int[] | 渐变色用到的所有颜色数组,有默认值 |
startpoints | float[] | 每一个颜色的起始点数组,有默认值 |
属性 | 类型 | 注释 |
---|---|---|
duration | double | 动画时长 |
type | animationtype | 动画缓动函数类型 |
isanimation | boolean | 是否开启动画 |
添加热力图图层前,请您提前准备好带有经纬度坐标的数据集,具体步骤如下:
1.准备经纬度分布数据集,如
"lng":116.895579,"lat":24.306521
2.设置热力图属性
// 获取多帧热力图数据集list<list<latlng>> datas =getlocations();// 设置开始动画属性:开启初始动画,时长100毫秒,动画缓动函数类型为线性heatmapanimation init =newheatmapanimation(true,100,heatmapanimation.animationtype.linear);// 设置帧动画属性:开启帧动画,时长800毫秒,动画缓动函数类型为线性heatmapanimation frame =newheatmapanimation(true,800,heatmapanimation.animationtype.linear);// 设置热力图渐变色用到的所有颜色数组int[] colors =newint[]{color.rgb(255,0,0),color.rgb(0,225,0),color.rgb(0,0,200)};//设置热力图每一个颜色的起始点数组float[] startpoint =newfloat[]{0.3f,0.7f, 1f};// 设置热力图渐变类gradient mgradient =newgradient(colors, startpoint);mheatmap =newheatmap.builder().datas(datas).initanimation(init).frameanimation(frame).gradient(mgradient).maxintensity(3.1f).opacity(0.9).build();
3.添加热力图
mbaidumap.addheatmap(mheatmap);
4.开启热力图帧动画
mbaidumap.startheatmapframeanimation();
5.停止热力图帧动画
mbaidumap.stopheatmapframeanimation();
6.调整热力图帧数
地图回调接口返回当前正在绘制的热力图帧索引,接口实现如下:
//回调动态热力图帧索引mbaidumap.setonheatmapdrawframecallback(newbaidumap.onheatmapdrawframecallback(){@overridepublicvoidframeindex(int indexcallback){}});
上一篇
下一篇
本篇文章对您是否有帮助?