Tatsächliche Antwort, wenn keine Kacheln in .zip vorhanden sind, werden keine Kacheln in der Zoomstufe des Objekts angezeigt.
Aber wenn Sie bereits Kacheln von niedrigeren Zoomstufe gezeigt haben - ja, Sie können es versuchen!
Es ist eine Methode, die Sie mit Ihrem eigenen
map.getTileProvider().rescaleCache({some parameters olso is here});
Eine andere, vielleicht nicht so einfach Entscheidung versuchen kann, ist unten beschrieben.
Es sieht aus wie Sie `re mit einfachen Ansatz wie:
XYTileSource tileSource = new XYTileSource("map",
MIN_ZOOM_LEVEL, MAX_ZOOM_LEVEL, 256, ".png", new String[]{});
map.setTileSource(tileSource);
Sie können jedoch auf die Schritte gehen, die komplizierter sind:
XYTileSource tileSource = new XYTileSource("map",
MIN_ZOOM_LEVEL, MAX_ZOOM_LEVEL,256, ".png", new String[]{});
SimpleRegisterReceiver simpleRegisterReceiver =
new SimpleRegisterReceiver(getContext());
MapTileModuleProviderBase[] mapTileModuleProviderBases =
new MapTileModuleProviderBase[1];
mapTileModuleProviderBases[0] =
new MyMapTileFileArchiveProvider(simpleRegisterReceiver,
tileSource, mapArchiveFiles);
//mapArchiveFiles - your Array of IArchiveFile
//IArchiveFile iArchiveFile = ArchiveFileFactory.getArchiveFile(file);
//file - your .zip
MapTileProviderArray mapTileProviderArray =
new MapTileProviderArray(tileSource,
simpleRegisterReceiver, mapTileModuleProviderBases);
map.setTileProvider(mapTileProviderArray);
Frage - was ist ein MyMapTileFileArchiveProvider Klasse? Es ist nicht nur Unterklasse von MapTileFileArchiveProvider aber beide haben gemeinsames parent:
public class MyMapTileFileArchiveProvider extends MapTileFileStorageProviderBase {}
An diesem Punkt, Sie sind von MapTileFileArchiveProvider Klasse zu Ihrer eigenen Klasse copy-paste Standardimplementierung gern gesehen, und für diese Methode aussehen:
private synchronized InputStream getInputStream(final MapTile pTile,
final ITileSource tileSource) {
for (final IArchiveFile archiveFile : mArchiveFiles) {
if (archiveFile!=null) {final InputStream in =
archiveFile.getInputStream(tileSource, pTile);
if (in != null) {
if (Configuration.getInstance().isDebugMode()) {
Log.d(IMapView.LOGTAG, "Found tile " + pTile + " in " + archiveFile);
}
return in;
}
}
}
//Good place for your logic (as we call it - crutch)
//to look for available tiles for subject area on lower zoom level
//Do not surrender before return null!
return null;
}
Vielen Dank für Aufmerksamkeit :)
Loaded Karte von Cache-Daten ist und die verbleibenden Laden wird nicht als Datenverbindung ausgeschaltet ist, Annahme nach Ihrem Screenshot. Haben Sie Internet-Berechtigungen in der Manifest-Datei? –
Ok, wenn ich keine Verbindung zum Internet habe, wird es niemals aufgeladen ?? – marioerro
Wie würden Sie erwarten, dass die Karte geladen wird, wenn Sie kein Internet haben? Sie können Offline-KML-Dateien verwenden, um die Karte ohne das Internet zu laden, bis das Internet ein Muss ist, um die Karte zu laden. –