我對Xamarin Android使用.Net運行時sdk(v.100)。我正嘗試下載瓷磚作爲.tpk供我的移動應用程序離線使用。如何使用ArcGIS.net正確設置ExportTileCacheJob運行時sdk
我設法使用AuthenticationManager爲我的應用程序提供一個令牌。我可以成功創建ExportTileCacheTask,並通過調用ExportTileCacheTask上的ExportTileCache來創建ExportTileCacheJob,但作業的狀態似乎永遠不會改變。在調用ExportTileCache後立即檢查作業狀態時,它是「NotStarted」和ServerId =「」。我在ExportJob_JobChanged處理程序上有一個斷點,無論等待多久,它都不會受到影響。
任何想法?代碼如下:
var serviceUri = new Uri("https://tiledbasemaps.arcgis.com/arcgis/rest/services/World_Imagery/MapServer");
var tokenUri = new Uri("https://www.arcgis.com/sharing/rest");
try
{
var serverInfo = new ServerInfo
{
ServerUri = tokenUri,
TokenAuthenticationType = TokenAuthenticationType.OAuthClientCredentials,
OAuthClientInfo = new OAuthClientInfo { ClientId = MYCLIENTID, ClientSecret = MYCLIENTSECRET) },
};
AuthenticationManager.Current.RegisterServer(serverInfo);
var cred = await AuthenticationManager.Current.GenerateCredentialAsync(tokenUri, new GenerateTokenOptions { });
var exportTask = await ExportTileCacheTask.CreateAsync(serviceUri, cred);
var exportParams = await exportTask.CreateDefaultExportTileCacheParametersAsync(aoi, 50000, 10000);
job = exportTask.ExportTileCache(exportParams, localFilePath);
job.JobChanged += ExportJob_JobChanged;
}
catch (Exception e)
{
e.ToString();
}
這裏還有一個示例:https://geonet.esri.com/thread/189336-exporttilecache-runtime-v1000#comment-662430。另外調用'await job.GetResultAsync()'將觸發開始 我們將很快添加樣本到示例回購中... – dotMorten