Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用ArcGIS.net运行时sdk正确设置ExportTileCacheJob_.net_Xamarin.android_Arcgis Runtime - Fatal编程技术网

如何使用ArcGIS.net运行时sdk正确设置ExportTileCacheJob

如何使用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

我正在为Xamarin Android使用.Net运行时sdk(v.100)。我正在尝试将tiles作为.tpk下载,以供我的移动应用程序脱机使用

我已设法使用AuthenticationManager为我的应用程序提供令牌。通过在ExportTileCache任务上调用ExportTileCache,我可以成功创建ExportTileCache任务和ExportTileCache作业,但作业的状态似乎从未改变。当我在调用ExportTileCache后立即检查作业状态时,它是“NotStarted”,并且服务器ID=”。我的ExportJob\u 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();
}

显然,ExportTileCache上的工具提示文档具有误导性。实际上,它不会启动并返回ExportTileCacheJob。必须对作业调用Start()才能启动作业

我终于找到了提到这个类的java文档。

调用Start()后,JobChanged事件按预期触发,我能够成功下载.tpk文件。

这里还有一个示例:。同时调用“wait job.GetResultAsync()”将触发启动,我们将很快向样本repo添加样本。。。