У меня есть узел (доступные драйверы) в базе данных firebase, в котором для каждого драйвера есть узел геолокации и узел трека.Я хочу указать цвет маркера на карте в зависимости от значения «дорожки»
Я попытался добавить слушателя для driversAvailableDatabaseref
@Override
public void onKeyEntered(final String key, final GeoLocation location) {
driversAvailableDatabaseRef.child(key).child(getString(R.string.track)).addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
try {
String track = "default";
track = dataSnapshot.getValue(String.class);
Marker marker;
MarkerOptions markerOptions = new MarkerOptions().position(new LatLng(location.latitude, location.longitude));
if (track.equals(getString(R.string.green))) {
// Bitmap greenBusIcon = BitmapFactory.decodeResource(getResources(), R.drawable.green_bus);
marker = mMap.addMarker(markerOptions.icon(bitmapDescriptorFromVector(StudentMapsActivity.this, R.drawable.green_bus)));
} else if (track.equals(getString(R.string.red))) {
// Bitmap redBusIcon = BitmapFactory.decodeResource(getResources(), R.drawable.red_bus);
marker = mMap.addMarker(markerOptions.icon(bitmapDescriptorFromVector(StudentMapsActivity.this, R.drawable.red_bus)));
} else {
marker = mMap.addMarker(markerOptions.icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_BLUE)));
}
markers.put(key, marker);
} catch (NullPointerException e) {
Toast.makeText(StudentMapsActivity.this, "No drivers available", Toast.LENGTH_SHORT).show();
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
Этот код показывает только тост«Драйверы недоступны», хотя в данный момент в них есть драйверы.
Я попробовал этот код
@Override
public void onKeyEntered(final String key, final GeoLocation location) {
Marker marker;
MarkerOptions markerOptions = new MarkerOptions().position(new LatLng(location.latitude, location.longitude));
marker = mMap.addMarker(markerOptions.icon(BitmapDescriptorFactory
.defaultMarker(BitmapDescriptorFactory.HUE_GREEN)));
markers.put(key, marker);
Это работает нормально, но не показывает разные цвета в зависимости от дорожки
https://ibb.co/Y77HWqt
(Вы можете заметить, что трек также меняется в реальном времени, что я не хочу, если бы вы могли помочь в этом тоже)