将来自 Firebase 的多个坐标添加到 ArrayList 中并创建多段线
Adding multiple coordinate from Firebase into ArrayList and create polyline
如何使用 Firebase
中的坐标存储从 Firebase
绘制 polyline
?我需要从 Firebase
中获取多个坐标并插入到 ArrayList
中,然后绘制直线折线。
要使用 Firebase 数据库中的坐标绘制折线,请使用以下代码行:
String uid = FirebaseAuth.getInstance().getCurrentUser().getUid();
DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference uidRef = rootRef.child("Users").child(uid);
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.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()); //Don't ignore errors!
}
};
uidRef.addListenerForSingleValueEvent(valueEventListener);
如何使用 Firebase
中的坐标存储从 Firebase
绘制 polyline
?我需要从 Firebase
中获取多个坐标并插入到 ArrayList
中,然后绘制直线折线。
要使用 Firebase 数据库中的坐标绘制折线,请使用以下代码行:
String uid = FirebaseAuth.getInstance().getCurrentUser().getUid();
DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference uidRef = rootRef.child("Users").child(uid);
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.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()); //Don't ignore errors!
}
};
uidRef.addListenerForSingleValueEvent(valueEventListener);