2012-11-19 89 views
1

現在,我一直在使用osmdroid顯示其放置在/ osmdroid 其他特別的東西我嘗試改變的是最小和最大變焦 ,現在的IM我自己的離線地圖這我是一個代碼設置osmdroid源使用這部分代碼,其顯示沒有如何使用XYTileSource

MapView mapview = (MapView) v.findViewById(R.id.mapview); 
mapview.setUseDataConnection(false); 
final ITileSource tileSource = new XYTileSource("maps", ResourceProxy.string.mapnik, 18, 21, 256, ".png", 
     "http://tile.openstreetmap.org/"); 

mapview.setBuiltInZoomControls(true); 
mapview.setTileSource(tileSource); 

然而,當我設置

setTileSource(TileSourceFactory.MAPNIK) 

我的離線地圖正常工作,但限制在縮放

我的XYTileSource有什麼問題嗎?

在此先感謝

+0

什麼格式是您放置在瓷磚/ osmdroid(我假設它實際上是/ sdcard/osmdroid/tiles?)他們在一個zip? PNG圖片? JPG格式?他們是否在名爲「地圖」的文件夾中(以將您的第一個參數與XYTileSource相匹配)? –

回答

2

這是我在osmdroid xytilesource的工作代碼。希望對某人有所幫助。

@Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     MapView mapView = (MapView) findViewById(R.id.mapview); 
     mapView.setBuiltInZoomControls(true); 

     mapView.getController().setZoom(5); 
     GeoPoint point = new LatLonPoint(6.83917,79.91455); 
     //mapView.getController().setCenter(new GeoPoint(51500000, 5400000)); 
     mapView.getController().setCenter(point); 
     final MapTileProviderBasic tileProvider = new MapTileProviderBasic(getApplicationContext()); 
     final ITileSource tileSource = new XYTileSource("SomeName", null, 3,14, 256, ".png", 
         "http://192.168.1.5/mapcache/tms/1.0.0/[email protected]/"); 
     //mapView.setTileSource((new XYTileSource("localMapnik", Resource, 0, 18, 256, ".png", 
      // "http://tile.openstreetmap.org/"))); 
     tileProvider.setTileSource(tileSource); 
     final TilesOverlay tilesOverlay = new TilesOverlay(tileProvider, this.getBaseContext()); 
     mapView.getOverlays().add(tilesOverlay); 

    } 

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     // Inflate the menu; this adds items to the action bar if it is present. 
     getMenuInflater().inflate(R.menu.main, menu); 
     return true; 
    } 

    private static final class LatLonPoint extends GeoPoint { 
     public LatLonPoint(double latitude, double longitude) { 
      super((int) (latitude * 1E6), (int) (longitude * 1E6)); 
     } 
    } 

版式文件應包括

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

確保您設定的最高縮放級別,以任何適合你的瓷磚來源:

mapView.setMaxZoomLevel(18);