2012-12-27 18 views
7

chciałem wypróbować mając integrację OpenStreetMap przez osmdroid, ale utknąłem w kwestii, gdzie nie mam pojęcia, czego brakuje. Scenariusz jest następujący:osmdroid wyświetla pustą siatkę

Objaw: Mapa widget zostanie wyświetlona, ​​ale tylko z pustą siatką.

To jest w mojej klasie aktywny:

@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); 
} 

(Próbowałem wybierając różne TileSources pozornie bez różnicy)

My Manifest zawiera także uprawnienia (jako dziecko <manifest> po <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" /> 

... a mój emulator jest w inny sposób podłączony do Internetu, np. działają przeglądarki internetowe.

Osmdroid i slf4j znajdują się na ścieżce budowania. Aplikacja kompiluje się bez problemu i nie generuje żadnych wyjątków.

Co może być nie tak?

Wielkie dzięki!

rozwiązany: Było to spowodowane moim emulator nie mając zewnętrznej pamięci masowej do pamięci podręcznej map płytek.

+0

Korekta tekstu: Moja manifestacja obejmuje również te uprawnienia (jako element podrzędny dla [manifestu] po [uses-sdk]). – Peter

+0

Używam osmdroid 3.0.7 – Peter

+0

prawdopodobnie może mi pomóc również @Peter ... http://stackoverflow.com/questions/25460443/empty-osmdroid-map-where-to-custom-the- nowa-mapa – gumuruh

Odpowiedz

0

Jestem całkiem nowy OSMdroid zbyt ale spróbuj to zrobić?

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

Można by również mieć offline_map_activity.xml w swoim RES/układów:

<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> 

nadzieję, że to działa dla Ciebie. Przynajmniej ten pracował dla moich kodów :)

+2

Cześć! Dzięki za odpowiedź! Jednak pokazanie już pustej siatki mapy na pełnym ekranie potwierdza, że ​​mój problem nie dotyczy układu: setContentView (mapView) działa poprawnie. Ostatniej nocy uświadomiłem sobie, że to coś zupełnie innego: mój emulator nie miał zewnętrznej pamięci ... – Peter

+0

ah nie widzę nic dziwnego haha. Cieszę się, że dowiedziałeś się o problemie :) – lyk

+0

tak, @lyk, czy możesz mi pomóc? http://stackoverflow.com/questions/25460443/empty-osmdroid-map-where-to-custom-the-new-map – gumuruh

-1

I tink urządzenie ma nie robić SD. Zmieniono ścieżkę pamięci podręcznej: