自v7.6.1版本起,Android地图SDK支持在地图上绘制2D蜂窝热力图。添加2D蜂窝热力图请参考HexagonMap类。
代码如下:
参数选项:
/*** 设置热力图的最大权重* @param intensity* @return*/public Builder maxIntensity(float intensity)/*** 设置热力图的最小权重,一般为0* @param intensity* @return*/public Builder minIntensity(float intensity)/*** 设置热力图渐变,有默认值 DEFAULT_GRADIENT,可不设置该接口** @param gradient* 热力图渐变* @return 更新后的热力图瓦片提供者构造器引用*/public Builder gradient(Gradient gradient)/*** 设置热力图绘制的数据,data 或 weightedData接口必须设置其中之一** @param data* 热力图绘制数据,不能为null,大小不能为 0* @return 更新后的热力图瓦片提供者构造器引用*/public Builder data(Collection<LatLng> data)/*** 设置热力图绘制的数据,带权值的位置点集合,data 或 weightedData接口必须设置其中之一** @param weightData* 热力图绘制数据,不能为null,大小不能为 0* @return 更新后的热力图瓦片提供者构造器引用*/public Builder weightedData(Collection<WeightedLatLng> weightData)/*** 设置热力图最大显示层级** @param maxLevel* 地图显示层级,[4,22]* @return 更新后的热力图瓦片提供者构造器引用*/public Builder maxShowLevel(int maxLevel)/*** 设置热力图最小显示层级** @param minLevel* 地图显示层级,[4,22]* @return 更新后的热力图瓦片提供者构造器引用*/public Builder minShowLevel(int minLevel)/*** 设置热力图点半径,默认为12ps,可不设置该接口** @param radius* 热力图点半径,[10,50]* @return 更新后的热力图瓦片提供者构造器引用*/public Builder radius(int radius)
示例:
List<LatLng> datas = getLocations();HexagonMap mHexagonMap = new HexagonMap.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}]
蜂窝热力图效果如下:
上一篇
下一篇
本篇文章对您是否有帮助?