如何从Firebase提取位置数据到地图?

时间:2019-03-04 08:48:19

标签: android firebase firebase-realtime-database

我目前正在做一个有关位置跟踪应用程序的项目。它跟踪驾驶员的位置并将其显示给学生。因此,我在Firebase中制作了数据库,并将驱动程序的位置和基本数据存储到数据库中。现在,我想检索该位置坐标到学生界面。我想在学生活动中创建一个包含驾驶员身份的按钮,以便当学生单击它时,它会显示驾驶员的位置。我该怎么做?我可以在一个应用程序中完成全部操作,还是需要为学生制作另一个应用程序?帮我。谢谢This is driver location data

1 个答案:

答案 0 :(得分:0)

在我的情况下,这是我获取经纬度然后显示到Google Map的方法

 @Override
public void onMapReady(final GoogleMap googleMap) {
    // latitude and longitude

    FirebaseDatabase.getInstance().getReference().addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            DataSnapshot dataSnapshot1 = dataSnapshot.child("Checkin");
            Iterable<DataSnapshot> checkinchildren = dataSnapshot1.getChildren();
            for (DataSnapshot datasnapshotchekinchildren : checkinchildren){
                ChekinModel chekinModel = datasnapshotchekinchildren.getValue(ChekinModel.class);
                Log.e("latitude :", chekinModel.getLatitude());
                /*listlatitude.add(chekinModel.getLatitude());*/
                // create marker
                lat = Double.parseDouble(chekinModel.getLatitude());
                lng = Double.parseDouble(chekinModel.getLongitude());
                 title = chekinModel.getTime();
                uid = chekinModel.getUid();
                nama = chekinModel.getNama();

                latlngs.add(new LatLng(lat,lng));
                for (LatLng points : latlngs){
                    options.position(points);
                    options.title(""+nama+" at : "+title);
                    options.icon(BitmapDescriptorFactory
                            .defaultMarker(BitmapDescriptorFactory.HUE_RED));

                    googleMap.addMarker(options);

                }
                CameraPosition cameraPosition = new CameraPosition.Builder()
                        .target(new LatLng(lat, lng)).zoom(15).build();
                googleMap.animateCamera(CameraUpdateFactory
                        .newCameraPosition(cameraPosition));

                MapsInitializer.initialize(Objects.requireNonNull(getActivity()));
                mapView.onResume();









            }


        }

        @Override
        public void onCancelled(DatabaseError databaseError) {

        }
    });