android中的加权热图
我正在尝试为我的android应用程序项目创建一个加权热图。我看了一下谷歌的文档。我不明白如何使用颜色数组和起点数组创建新的渐变。起始数组表示为 每种颜色的起点,以最大强度的百分比表示 这是什么意思?如何将颜色数组与起始点数组关联android中的加权热图,android,google-maps,android-studio,google-maps-api-3,heatmap,Android,Google Maps,Android Studio,Google Maps Api 3,Heatmap,我正在尝试为我的android应用程序项目创建一个加权热图。我看了一下谷歌的文档。我不明白如何使用颜色数组和起点数组创建新的渐变。起始数组表示为 每种颜色的起点,以最大强度的百分比表示 这是什么意思?如何将颜色数组与起始点数组关联 int[] colors = { Color.GREEN, // green(0-50) Color.YELLOW, // yellow(51-100) Color.rgb(255,165,0), //Ora
int[] colors = {
Color.GREEN, // green(0-50)
Color.YELLOW, // yellow(51-100)
Color.rgb(255,165,0), //Orange(101-150)
Color.RED, //red(151-200)
Color.rgb(153,50,204), //dark orchid(201-300)
Color.rgb(165,42,42) //brown(301-500)
};
float[] startpoints = {
};
我需要填写startpoints数组。以下是一些假设:
- 渐变颜色贴图大小为1000(默认值),但应设置为500
- 颜色值长度为6
- 起始点长度为6(必须与颜色长度相同)
- 颜色数组在OP中指定
- 起始点数组应为{0.1F、0.2F、0.3F、0.4F、0.6F、1.0F}
public void onMapReady(GoogleMap googleMap) {
mMap = googleMap;
mMap.getUiSettings().setZoomControlsEnabled(true);
// Add a marker in Sydney and move the camera
LatLng sydney = new LatLng(-34, 151);
mMap.addMarker(new MarkerOptions().position(sydney).title("Marker in Sydney"));
mMap.moveCamera(CameraUpdateFactory.newLatLng(sydney));
addHeatMapWeighted();
//addHeatMap();
}
public void addHeatMapWeighted() {
Gradient gradient = new Gradient(colors,startpoints);
List<WeightedLatLng> wDat = new CrimeData().getWeightedPositions();
HeatmapTileProvider provider = new HeatmapTileProvider.Builder().weightedData(wDat).gradient(gradient).build();
mMap.addTileOverlay(new TileOverlayOptions().tileProvider(provider));
}
public void addHeatMap() {
Gradient gradient = new Gradient(colors,startpoints);
List<LatLng> cDat = new CrimeData().getPositions();
HeatmapTileProvider provider = new HeatmapTileProvider.Builder().data(cDat).gradient(gradient).build();
mMap.addTileOverlay(new TileOverlayOptions().tileProvider(provider));
}
int[] colors = {
Color.GREEN, // green(0-50)
Color.YELLOW, // yellow(51-100)
Color.rgb(255,165,0), //Orange(101-150)
Color.RED, //red(151-200)
Color.rgb(153,50,204), //dark orchid(201-300)
Color.rgb(165,42,42) //brown(301-500)
};
float[] startpoints = {
0.1F, 0.2F, 0.3F, 0.4F, 0.6F, 1.0F
};
public void onMapReady(谷歌地图谷歌地图){
mMap=谷歌地图;
mMap.getUiSettings().setZoomControlsEnabled(true);
//在Sydney添加一个标记并移动相机
悉尼LatLng=新LatLng(-34151);
mMap.addMarker(新MarkerOptions().position(sydney.title)(“悉尼的标记”);
mMap.moveCamera(CameraUpdateFactory.newLatLng(悉尼));
addHeatMapWeighted();
//addHeatMap();
}
public void addHeatMapWeighted(){
渐变渐变=新渐变(颜色、起始点);
List wDat=new CrimeData().getWeightedPositions();
HeatmapTileProvider=新的HeatmapTileProvider.Builder().weightedData(wDat).gradient(gradient.build();
mMap.addTileOverlay(新的TileOverlayOptions().tileProvider(提供程序));
}
public void addHeatMap(){
渐变渐变=新渐变(颜色、起始点);
List cDat=new CrimeData().getPositions();
HeatmapTileProvider=新的HeatmapTileProvider.Builder().data(cDat).gradient(gradient.build();
mMap.addTileOverlay(新的TileOverlayOptions().tileProvider(提供程序));
}
int[]颜色={
Color.GREEN,//绿色(0-50)
Color.YELLOW,//黄色(51-100)
颜色。rgb(255165,0)/