将Firebase中的多个坐标添加到ArrayList中并创建折线

时间:2019-06-28 03:15:23

标签: java android firebase firebase-realtime-database polyline

如何使用polyline中的坐标存储从Firebase中绘制Firebase?我需要从Firebase获取多个坐标并将其插入ArrayList,然后绘制直线折线。

My firebase look like in the picture.

1 个答案:

答案 0 :(得分:0)

要使用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);