У меня есть служба, которая возвращает некоторые данные, я могу уже получить эти данные, например, и разместить в текстовом представлении или в журнале/тосте, но я хотел включить его в ArrayList, чтобы быть читайте на картах Google, но, как я пытался, представляет ошибку. Ниже код и погрешностьКак заполнить arraylist с помощью модификации
MainActivity.
@Override
public void onMapReady(GoogleMap googleMap) {
mMap = googleMap;
// create class object
gps = new GPSTracker(MainActivity.this);
this.getOccurrence();
// check if GPS enabled
if(gps.canGetLocation()){
double latitude = gps.getLatitude();
double longitude = gps.getLongitude();
LatLng local = new LatLng(latitude, longitude);
mMap.addMarker(new MarkerOptions().position(local));
mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(local, 16));
// Create a heat map tile provider, passing it the lat long of the police stations.
mProvider = new HeatmapTileProvider.Builder()
.data(list) // Error happens here
.build();
// Add a tile overlay to the map, using the heat map tile provider.
mOverlay = mMap.addTileOverlay(new TileOverlayOptions().tileProvider(mProvider));
}else{
gps.showSettingsAlert();
}
private void getOccurrence() {
try {
list = readItems();
} catch (JSONException e) {
Toast.makeText(this, "Error", Toast.LENGTH_LONG).show();
}
}
private List<LatLng> readItems() throws JSONException {
ApiInterface apiService = ApiClient.getClient().create(ApiInterface.class);
final Call<List<MyPojo>> call = apiService.getResut();
call.enqueue(new Callback<List<MyPojo>>() {
@Override
public void onResponse(Call<List<MyPojo>> call, Response<List<MyPojo>> response) {
try {
List<MyPojo> LatLngData = response.body();
Log.v(TAG, "LOGS" + LatLngData.size());
ArrayList<LatLng> list = new ArrayList<LatLng>();
for (int i = 0; i < LatLngData.size(); i++) {
double lat = LatLngData.get(i).getLat();
double lng = LatLngData.get(i).getLng();
list.add(new LatLng(lat, lng));
}
} catch (Exception e) {
Log.d("onResponse", "There is an error");
e.printStackTrace();
}
}
@Override
public void onFailure(Call<List<MyPojo>> call, Throwable t) {
}
});
Log.v(TAG, "" + list);
return list;
}
MyPojo (модель)
import com.google.gson.annotations.SerializedName;
public class MyPojo {
@SerializedName("lat")
private Double lat;
@SerializedName("lng")
private Double lng;
public MyPojo(Double lat, Double lng) {
this.lat = lat;
this.lng = lng;
}
public Double getLat() {
return lat;
}
public void setLat(Double lat) {
this.lat = lat;
}
public Double getLng() {
return lng;
}
public void setLng(Double lng) {
this.lng = lng;
}
}
ApiInterface
public interface ApiInterface {
@Headers("Accept: application/json")
@GET("/locations")
Call<List<MyPojo>> getResult();
}
Ошибка
2-08 14:13:53.348 3823-3823/
br.com.example E/AndroidRuntime: FATAL EXCEPTION: main
Process: br.com.example, PID: 3823
java.lang.NullPointerException: Attempt to invoke interface method 'java.util.Iterator java.util.Collection.iterator()' on a null object reference
at br.com.example.googlemaps.heatmaps.HeatmapTileProvider.wrapData(HeatmapTileProvider.java:346)
at br.com.example.googlemaps.heatmaps.HeatmapTileProvider.access$000(HeatmapTileProvider.java:39)
at br.com.example.googlemaps.heatmaps.HeatmapTileProvider$Builder.data(HeatmapTileProvider.java:188)
at br.com.example.activity.MainActivity.onMapReady(MainActivity.java:140)
at com.google.android.gms.maps.SupportMapFragment$zza$1.zza(Unknown Source)
at com.google.android.gms.maps.internal.zzo$zza.onTransact(Unknown Source)
at android.os.Binder.transact(Binder.java:499)
at yd.a(:com.google.android.gms.DynamiteModulesB:82)
at maps.ad.t$5.run(Unknown Source)
at android.os.Handler.handleCallback(Handler.java:751)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6077)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:865)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755)
Не могли бы вы поделиться своим классом модели и вашим интерфейсом и образцом ответа json, который вы получаете? –
Обновленный вопрос –