public class SqliteArchiveTileWriter extends Object implements IFilesystemCache
IFilesystemCache
based on the original TileWriter. It writes tiles to a sqlite database.
It does NOT support expiration and provides more of a MOBAC like functionality (non-expiring file archives).
Uses the same schema as MOBAC osm sqlite and the DatabaseFileArchive
https://github.com/osmdroid/osmdroid/issues/348
SqlTileWriter
,
DatabaseFileArchive
Modifier and Type | Field and Description |
---|---|
(package private) SQLiteDatabase |
db |
(package private) File |
db_file |
(package private) static boolean |
hasInited |
(package private) int |
questimate |
Constructor and Description |
---|
SqliteArchiveTileWriter(String outputFile) |
Modifier and Type | Method and Description |
---|---|
boolean |
exists(ITileSource pTileSource,
long pMapTileIndex)
return true if the map file for download already exists
|
Long |
getExpirationTimestamp(ITileSource pTileSource,
long pMapTileIndex)
Gets the cache expiration timestamp of a tile
|
Cursor |
getTileCursor(String[] pPrimaryKeyParameters) |
Drawable |
loadTile(ITileSource pTileSource,
long pMapTileIndex)
Gets the tile drawable
|
void |
onDetach()
Used when the map engine is shutdown, use it to perform any clean up activities and to terminate
any background threads
|
boolean |
remove(ITileSource tileSource,
long pMapTileIndex)
Removes a tile from the cache, see issue
https://github.com/osmdroid/osmdroid/issues/426
|
boolean |
saveFile(ITileSource pTileSourceInfo,
long pMapTileIndex,
InputStream pStream,
Long pExpirationTime)
Save an InputStream as the specified tile in the file system cache for the specified tile
source.
|
final File db_file
final SQLiteDatabase db
final int questimate
static boolean hasInited
public boolean saveFile(ITileSource pTileSourceInfo, long pMapTileIndex, InputStream pStream, Long pExpirationTime)
IFilesystemCache
saveFile
in interface IFilesystemCache
pTileSourceInfo
- a tile sourcepMapTileIndex
- a tilepStream
- an InputStreampublic boolean exists(ITileSource pTileSource, long pMapTileIndex)
IFilesystemCache
exists
in interface IFilesystemCache
public void onDetach()
IFilesystemCache
onDetach
in interface IFilesystemCache
public boolean remove(ITileSource tileSource, long pMapTileIndex)
IFilesystemCache
remove
in interface IFilesystemCache
public Long getExpirationTimestamp(ITileSource pTileSource, long pMapTileIndex)
IFilesystemCache
getExpirationTimestamp
in interface IFilesystemCache
public Cursor getTileCursor(String[] pPrimaryKeyParameters)
pPrimaryKeyParameters
- public Drawable loadTile(ITileSource pTileSource, long pMapTileIndex) throws Exception
IFilesystemCache
loadTile
in interface IFilesystemCache
Exception