Android 7.5.2起地图SDK支持动态热力图功能,支持以3D的形式表示数据的密度和分布情况,示例图如下:
内容转换完成
内容转换完成
内容转换完成
添加热力图图层前,请您提前准备好带有经纬度坐标的数据集,具体步骤如下:
1.准备经纬度分布数据集,如
"lng": 116.895579, "lat": 24.306521
2.设置热力图属性
// 获取多帧热力图数据集List<List<LatLng>> datas = getLocations();// 设置开始动画属性:开启初始动画,时长100毫秒,动画缓动函数类型为线性HeatMapAnimation init = new HeatMapAnimation(true, 100, HeatMapAnimation.AnimationType.Linear);// 设置帧动画属性:开启帧动画,时长800毫秒,动画缓动函数类型为线性HeatMapAnimation frame = new HeatMapAnimation(true,800, HeatMapAnimation.AnimationType.Linear);// 设置热力图渐变色用到的所有颜色数组int[] colors = new int[]{Color.rgb(255, 0, 0), Color.rgb(0, 225, 0),Color.rgb(0, 0, 200)};//设置热力图每一个颜色的起始点数组float[] startPoint = new float[] {0.3f, 0.7f, 1f};// 设置热力图渐变类Gradient mGradient = new Gradient(colors, startPoint);mHeatmap = new HeatMap.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(new BaiduMap.OnHeatMapDrawFrameCallBack() {@Overridepublic void frameIndex(int indexCallBack) {}});
上一篇
下一篇
本篇文章对您是否有帮助?