2012-12-27 7 views
7

Ich wollte OpenStreetMap Integration von Osmdroid testen, aber ich blieb bei einem Problem stecken, wo ich keine Ahnung habe, was fehlt. Das Szenario lautet wie folgt:Osmdroid zeigt ein leeres Gitter an

Symptom: Kartenwidget wird nur mit einem leeren Raster angezeigt.

Dies ist in meiner Aktivitätsklasse:

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    MapView mapView = new MapView(this, 256); 
    mapView.setTileSource(TileSourceFactory.MAPNIK); 
    mapView.setClickable(true); 
    mapView.setBuiltInZoomControls(true); 
    setContentView(mapView); 
} 

(ich verschiedene TileSources mit scheinbar keinen Unterschied versucht Auswahl)

Mein Manifest enthält auch diese Berechtigungen (als Kind von <manifest> nach <uses-sdk>) :

<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> 
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> 
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> 
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
<uses-permission android:name="android.permission.INTERNET" /> 
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 

... und mein Emulator ist ansonsten mit dem Internet verbunden, z. Webbrowser funktionieren.

Osmdroid und Slf4j sind im Build-Pfad. Die App kompiliert ohne Probleme und generiert keine Ausnahmen.

Was könnte falsch sein?

Vielen Dank!

Gelöst: Dies wurde verursacht, weil mein Emulator keinen externen Speicher zum Zwischenspeichern von Kartenkacheln hat.

+0

Textkorrektur: Mein Manifest enthält auch diese Berechtigungen (als Kind von [Manifest], nach [uses-sdk]). – Peter

+0

Ich benutze osmdroid 3.0.7 – Peter

+0

wahrscheinlich könnten Sie mir auch @Peter helfen, ... http://stackoverflow.com/questions/25460443/empty-osmdroid-map-where-to-custom-the- neue Karte – gumuruh

Antwort

0

Ich bin auch ziemlich neu bei OSMdroid, aber versuchen Sie das?

setContentView(R.layout.offline_map_activity); 
mapView = (MapView) findViewById(R.id.openmapview); 

Sie würden auch offline_map_activity.xml in Ihrer res/Layouts haben müssen:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:orientation="vertical" > 

    <org.osmdroid.views.MapView 
     android:id="@+id/openmapview" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent"/> 
</LinearLayout> 

Hope this für Sie arbeitet. Zumindest funktionierte das für meine Codes :)

+2

Hallo! Danke für deine Antwort! Die Tatsache, dass ein leeres Vollbild-Kartenraster bereits angezeigt wurde, bestätigt jedoch, dass mein Problem nicht layoutbezogen ist: setContentView (mapView) hat korrekt funktioniert. Letzte Nacht wurde mir klar, dass es etwas völlig anderes war: mein Emulator hatte keinen externen Speicher ... – Peter

+0

ah ich sehe kein Wunder, haha. froh, dass du das Problem herausgefunden hast :) – lyk

+0

sowieso, @lyk, könntest du mir auch helfen? http://stackoverflow.com/questions/25460443/empty-osmdroid-map-where-to-custom-the-new-map – gumuruh

-1

ich habe ein Gerät, das nicht SD hat. Sie haben den Cache-Pfad geändert