在android studio

时间:2017-01-25 12:48:33

标签: java android google-maps

我正在尝试使用google api创建热图,但遇到了一个小问题。

以下是示例代码:

 mProvider = new HeatmapTileProvider.Builder()
                    .weightedData((Collection<WeightedLatLng>) weightedList)
                    .gradient(gradient);
         mOverlay = mMap.addTileOverlay(new TileOverlayOptions().tileProvider((TileProvider) mProvider));// this is the line of code that produces the error
    }

特别是,该行中的参数“mProvider”会突出显示。

错误日志是:

java.lang.ClassCastException: com.google.maps.android.heatmaps.HeatmapTileProvider$Builder cannot be cast to com.google.android.gms.maps.model.TileProvider

我一直坚持这个问题一段时间,并且非常感谢有关如何解决这个问题的一些指导。

提前致谢!

1 个答案:

答案 0 :(得分:0)

您忘了拨打.build()方法 这就像你想要制造一辆汽车,并且像Car car = new CarFactory().type(SEDAN).color(BLACK);那样忘记告诉carFactory制造汽车。这导致您尝试将carFactory分配给Car变量 您的代码应如下所示:

 mProvider = new HeatmapTileProvider.Builder()
                .weightedData((Collection<WeightedLatLng>) weightedList)
                .gradient(gradient)
                .build(); //missing this line