ThinkGeo.com    |     Documentation    |     Premium Support

Map overlay tile cache - stored where?

Hi,



I’m trying to utilize a time cache for my wms overlay in the app, so that the user can cache map tiles prior to going offline in a designated area.



I’m using the code below, which I thought would put the cached tiles in a sub folder (album?) in the images folder. But the tiles seem to be put into the main photo storage folder ?!?


WmsOverlay ortho = new WmsOverlay();
//…some setup of the overlay
string appName = this.Resources.GetString(Resource.String.ApplicationNameEng);
var _dir = new File(Android.OS.Environment.GetExternalStoragePublicDirectory(Android.OS.Environment.DirectoryPictures), “TileCache”);
if (!_dir.Exists()) { _dir.Mkdirs(); }
ortho.TileCache = new FileBitmapTileCache(_dir.Path + “/”, appName); // => …/TileCache/LifeTrees/…

What am I doing wrong here ? Is Android playing trick on me ? Please advise.


Hi Lars, 
  
 In Android we have two mode for Android. 
  
 1. ImageFile 
 2. SQLLite 
  
 We suggest to use SQLLite for cache, because if you put the tiles cache as image, the main photo storage maybe collect that and shows to let your photo folder looks bad, and it looks SQLLite have better performance. 
  
 And if you want to cache it as image, we suggest to put that in your SDCard, because the size will keep increase, so our default folder is SDCard. 
  
 Regards, 
  
 Don

Thanks Don.



When I look at the SqliteBitmapTileCache class constructor, there’s a “cacheId” parameter which defaults to a blank string.



Is this used to separate caching of separate layers in the same database, or does it have some other significance ?



Cheers.


Hi Lars, 
  
 The cacheid meant database name, if you use different cacheid, it will create separate databases. 
  
 Regards, 
  
 Don