Я вызываю API, затем добавляю данные JSON в массив, затем вызываю данные массива и размещаю широту и долготу на карте, размещая несколько маркеров.Я считаю, что моей проблемой является получение строки из ArrayList, но я не уверен, как ее решить.
Я вызываю API из другого класса
private GoogleMap mMap;
ArrayList LatitudeList = new ArrayList();
ArrayList LongitudeList = new ArrayList();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_taxi);
SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager()
.findFragmentById(R.id.map);
mapFragment.getMapAsync(this);
someMethod();
}
@Override
public void onMapReady(GoogleMap googleMap) {
mMap = googleMap;
//Log.d("TEST", "BBB");
String LatMarkers = LatitudeList.toString();
String LongMarkers = LongitudeList.toString();
//Log.d("TEST", "AAA");
double latitude = Double.parseDouble(LatMarkers);
double longitude = Double.parseDouble(LongMarkers);
LatLng location = new LatLng(latitude, longitude);
//Log.d("TEST", "CCC");
mMap.addMarker(new MarkerOptions().position(location).title("Camera Location"));
mMap.moveCamera(CameraUpdateFactory.newLatLng(location));
//Log.d("TEST", "DDD");
}
OkHttpClient client = new OkHttpClient();
void someMethod(){
try {
String jsonData = new TAXIAPI(client).execute().get();
JSONObject object = new JSONObject(jsonData);
JSONArray RunningArray = object.getJSONArray("value");
for (int i = 0; i < RunningArray.length(); ++i) {
JSONObject objectInner = new JSONObject(RunningArray.getString(i));
String Latitude = objectInner.getString("Latitude");
String Longitude = objectInner.getString("Longitude");
LatitudeList.add(Latitude);
LongitudeList.add(Longitude);
Log.d("APIActivity", " " + Latitude + " " + Longitude );
}
} catch (Exception e)
{
e.printStackTrace();
}
}