Xamarin Android 용 .NET 런타임 SDK (v.100)를 사용하고 있습니다. 내 모바일 앱에서 오프라인 사용을 위해 .tpk로 타일을 다운로드하려고합니다.ArcGIS .net runtime sdk를 사용하여 ExportTileCacheJob을 올바르게 설정하는 방법
나는 내 응용 프로그램 토큰을 제공하기 위해 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()'를 호출하면 시작됩니다. 곧 샘플을 repo에 추가 할 예정입니다 ... – dotMorten