如何使用ArcGIS.net运行时sdk正确设置ExportTileCacheJob
我正在为Xamarin Android使用.Net运行时sdk(v.100)。我正在尝试将tiles作为.tpk下载,以供我的移动应用程序脱机使用 我已设法使用AuthenticationManager为我的应用程序提供令牌。通过在ExportTileCache任务上调用ExportTileCache,我可以成功创建ExportTileCache任务和ExportTileCache作业,但作业的状态似乎从未改变。当我在调用ExportTileCache后立即检查作业状态时,它是“NotStarted”,并且服务器ID=”。我的ExportJob\u JobChanged处理程序上有一个断点,无论我等待多长时间,它都不会被击中 有什么想法吗?代码如下:如何使用ArcGIS.net运行时sdk正确设置ExportTileCacheJob,.net,xamarin.android,arcgis-runtime,.net,Xamarin.android,Arcgis Runtime,我正在为Xamarin Android使用.Net运行时sdk(v.100)。我正在尝试将tiles作为.tpk下载,以供我的移动应用程序脱机使用 我已设法使用AuthenticationManager为我的应用程序提供令牌。通过在ExportTileCache任务上调用ExportTileCache,我可以成功创建ExportTileCache任务和ExportTileCache作业,但作业的状态似乎从未改变。当我在调用ExportTileCache后立即检查作业状态时,它是“NotStart
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();
}
显然,ExportTileCache上的工具提示文档具有误导性。实际上,它不会启动并返回ExportTileCacheJob。必须对作业调用Start()才能启动作业 我终于找到了提到这个类的java文档。 调用Start()后,JobChanged事件按预期触发,我能够成功下载.tpk文件。这里还有一个示例:。同时调用“wait job.GetResultAsync()”将触发启动,我们将很快向样本repo添加样本。。。