Kkk.
Kkk.

Reputation: 1

Java android Open Street map doesn't display map

I have some problem on API 22 it works good but on API 23 I don't see a map, I can only see a marker which I put. On old version of android it works.

In log i have :

Thread-27428(ApacheHTTPLog):isSBSettingEnabled false
Thread-27428(ApacheHTTPLog):isShipBuild true
Thread-27428(ApacheHTTPLog):getDebugLevel 0x4f4c
Thread-27428(ApacheHTTPLog):Smart Bonding Setting is false
Thread-27428(ApacheHTTPLog):SmartBonding Setting is false, SHIP_BUILD is true, log to file is false, DBG is false, DEBUG_LEVEL (1-LOW, 2-MID, 3-HIGH) is 1

AndroidOpenStreetMapViewActivity.java

public class AndroidOpenStreetMapViewActivity extends Activity {

    private MapView myOpenMapView;
    private MapController myMapController;

    ArrayList<OverlayItem> anotherOverlayItemArray;

    /**
     * Called when the activity is first created.
     */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        myOpenMapView = (MapView) findViewById(R.id.openmapview);
        myOpenMapView.setBuiltInZoomControls(true);
        myMapController = (MapController) myOpenMapView.getController();
        myMapController.setZoom(2);
            //--- Create Another Overlay for multi marker
        anotherOverlayItemArray = new ArrayList<>();
        anotherOverlayItemArray.add(new OverlayItem(
                "0, 0", "0, 0", new GeoPoint(0, 0)));
        anotherOverlayItemArray.add(new OverlayItem(
                "US", "US", new GeoPoint(38.883333, -77.016667)));
        anotherOverlayItemArray.add(new OverlayItem(
                "China", "China", new GeoPoint(39.916667, 116.383333)));
        anotherOverlayItemArray.add(new OverlayItem(
                "United Kingdom", "United Kingdom", new GeoPoint(51.5, -0.116667)));
        anotherOverlayItemArray.add(new OverlayItem(
                "Germany", "Germany", new GeoPoint(52.516667, 13.383333)));
        anotherOverlayItemArray.add(new OverlayItem(
                "Korea", "Korea", new GeoPoint(38.316667, 127.233333)));
        anotherOverlayItemArray.add(new OverlayItem(
                "India", "India", new GeoPoint(28.613333, 77.208333)));
        anotherOverlayItemArray.add(new OverlayItem(
                "Russia", "Russia", new GeoPoint(55.75, 37.616667)));
        anotherOverlayItemArray.add(new OverlayItem(
                "France", "France", new GeoPoint(48.856667, 2.350833)));
        anotherOverlayItemArray.add(new OverlayItem(
                "Canada", "Canada", new GeoPoint(45.4, -75.666667)));

        ItemizedIconOverlay<OverlayItem> anotherItemizedIconOverlay
                = new ItemizedIconOverlay<OverlayItem>(
                this, anotherOverlayItemArray, null);
        myOpenMapView.getOverlays().add(anotherItemizedIconOverlay);
        //---

        //Add Scale Bar
        ScaleBarOverlay myScaleBarOverlay = new ScaleBarOverlay(this);
        myOpenMapView.getOverlays().add(myScaleBarOverlay);
    }
}

Upvotes: 0

Views: 570

Answers (2)

spy
spy

Reputation: 3258

You probably need to request runtime permissions from the user if the target API is 23 or higher. See the sample osmdroid app for an example doing so here

https://github.com/osmdroid/osmdroid/blob/master/OpenStreetMapViewer/src/main/java/org/osmdroid/intro/PermissionsFragment.java

or readthe android guide here on this here https://developer.android.com/training/permissions/requesting.html

Upvotes: 1

Kkk.
Kkk.

Reputation: 1

I add check WRITE_EXTERNAL_STORAGE when I agree it works good

Upvotes: 1

Related Questions