Я хочу нарисовать маршрут из одной точки в другую, но не пытаюсь следовать этому уроку https://medium.com/@rizal_hilman/bermain-google-maps-api-android-kuy-bikin-aplikasi-kayak-go-jek-belajarapi-20b004d6abdf, но я получаю эту ошибку "java.lang.IndexOutOfBoundsException: недопустимый индекс 0, размер 0"
ojekActivity.java
public void onResponse(Call<ResponseRoute> call, Response<ResponseRoute> response) {
if (response.isSuccessful()){
// tampung response ke variable
ResponseRoute dataDirection = response.body();
LegsItem dataLegs = dataDirection.getRoutes().get(0).getLegs().get(0);
// Dapatkan garis polyline
String polylinePoint = dataDirection.getRoutes().get(0).getOverviewPolyline().getPoints();
// Decode
List<LatLng> decodePath = PolyUtil.decode(polylinePoint);
// Gambar garis ke maps
mMap.addPolyline(new PolylineOptions().addAll(decodePath)
.width(8f).color(Color.argb(255, 56, 167, 252)))
.setGeodesic(true);
// Tambah Marker
mMap.addMarker(new MarkerOptions().position(pickUpLatLng).title("Lokasi Awal"));
mMap.addMarker(new MarkerOptions().position(locationLatLng).title("Lokasi Akhir"));
// Dapatkan jarak dan waktu
Distance dataDistance = dataLegs.getDistance();
Duration dataDuration = dataLegs.getDuration();
// Set Nilai Ke Widget
double price_per_meter = 250;
double priceTotal = dataDistance.getValue() * price_per_meter; // Jarak * harga permeter
tvDistance.setText(dataDistance.getText());
tvPrice.setText(String.valueOf(priceTotal));
/** START
* Logic untuk membuat layar berada ditengah2 dua koordinat
*/
LatLngBounds.Builder latLongBuilder = new LatLngBounds.Builder();
latLongBuilder.include(pickUpLatLng);
latLongBuilder.include(locationLatLng);
// Bounds Coordinata
LatLngBounds bounds = latLongBuilder.build();
int width = getResources().getDisplayMetrics().widthPixels;
int height = getResources().getDisplayMetrics().heightPixels;
int paddingMap = (int) (width * 0.2); //jarak dari
CameraUpdate cu = CameraUpdateFactory.newLatLngBounds(bounds, width, height, paddingMap);
mMap.animateCamera(cu);
/** END
* Logic untuk membuat layar berada ditengah2 dua koordinat
*/
// Tampilkan info panel
infoPanel.setVisibility(View.VISIBLE);
mMap.setPadding(10, 180, 10, 180);
}
}