如何在Firebase数据库中绘制Google地图上的多个标记?

时间:2017-05-25 08:16:52

标签: android google-maps firebase-realtime-database google-maps-markers

我正在尝试从Firebase数据库中获取坐标,并在Google地图上绘制标记。

这是我目前在Google地图上的代码:

 mDatabase= FirebaseDatabase.getInstance().getReference().child("Markers");
 mDatabase.addListenerForSingleValueEvent(new ValueEventListener(){
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {


            String alatLng= (String) dataSnapshot.child("coordinates").getValue();


            String[] blatLng = alatLng.split(",");

            double blatitude = Double.parseDouble(blatLng[0]);
            double blongitude = Double.parseDouble(blatLng[1]);

            LatLng clatLng = new LatLng(
                    blatitude,
                    blongitude
            );




            mMap.addMarker(new MarkerOptions()
                    .position(clatLng)
                    .icon(BitmapDescriptorFactory.fromResource(R.drawable.marker7)));

        }

        @Override
        public void onCancelled(DatabaseError databaseError) {

        }
    });

我的数据库如下所示:

Markers
 -UID
     coordinates: ("55,55")
 -UID2
     coordinates:("66,66")

我的坐标值在每个用户的uid下面。 我相信它不起作用,因为坐标值在另一个孩子下面,但我不确定。可以使用帮助,谢谢

1 个答案:

答案 0 :(得分:0)

  Lat = (String) dataSnapshot.child("Latitude").getValue().toString();
longi = (String) dataSnapshot.child("Longitude").getValue().toString();
Toast.makeText(getApplicationContext(), Lat + longi, Toast.LENGTH_SHORT).show();
m2=  mMap.addMarker(new MarkerOptions().position(new LatLng(Double.parseDouble(Lat),Double.parseDouble(longi))).title("My Location"));
mMap.setMaxZoomPreference(20);
LatLng latLng = new LatLng(Double.parseDouble(Lat), Double.parseDouble(longi));
mMap.moveCamera(CameraUpdateFactory.newLatLng(latLng));