2015-05-15 24 views
0

我工作的OSMdroid庫,並想讓它offline所以我用這個代碼爲什麼osmdroid無法在離線模式下工作(多個問題)?

mMapView.setUseDataConnection(false); 

,但在這種情況下它甚至不會比顯示圖形頁面其他地圖。但是當我將boolean更改爲true時,它再次開始工作。

那麼我如何讓它完全脫機工作呢?

我也試圖讓poi,所以我有以下代碼但

geoPoint= new GeoPoint(37.439974,-119.003906); 
double north = 84; 
    double east = -180; 
    double south = -84; 
    double west = 180; 
    boundingBoxE6 = new BoundingBoxE6(north, east, south, west); 
    mMapView.setScrollableAreaLimit(boundingBoxE6); 
    mMapView.setMultiTouchControls(true); 
    Marker marker= new Marker(mMapView,mResourceProxy); 
    marker.setPosition(geoPoint); 
    mMapView.getOverlays().add(marker); 
    poiMarkers = new FolderOverlay(getActivity()); 
    new connection().execute(); 
    mMapView.invalidate(); 


public class connection extends AsyncTask{ 

    @Override 
    protected Object doInBackground(Object[] objects) { 
     NominatimPOIProvider poiProvider = new NominatimPOIProvider(); 
     pois=poiProvider.getPOICloseTo(geoPoint,"atm",50,1000); 
     return pois; 
    } 

    @Override 
    protected void onPostExecute(Object o) { 
     super.onPostExecute(o); 
     mMapView.getOverlays().add(poiMarkers); 
     Drawable poiIcon = getResources().getDrawable(R.drawable.marker_poi_default); 
     if (o != null) { 
      for (POI poi : pois) { 
       Marker poiMarker = new Marker(mMapView); 
       poiMarker.setTitle(poi.mType); 
       poiMarker.setSnippet(poi.mDescription); 
       poiMarker.setPosition(poi.mLocation); 
       poiMarker.setIcon(poiIcon); 
       poiMarkers.add(poiMarker); 
      } 
     }else{ 
      Toast.makeText(getActivity(),"null",Toast.LENGTH_SHORT).show(); 
     } 
    } 
} 

,而不是在給定的geopint得到poi我明白了別的地方,每次我的意思是無論什麼代碼我改變我不明白在比

http://nominatim.openstreetmap.org/search?format=json&q=[atm]&limit=50&bounded=1&viewbox=-1119.003906,1037.439974,880.996094,-962.560026 
以外的任何其他地方的 poi

是否可以在離線模式下訪問poi

+0

請不要一次詢問多個問題。你有離線[平鋪](https://wiki.openstreetmap.org/wiki/Tiles)嗎?沒有瓷磚,你不能用osmdroid顯示離線地圖。關於如何離線使用osmdroid,已經有很多問題和疑問,所以請在提問時提出具體問題。 – scai

回答

1

對於離線影像顯示,你確定你有存儲在/mnt/sdcard/osmdroid/離線地圖圖塊.ZIP-file(或者您的設備的SD卡的路徑是,它只是將這個文件夾內的一個名爲osmdroid子目錄)?

一個很好的教程,讓我可以在這裏找到:http://www.haakseth.com/?p=30

的OSMdroid TileSource會自動尋找這個.ZIP-file如果沒有互聯網連接,從獲取的瓷磚。在OpenStreetMapTileProviderConstants類有這樣一段代碼:

/** Base path for osmdroid files. Zip files are in this folder. */ 
public static final File OSMDROID_PATH = new File(Environment.getExternalStorageDirectory(), 
     "osmdroid"); 

因此,大家可以看到,你只需要擁有osmdroid -directory在你的SD卡的文件夾,一切都應該工作得很好。

如果您還沒有地圖瓷磚.ZIP,請查看Mobile Atlas Creator以創建此項。

相關問題