开发 Android 地图SDK 开发指南 在地图上绘制 绘制热力图

绘制热力图 最后更新时间: 2021年01月22日

热力图功能提供将业务数据展示在地图上,可以给使用者直观描述一个区域的人员,车辆等事物的热度情况。

第一步,组织热力图数据

以下以本地模拟数据为例,简单说明 SDK 热力图需要的是经纬度点数组/列表数据。

示例代码如下:

//生成热力点坐标列表
LatLng[] latlngs = new LatLng[500];
double x = 39.904979;
double y = 116.40964;
 
for (int i = 0; i < 500; i++) {
double x_ = 0;
double y_ = 0;
x_ = Math.random() * 0.5 - 0.25;
y_ = Math.random() * 0.5 - 0.25;
latlngs[i] = new LatLng(x + x_, y + y_);
}

第二步,构建热力图 HeatmapTileProvider

HeatmapTileProvider 是生成热力图的核心类,一些基础用法可参考如下代码:

// 构建热力图 HeatmapTileProvider
HeatmapTileProvider.Builder builder = new HeatmapTileProvider.Builder();
builder.data(Arrays.asList(latlngs)) // 设置热力图绘制的数据
.gradient(ALT_HEATMAP_GRADIENT); // 设置热力图渐变,有默认值 DEFAULT_GRADIENT,可不设置该接口
// Gradient 的设置可见参考手册
// 构造热力图对象
HeatmapTileProvider heatmapTileProvider = builder.build();

第三步,绘制热力图图层

通过 TileOverlay 绘制热力图,方法如下:

// 初始化 TileOverlayOptions
TileOverlayOptions tileOverlayOptions = new TileOverlayOptions();
tileOverlayOptions.tileProvider(heatmapTileProvider); // 设置瓦片图层的提供者 
// 向地图上添加 TileOverlayOptions 类对象
mAMap.addTileOverlay(tileOverlayOptions);

效果图如下:

返回顶部 示例中心 常见问题 智能客服 公众号
二维码