Моя osmdroid
карта отображает только пустую сетку, почему это так?
Я искал некоторые из тех же вопросов здесь и пробовал, но яне могу решить мою проблему. Я прочитал osmdroid
необходимо разрешение для SDCard / внешнего хранилища. Могу ли я не использовать это? потому что мое устройство не поддерживает внешнее хранилище или SDCard.
Это мой код
super.onCreate(savedInstanceState);
Context context = getApplicationContext();
Configuration.getInstance().load(context, PreferenceManager.getDefaultSharedPreferences(context));
//Mapbox.getInstance(directmap.this, getString(R.string.access_token));
IConfigurationProvider provider = Configuration.getInstance();
File basePath = new File(getCacheDir().getAbsolutePath(), "osmdroid");
//provider.setUserAgentValue(BuildConfig.APPLICATION_ID);
provider.setOsmdroidBasePath(basePath);
File tileCache = new File(provider.getOsmdroidBasePath().getAbsolutePath(), "tile");
provider.setOsmdroidTileCache(tileCache);
setContentView(R.layout.activity_directmap);
ButterKnife.bind(this);
final Context context1 = getApplicationContext();
Configuration.getInstance().load(context1, PreferenceManager.getDefaultSharedPreferences(context1));
Configuration.getInstance().setUserAgentValue(BuildConfig.APPLICATION_ID);
mapView = findViewById(R.id.mapViewosm);
mapView.setTileSource(TileSourceFactory.MAPNIK);
mapView.setMultiTouchControls(true);
mapView.setBuiltInZoomControls(true);
// mapView = (MapView) findViewById (R.id.mapViewosm);
// button = (Button) findViewById(R.id.startButton);
roadManager = new GraphHopperRoadManager(getString(R.string.apikey), true);
manager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);
Objects.requireNonNull(getSupportActionBar()).setDisplayHomeAsUpEnabled(true);
route.setOnClickListener(this);
//mapView.onCre(savedInstanceState);
//mapView.getMapAsync(this);
startIcon = BitmapFactory.decodeResource(context.getResources(), R.drawable.ic_mark);
//ambil lokasi pendonatur
lat = -5.402213; //getIntent().getDoubleExtra("latitude", 0);,
lng = 105.264113;//getIntent().getDoubleExtra("longitude", 0);
setupOverlay();
setupMap();
addMarker();
}
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Context context = getApplicationContext();
Configuration.getInstance().load(context, PreferenceManager.getDefaultSharedPreferences(context));
//Mapbox.getInstance(directmap.this, getString(R.string.access_token));
IConfigurationProvider provider = Configuration.getInstance();
File basePath = new File(getCacheDir().getAbsolutePath(), "osmdroid");
//provider.setUserAgentValue(BuildConfig.APPLICATION_ID);
provider.setOsmdroidBasePath(basePath);
File tileCache = new File(provider.getOsmdroidBasePath().getAbsolutePath(), "tile");
provider.setOsmdroidTileCache(tileCache);
setContentView(R.layout.activity_directmap);
ButterKnife.bind(this);
final Context context1 = getApplicationContext();
Configuration.getInstance().load(context1, PreferenceManager.getDefaultSharedPreferences(context1));
Configuration.getInstance().setUserAgentValue(BuildConfig.APPLICATION_ID);
mapView = findViewById(R.id.mapViewosm);
mapView.setTileSource(TileSourceFactory.MAPNIK);
mapView.setMultiTouchControls(true);
mapView.setBuiltInZoomControls(true);
// mapView = (MapView) findViewById (R.id.mapViewosm);
// button = (Button) findViewById(R.id.startButton);
roadManager = new GraphHopperRoadManager(getString(R.string.apikey), true);
manager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);
Objects.requireNonNull(getSupportActionBar()).setDisplayHomeAsUpEnabled(true);
route.setOnClickListener(this);
//mapView.onCre(savedInstanceState);
//mapView.getMapAsync(this);
startIcon = BitmapFactory.decodeResource(context.getResources(), R.drawable.ic_mark);
//ambil lokasi pendonatur
lat = -5.402213; //getIntent().getDoubleExtra("latitude", 0);,
lng = 105.264113;//getIntent().getDoubleExtra("longitude", 0);
setupOverlay();
setupMap();
addMarker();
}
private void setupMap() {
// setting tile map
// mapController = mapView.getController();
BingMapTileSource.setBingKey(getString(R.string.bingkey));
BingMapTileSource bingMap = new BingMapTileSource(null);
bingMap.setStyle(BingMapTileSource.IMAGERYSET_ROAD);
// menambah overlay ke dalam map
mapView.getOverlays().add(rotationGestureOverlay);
mapView.getOverlays().add(compassOverlay);
mapView.getOverlays().add(myLocationNewOverlay);
mapView.getOverlays().add(roadNodeMarkers);
//setting mapView
mapView.setTileSource(bingMap);
mapView.setTilesScaledToDpi(true);
mapView.setMinZoomLevel(1.0);
mapView.setMaxZoomLevel(21.0);
mapView.setMultiTouchControls(true);
mapView.setUseDataConnection(true);
mapView.getZoomController().setVisibility(CustomZoomButtonsController.Visibility.NEVER);
mapController.animateTo(new GeoPoint(-5.402213, 105.264093));
}
private void addMarker() {
Marker destMarker = new Marker(mapView);
destPoint = new GeoPoint(lat, lng);
destMarker.setPosition(destPoint);
destMarker.setTitle(getIntent().getStringExtra("title"));
destMarker.setSubDescription(getIntent().getStringExtra("username"));
destMarker.setIcon(getDrawable(R.drawable.ic_mark));
mapView.getOverlays().add(destMarker);
mapView.invalidate();
}
А это мой манифест
-->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.FOREGROUND_SERVICE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
Как мне решить эту проблему?