Я пытаюсь отобразить маркеры в моем фрагменте Google Maps для приложения Android. У меня есть база данных SQLite, из которой я получаю информацию асинхронно, чтобы затем отображать маркеры. Однако маркеры никогда не отображаются, и в журналах отсутствуют сообщения об ошибках.
Моя основная активность с фрагментом Карт Google:
public class MainActivity extends AppCompatActivity implements OnMapReadyCallback {
private static Context context;
private MapViewModel mapViewModel;
private GoogleMap mMap;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
context = this;
mapViewModel = new ViewModelProvider(this).get(MapViewModel.class);
MapFragment mapFragment = (MapFragment) getFragmentManager().findFragmentById(R.id.map);
mapFragment.getMapAsync(this);
}
@Override
public void onMapReady(GoogleMap map) {
this.mMap = map;
mMap.setMapType(GoogleMap.MAP_TYPE_NORMAL);
fetchAllStops();
// LatLng position = new LatLng(33.75263595581055, -84.41776275634766);
// MarkerOptions options = new MarkerOptions().position(position).title("TEST");
// if (mMap != null) {
// Marker m = mMap.addMarker(options);
// Log.d("MARKER", m + "");
// }
}
private void fetchAllStops() {
CompletableFuture<List<Stop>> listOfStops;
listOfStops = mapViewModel.getAllStops();
listOfStops.thenAccept(data -> {
for (Stop stop : data) {
displayStop(stop);
}
});
}
private void displayStop(Stop stop) {
LatLng position = new LatLng(33.75263595581055, -84.41776275634766);
Log.d("STOP", "STOP: " + stop.stopName + " LAT: " + stop.lat + " LON: " + stop.lon);
Log.d("MARKER", position + "");
MarkerOptions options = new MarkerOptions().position(position).title("TEST");
mMap.setMapType(GoogleMap.MAP_TYPE_SATELLITE);
if (mMap != null) {
Marker m = mMap.addMarker(options);
Log.d("MARKER", m + "");
}
Log.d("STOP", "Added stop marker.");
}
Когда я добавляю тестовый маркер в функцию onMapReady , это работает хорошо. Ошибка возникает в функции displayStop. Журналы после маркера m = mMap.addMarker (параметры) никогда не запускаются, поэтому я предполагаю, что с этим есть проблема.