Карты Google Android - маркер не отображается - PullRequest
0 голосов
/ 28 февраля 2020

Я пытаюсь отобразить маркеры в моем фрагменте 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 (параметры) никогда не запускаются, поэтому я предполагаю, что с этим есть проблема.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...