自v7.6.1版本起,android地图sdk支持在地图上绘制2d蜂窝热力图。添加2d蜂窝热力图请参考hexagonmap类。
代码如下:
参数选项:
/*** 设置热力图的最大权重* @param intensity* @return*/publicbuildermaxintensity(float intensity)/*** 设置热力图的最小权重,一般为0* @param intensity* @return*/publicbuilderminintensity(float intensity)/*** 设置热力图渐变,有默认值 default_gradient,可不设置该接口** @param gradient* 热力图渐变* @return 更新后的热力图瓦片提供者构造器引用*/publicbuildergradient(gradient gradient)/*** 设置热力图绘制的数据,data 或 weighteddata接口必须设置其中之一** @param data* 热力图绘制数据,不能为null,大小不能为 0* @return 更新后的热力图瓦片提供者构造器引用*/publicbuilderdata(collection<latlng> data)/*** 设置热力图绘制的数据,带权值的位置点集合,data 或 weighteddata接口必须设置其中之一** @param weightdata* 热力图绘制数据,不能为null,大小不能为 0* @return 更新后的热力图瓦片提供者构造器引用*/publicbuilderweighteddata(collection<weightedlatlng> weightdata)/*** 设置热力图最大显示层级** @param maxlevel* 地图显示层级,[4,22]* @return 更新后的热力图瓦片提供者构造器引用*/publicbuildermaxshowlevel(int maxlevel)/*** 设置热力图最小显示层级** @param minlevel* 地图显示层级,[4,22]* @return 更新后的热力图瓦片提供者构造器引用*/publicbuilderminshowlevel(int minlevel)/*** 设置热力图点半径,默认为12ps,可不设置该接口** @param radius* 热力图点半径,[10,50]* @return 更新后的热力图瓦片提供者构造器引用*/publicbuilderradius(int radius)
示例:
list<latlng> datas =getlocations();hexagonmap mhexagonmap =newhexagonmap.builder().data(datas).opacity(1.0f).radius(2000).minshowlevel(10).maxshowlevel(14).hexagontype(hexagonmap.hexagontype.edge_up).gradient(default_gradient).maxintensity(10).gap(100).build();mbaidumap.addhexagonmap(mhexagonmap);
json数据样式示例:
[{"lng":116.895579,"lat":24.306521},{"lng":113.951068,"lat":22.772504},…{"lng":110.00006,"lat":40.603564},{"lng":111.846788,"lat":21.897821}]
蜂窝热力图效果如下:
上一篇
下一篇
本篇文章对您是否有帮助?