我正在尝试从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下面。 我相信它不起作用,因为坐标值在另一个孩子下面,但我不确定。可以使用帮助,谢谢
答案 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));