Я пытаюсь получить координаты в базе данных огня и нарисовать полилинию, чтобы показать ее на карте. В настоящее время на карте ничего не отображается.
Вот моя структура данных:
history
|- MXDFHE8877334 ------random run id
|- co-ordinates
|-0
| |-- latitude:-3.44444
| |-- longitude:-54.434343
|-1
| |-- latitude:-4.0444
| |-- longitude:-24.434343
|-2
| |-- latitude:-5.455459
| |-- longitude:-476.434343
|- distance:2323
|- timestamp:23233439
|- MX24343643232 ------random run id
|- co-ordinates
|-0
| |-- latitude:-3.44444
| |-- longitude:-54.434343
|-1
| |-- latitude:-4.0444
| |-- longitude:-24.434343
|-2
| |-- latitude:-5.455459
| |-- longitude:-476.434343
|-3
| |-- latitude:-3.74343
| |-- longitude:-76.434343
|- distance:1234
|- timestamp:9873489
Вот моя функция drawPolyline ():
private void drawPolyline(){
DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference uidRef = rootRef.child("history").child(runId).child("co-ordinates");
ValueEventListener valueEventListener = new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
PolylineOptions polylineOptions = new PolylineOptions();
polylineOptions.color(Color.RED);
polylineOptions.width(3);
for(DataSnapshot ds : dataSnapshot.child("co-ordinates").getChildren()) {
double latitude = ds.child("latitude").getValue(Double.class);
double longitude = ds.child("longitude").getValue(Double.class);
polylineOptions.add(new LatLng(latitude, longitude));
}
Polyline polyline = mMap.addPolyline(polylineOptions);
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
Log.d(TAG, databaseError.getMessage());
}
};
uidRef.addListenerForSingleValueEvent(valueEventListener);
}
Я не являюсь уверен, как исправить это так, чтобы он получил всю широту и долготу от точек (0,1,2,3,4,5 ...)
Заранее спасибо.