1

我试图从Firebase数据库中抓取坐标,并在Google地图上绘制标记。如何从Firebase数据库在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下。 我相信这不起作用,因为坐标值是在另一个孩子的下面,但我不确定。可以使用帮助,感谢

回答

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)); 
+0

做这样的事情,它正在般的魅力对我来说,我有一个名为设备名称火力节点,有两个孩子纬度和经度 –

相关问题