So far the API has been great, but I'm having trouble trying to complete a feature in my app.
I create a service that runs an ExportTilesCacheTask on a time interval, the idea being that the app would automatically cache maps in the background so that the user still has a map available if they lose a data connection.
I have already accomplished caching in the maps fragment itself, however transferring this code into a service has caused problems.
I believe the culprit is either the Envelope or the SpatialReference that I am passing into the ExportTileCacheParameters instance.
Here is my code:
final ExportTileCacheTask tileTask = new ExportTileCacheTask(serviceURL, cred); Envelope extentToStore = new Envelope(); Location lastKnown; MainActivity.LocationServicesConnection locService = null; lastKnown = waitForLocation(locService); extentToStore.centerAt(new Point(lastKnown.getLatitude(), lastKnown.getLongitude()), 0.2, 0.2); ArcGISTiledMapServiceLayer layer = new ArcGISTiledMapServiceLayer(serviceURL, cred); ExportTileCacheParameters params = new ExportTileCacheParameters(false, 15, 19, extentToStore, layer.getSpatialReference()); createTileCache(params, tileTask, Environment.getExternalStorageDirectory().getPath() + DEFAULT_MAP_PATH);
I'm not sure if I'm correctly creating the Envelope or the SpatialReference. Pulling the SR from a layer seems hacky and inefficient.
In the logcat I first see a "FileNotFoundException" followed by errors in the callbacks from estimateTileCacheSize and generateTileCache.
This code works perfectly in my map fragment, so I have to think it's the Envelope or SR causing this. Anyone?