2016-11-11 97 views
0

我在做什麼錯了?地圖不顯示。我添加庫:osmdroid-android-5.1和slf4j-android-1.6.1-RC1。我用脫機地圖製作了.zip。不顯示OpenStreetMap

Activity.java:

import android.location.Criteria; 
import android.location.Location; 
import android.location.LocationManager; 
import android.os.Bundle; 
import org.osmdroid.api.IMapController; 
import org.osmdroid.tileprovider.tilesource.TileSourceFactory; 
import org.osmdroid.util.GeoPoint; 
import org.osmdroid.views.MapView; 
import android.support.v7.app.AppCompatActivity; 
import android.support.v7.widget.Toolbar; 
import java.lang.String; 

public class MapsActivity extends AppCompatActivity { 
    private MapView mapView; 
    private int MAP_DEFAULT_ZOOM = 15; 
    private double MAP_DEFAULT_LATITUDE = 49.292192; 
    private double MAP_DEFAULT_LONGITUDE = 19.959055; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_maps); 
     Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 
     setSupportActionBar(toolbar); 

     mapView = (MapView) this.findViewById(R.id.mapview); 
     mapView.setBuiltInZoomControls(true); 
     mapView.setMultiTouchControls(true); 
     mapView.setClickable(true); 
     mapView.setUseDataConnection(false); 
     mapView.getController().setZoom(MAP_DEFAULT_ZOOM); 
     mapView.getController().setCenter(new GeoPoint(MAP_DEFAULT_LATITUDE, MAP_DEFAULT_LONGITUDE)); 
     mapView.setTileSource(TileSourceFactory.MAPNIK); 
    } 
} 

清單:

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.example.admin.tatry"> 

    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> 
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 
    <uses-permission android:name="android.permission.READ_INTERNAL_STORAGE" /> 
    <uses-permission android:name="android.permission.WRITE_INTERNAL_STORAGE" /> 
    <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.INTERNET" /> 

    <application 
     android:allowBackup="true" 
     android:icon="@mipmap/ic_launcher" 
     android:label="@string/app_name" 
     android:supportsRtl="true" 
     android:theme="@style/AppTheme"> 
     <activity 
      android:name=".StartActivity" 
      android:screenOrientation="portrait"> 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 
       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 
     <activity 
      android:name=".MapsActivity" 
      android:label="@string/title_activity_maps" 
      android:theme="@style/AppTheme.NoActionBar"></activity> 
     <supports-screens 
      android:anyDensity="true" 
      android:resizeable="false" 
      android:largeScreens="true" 
      android:normalScreens="true"/> 
    </application> 
</manifest> 

activity.xml:

<?xml version="1.0" encoding="utf-8"?> 
<android.support.design.widget.CoordinatorLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:fitsSystemWindows="true" 
    android:clickable="true" 
    tools:context="com.example.admin.tatry.MapsActivity"> 

    <org.osmdroid.views.MapView 
     android:id="@+id/mapview" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:clickable="true"> 
    </org.osmdroid.views.MapView> 

    <android.support.design.widget.AppBarLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:theme="@style/AppTheme.AppBarOverlay"> 

     <android.support.v7.widget.Toolbar 
      android:id="@+id/toolbar" 
      android:layout_width="match_parent" 
      android:layout_height="?attr/actionBarSize" 
      android:background="?attr/colorPrimary" 
      app:popupTheme="@style/AppTheme.PopupOverlay" /> 
    </android.support.design.widget.AppBarLayout> 

</android.support.design.widget.CoordinatorLayout> 

我還沒有發現在我的網上研究什麼。

我正在使用Android Studio。

+0

我建議使用MapBox。它使用OSM數據,使用Leaflet在Web站點上正常工作,並且Android SDK很好。我想使用OSM數據,搜索後發現MapBox是一個非常不錯的解決方案。 – Peter

回答

1

osmdroid不能正確呈現android studio的預覽模式的已知問題。這只是一個Android工作室的東西,它應該在5.6中修復。

另外,5.1在這一點上已經很老了,您可能要考慮使用新版本。