增加Android上Maps API的热图上的半径

时间:2016-02-07 18:50:45

标签: android google-maps zoom heatmap

我已经在Google Maps API for Android上创建了热图。问题是当我增加变焦时,热图"松散"半径和外观不太好。

有办法将半径增加到50以上(可能是最大值)? :/

Heat map with less zoom

Heat map on zoom

1 个答案:

答案 0 :(得分:3)

来自the documentation

  

半径:应用于热图的高斯模糊的大小,   用像素表示。默认值为20.必须介于10和50之间。使用   Builder的半径()设置创建热图时的值,或者   稍后使用setRadius()更改值。

因此,如果您使用radius(int val)中的HeatmapTileProvider.Builder函数,如果半径不在10到50之间,您将收到IllegalArgumentException("Radius not within bounds.")例外。

看一下the GitHub repository,您可以看到radius(int val)函数检查参数是否在MIN_RADIUSMAX_RADIUS之间。

无论如何,您可以使用setRadius(int radius)类上的HeatmapTileProvider函数(请参阅the GitHub repository中的实现)。

因此,由于setRadius(int radius)函数不检查参数,您可以在调用HeatmapTileProvider之后更改build()的半径,如下所示:

HeatmapTileProvider mProvider = new HeatmapTileProvider.Builder()
        .data(list)
        .build();
mProvider.setRadius(100);

使用警察局示例,并将半径设置为50:

Setting the radius to 50

将半径设置为100:

Setting the radius to 100

您可能希望根据缩放级别动态更改HeatMap的半径。

注意:请考虑一下,如setRadius函数的Javadoc中所述:

  

用户应该在之后清除叠加层的缓存(使用clearTileCache())   叫这个。