我最近在android studio中使用google maps API创建了一个带有热图的Android应用程序。我用下面的代码来创建渐变。我得到了显示正方形的结果?为什么我得到了那个结果?需要帮助。
int[] colors = {
Color.GREEN, // green
Color.YELLOW, // yellow
Color.rgb(255,165,0), //Orange
Color.RED, //red
Color.rgb(153,50,204), //dark orchid
Color.rgb(165,42,42) //brown
};
float[] startpoints = {
0.0f, //0-50
0.1f, //51-100
0.2f, //101-150
0.3f, //151-200
0.4f, //201-300
0.6f //301-500
};
private ArrayList addheatmap() {
ArrayList<WeightedLatLng> arr = new ArrayList<>();
arr.add(new WeightedLatLng(new LatLng(9.9252, 78.119),10)); //madurai
arr.add(new WeightedLatLng(new LatLng(10.7905, 78.7047),60)); //trichy
arr.add(new WeightedLatLng(new LatLng(13.0827, 80.2707),180)); //chennai
arr.add(new WeightedLatLng(new LatLng(11.0168, 76.9558),270)); //coimbatore
arr.add(new WeightedLatLng(new LatLng(11.7863, 77.8008),380));
arr.add(new WeightedLatLng(new LatLng(11.7480, 79.7714),190));
arr.add(new WeightedLatLng(new LatLng(8.7642, 78.1348),299));
arr.add(new WeightedLatLng(new LatLng(11.6643, 78.1460),398));
Log.e("adding heatmap","yes");
return arr;
}
private void buildheatmap(){
Gradient gradient = new Gradient(colors,startpoints);
heatmapTileProvider = new HeatmapTileProvider.Builder()
.weightedData(addheatmap())
.radius(20)
.gradient(gradient)
.build();
TileOverlayOptions tileoverlayoptions = new TileOverlayOptions().tileProvider(heatmapTileProvider);
TileOverlay tileoverlay = googleMap.addTileOverlay(tileoverlayoptions);
tileoverlay.clearTileCache();
Toast.makeText(this,"added heatmap",Toast.LENGTH_SHORT).show();
}
我使用上面的colors array和startpoints数组为HeatMapTileProvider创建渐变。 为什么我会像结构那样变成方形,怎么做才能让它们成为像结构一样的圆圈?谢谢你
答案 0 :(得分:0)
如果您将起点数组从0.05f(或一些很小的数字)而不是0开始,它将消除热图的垂直度。