эй, я только новичок с точки зрения Android. Я попытался найти местоположение другого устройства и показал его на карте, прежде чем сохранить широту и продольное расстояние до Firebase. но когда я открываю карты, появляются только мое местоположение. Другие местоположения устройств не отображаются, в чем решение?
кнопка для ввода текущего пользователя lat lng
@Override
public void onClick(View v) {
fused.getLastLocation().addOnSuccessListener(new OnSuccessListener<Location>() {
@Override
public void onSuccess(Location location) {
lat.setText(String.valueOf(location.getLatitude()));
lont.setText(String.valueOf(location.getLongitude()));
String email = FirebaseAuth.getInstance().getCurrentUser().getEmail();
Intent map = new Intent(MainActivity.this, trackingMaps.class);
map.putExtra("email", email);
map.putExtra("lat", location.getLatitude());
map.putExtra("lnt", location.getLongitude());
startActivity(map);
}
});
}
});
это код для получения lat и lng. и сохраните в firebase
fused.getLastLocation().addOnSuccessListener(this, new OnSuccessListener<Location>() {
@Override
public void onSuccess(Location location) {
lat.setText(String.valueOf(location.getLatitude()));
lont.setText(String.valueOf(location.getLongitude()));
String latnya = lat.getText().toString().trim();
String lntnya = lont.getText().toString().trim();
String email = FirebaseAuth.getInstance().getCurrentUser().getEmail();
String uid = FirebaseAuth.getInstance().getCurrentUser().getUid();
tracking track = new tracking(email, lntnya, latnya, uid);
locationsDatabase.child("locations").setValue(track);
}
});
}
класс привязки
String email;
String lng;
String lat;
String uid;
public tracking () {
}
public tracking(String email, String lng, String lat, String uid) {
this.email = email;
this.lng = lng;
this.lat = lat;
this.uid = uid;
}
public void setEmail(String email) {
this.email = email;
}
public void setLng(String lng) {
this.lng = lng;
}
public void setLat(String lat) {
this.lat = lat;
}
public void setUid(String uid) {
this.uid = uid;
}
public String getEmail() {
return email;
}
public String getLng() {
return lng;
}
public String getLat() {
return lat;
}
public String getUid() {
return uid;
}
}
и это код для карты. и добавьте маркер
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_tracking_maps);
// Obtain the SupportMapFragment and get notified when the map is ready to be used.
SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager()
.findFragmentById(R.id.map);
mapFragment.getMapAsync(this);
firebaseAuth = FirebaseAuth.getInstance();
firebaseUser = firebaseAuth.getCurrentUser();
locationDatabase = FirebaseDatabase.getInstance().getReference(firebaseUser.getUid()).child("locations").child("email");
if (getIntent() != null) {
email = getIntent().getStringExtra("email");
lat = getIntent().getDoubleExtra("lat", 0);
lnt = getIntent().getDoubleExtra("lnt", 0);
}
if (!TextUtils.isEmpty(email)) {
loadLocationForThisUser();
}
}
private void loadLocationForThisUser() {
Query userLocation = locationDatabase.orderByChild("email").equalTo(email);
userLocation.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
for (DataSnapshot posSnapshot:dataSnapshot.getChildren()) {
tracking track = posSnapshot.getValue(tracking.class);
//add marker friend location
LatLng friendLocation = new LatLng(Double.parseDouble(track.getLat()),
Double.parseDouble(track.getLng()));
//create location from user coordinater
Location curent = new Location("");
curent.setLatitude(lat);
curent.setLongitude(lnt);
//create location from friend coordiates
Location friend = new Location("");
friend.setLatitude(Double.parseDouble(track.getLat()));
friend.setLongitude(Double.parseDouble(track.getLng()));
//clear all old marks
mMap.clear();
//create function calculete distance between location (fungsi meghitung jarak)
distance(curent, friend);
//add friend marker in map
mMap.addMarker(new MarkerOptions().position(friendLocation).title(track.getEmail())
.snippet("Distance" + new DecimalFormat("#.#").format(distance(curent, friend)))
.icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_BLUE)));
mMap.animateCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(lat, lnt), 12.0f));
}
//create marker for user
LatLng currentlatlng = new LatLng(lat, lnt);
mMap.addMarker(new MarkerOptions().position(currentlatlng).title(FirebaseAuth.getInstance().getCurrentUser()
.getEmail()));
mMap.animateCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(lat, lnt), 12.0f));
}
ошибки не появляются, но отмечают местоположение других устройств, не появляющихся. что нужно исправить? Я очень надеюсь, что вы, ребята, поможете мне. спасибо!