Map cache done. Testing...

This commit is contained in:
crimean 2018-09-27 22:33:30 +03:00
parent 844d25452b
commit c013510f50
3 changed files with 24 additions and 6 deletions

View file

@ -117,7 +117,7 @@ public class NativeLibrary {
}
public boolean initMapFile(String filePath, boolean useLive) {
return initBinaryMapFile(filePath, useLive);
return initBinaryMapFile(filePath, useLive, false);
}
public boolean initCacheMapFile(String filePath) {
@ -160,7 +160,7 @@ public class NativeLibrary {
protected static native void deleteSearchResult(long searchResultHandle);
protected static native boolean initBinaryMapFile(String filePath, boolean useLive);
protected static native boolean initBinaryMapFile(String filePath, boolean useLive, boolean routingOnly);
protected static native boolean initCacheMapFiles(String filePath);

View file

@ -75,14 +75,23 @@ public class SampleApplication extends Application {
resourceManager = new ResourceManager(this);
regions = new OsmandRegions();
updateRegionVars();
indexRegionsBoundaries();
uiHandler = new Handler();
poiTypes = MapPoiTypes.getDefaultNoInit();
if(ContextCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE)
== PackageManager.PERMISSION_GRANTED) {
initPoiTypes();
new Thread(new Runnable() { //$NON-NLS-1$
@Override
public void run() {
try {
indexRegionsBoundaries();
initPoiTypes();
} finally {
//applicationBgInitializing = false;
}
}
}, "Initializing app").start();
}
// Initialize native core

View file

@ -4,6 +4,7 @@ package net.osmand.core.samples.android.sample1.resources;
import net.osmand.IndexConstants;
import net.osmand.ResultMatcher;
import net.osmand.binary.BinaryMapIndexReader;
import net.osmand.binary.CachedOsmandIndexes;
import net.osmand.core.samples.android.sample1.SampleApplication;
import net.osmand.core.samples.android.sample1.SampleUtils;
import net.osmand.data.Amenity;
@ -33,10 +34,18 @@ public class ResourceManager {
SampleUtils.collectFiles(appPath, IndexConstants.BINARY_MAP_INDEX_EXT, files);
SampleUtils.collectFiles(app.getAppPath(IndexConstants.WIKI_INDEX_DIR), IndexConstants.BINARY_MAP_INDEX_EXT, files);
CachedOsmandIndexes cachedOsmandIndexes = new CachedOsmandIndexes();
File indCache = app.getAppPath("ind_core.cache");
if (indCache.exists()) {
try {
cachedOsmandIndexes.readFromFile(indCache, CachedOsmandIndexes.VERSION);
} catch (Exception e) {
}
}
for (File f : files) {
try {
RandomAccessFile mf = new RandomAccessFile(f.getPath(), "r");
BinaryMapIndexReader reader = new BinaryMapIndexReader(mf, f);
BinaryMapIndexReader reader = cachedOsmandIndexes.getReader(f);
if (reader.containsPoiData()) {
amenityRepositories.put(f.getName(), new AmenityIndexRepositoryBinary(reader));
}