Android 如何使用XYTileSource设置osmdroid源
现在我有了一个代码,我使用osmdroid来显示我自己的离线地图,这些地图放在/osmdroid中 我想改变的另一个特别的东西是最小和最大缩放 ,现在我使用的这部分代码没有显示任何内容Android 如何使用XYTileSource设置osmdroid源,android,android-mapview,osmdroid,Android,Android Mapview,Osmdroid,现在我有了一个代码,我使用osmdroid来显示我自己的离线地图,这些地图放在/osmdroid中 我想改变的另一个特别的东西是最小和最大缩放 ,现在我使用的这部分代码没有显示任何内容 MapView mapview = (MapView) v.findViewById(R.id.mapview); mapview.setUseDataConnection(false); final ITileSource tileSource = new XYTileSource("maps", Resou
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有什么问题吗
提前感谢这是我在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/ms-base@GoogleMapsCompatible/");
//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" />
确保将最大缩放级别设置为适合您的磁贴源的任何级别:
mapView.setMaxZoomLevel(18);
您在/osmdroid中放置的磁贴是什么格式的(我假设它实际上是/sdcard/osmdroid/tiles?)它们是否在zip中?PNG?jpgs?它们是否位于名为“maps”的文件夹中(用于将第一个参数与XYTileSource匹配)?