карта не видна в OpenStreetMap (osm) - PullRequest
0 голосов
/ 25 марта 2020

Моя цель - создать простое приложение для android. Приложению требуются картографические данные из OpenStreetMap (OSM). Я принял решение использовать osmdroid для своего маленького проекта. и теперь я близок к результату, который хочу увидеть, есть только одна небольшая трудность для меня. Если я попытаюсь запустить приложение сейчас, нет ошибок (исключений или ошибок), но, к сожалению, я не вижу карту:

empty osm view

Мои предположения в том, что моя командная строка в классе @Override public void onCreate() необходима. но если я удаляю командную строку и превращаю ее в «реальный код», возникает ошибка с методом getInstance().load(...), поэтому я думаю, что с моим классом Configuration что-то не так. мой код не предлагает найти / удалить ошибку

, которая является моей MainActivity. java класс:


import org.osmdroid.tileprovider.tilesource.TileSourceFactory;
import org.osmdroid.views.MapView;

import android.app.Activity;
import android.content.Context;
import android.content.res.Configuration;
import android.os.Bundle;
import android.preference.PreferenceManager;

import org.osmdroid.views.MapView;

public class MainActivity extends Activity {

    MapView map = null;
    @Override public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        Context ctx = getApplicationContext();
        //Configuration.getInstance().load(ctx, PreferenceManager.getDefaultSharedPreferences(ctx));

        setContentView(R.layout.activity_main);

        map = (MapView) findViewById(R.id.map);
        map.setTileSource(TileSourceFactory.MAPNIK);
    }

    public void onResume(){
        super.onResume();
        map.onResume();
    }

    public void onPause(){
        super.onPause();
        map.onPause();
    }

}```

1 Ответ

1 голос
/ 28 марта 2020

Я нашел ответчик сам. Ошибка была неправильным ввозом. import android.content.res.Configuration; Это правильный вариант: import org.osmdroid.config.Configuration; мой фактический mainActivity теперь выглядит следующим образом:


import org.osmdroid.api.IMapController;
import org.osmdroid.tileprovider.tilesource.TileSourceFactory;
import org.osmdroid.util.GeoPoint;
import org.osmdroid.views.MapView;

import android.app.Activity;
import android.content.Context;
import org.osmdroid.config.Configuration;
import android.os.Bundle;
import android.preference.PreferenceManager;


public class MainActivity extends Activity {

    MapView map = null;
    @Override public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        Context ctx = getApplicationContext();

        Configuration.getInstance().load(ctx, PreferenceManager.getDefaultSharedPreferences(ctx));


        setContentView(R.layout.activity_main);

        map = (MapView) findViewById(R.id.map);
        map.setTileSource(TileSourceFactory.MAPNIK);

        map.setBuiltInZoomControls(true);
        map.setMultiTouchControls(true);



        IMapController mapController = map.getController();
        mapController.setZoom(13);

        GeoPoint startPoint = new GeoPoint(52.516181, 13.376935);
        mapController.setCenter(startPoint);
    }

    public void onResume(){
        super.onResume();
        map.onResume();
    }

    public void onPause(){
        super.onPause();
        map.onPause();
    }



}```
...