HeatMap自动降低强度

时间:2018-07-08 11:30:16

标签: android gps coordinates heatmap

我正在创建一个基于GPS位置绘制HeatMap的应用程序。我想为每个GPS点绘制具有固定半径的固定颜色。我能够按预期看到每个点的图形,但是,如果在单个点上重复相同的GPS坐标,则会影响其他点,使它们失去强度/不透明度。

这是我得到的结果的一个示例:

here 5 different GPS coordinates, without repetition

在图片1中,我正在使用的数据是:

  1. “ 40.629215,-8.654973”
  2. “ 40.629315,-8.654973”
  3. “ 40.629415,-8.654973”
  4. “ 40.629515,-8.654973”
  5. “ 40.629615,-8.654973”

在第2张图片中,唯一不同的是GPS坐标:“ 40.629215,-8.654973”重复了5次。其余坐标完全相同:

  1. “ 40.629215,-8.654973”
  2. “ 40.629215,-8.654973”
  3. “ 40.629215,-8.654973”
  4. “ 40.629215,-8.654973”
  5. “ 40.629215,-8.654973”
  6. “ 40.629315,-8.654973”
  7. “ 40.629415,-8.654973”
  8. “ 40.629515,-8.654973”
  9. “ 40.629615,-8.654973”

这是我用来实现此目的的代码:

private GoogleMap myGoogleMap;
private HeatmapTileProvider myHeatMapProvider;

public void run() {
    if (myGoogleMap == null) {
        return;
    }
    ArrayList<LatLng> LatLon = new ArrayList<LatLng>();

    LatLon = getLocations(); //This ArrayList gets the Lat and Long coordinates

    int[] green = {Color.rgb(128, 255, 0)}; //green color
    float [] startPoints ={1f};

    Gradient gGreen = new Gradient(green, startPoints);

    if (LatLon.size() > 0) {
        myHeatMapProvider = new HeatmapTileProvider.Builder()
                .data(LatLon)
                .radius(30)
                .opacity(1.0)
                .gradient(gGreen)
                .build();
    }
    myGoogleMap.addTileOverlay(new TileOverlayOptions().tileProvider(myHeatMapProvider));
}

有人对此有任何想法吗?

谢谢。

0 个答案:

没有答案