2017-02-20 10 views
0

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(); 
} 

답변

0

은 분명히 ExportTileCache에 툴팁 문서는 잘못된 것입니다. 실제로는 을 시작하고 ExportTileCacheJob을 반환하지 않습니다. 작업을 시작하려면 Start()를 호출해야합니다.

나는 마침내 이것을 언급 한 클래스의 자바 문서를 발견했다. https://developers.arcgis.com/android/latest/api-reference/reference/com/esri/arcgisruntime/tasks/tilecache/ExportTileCacheJob.html

Start()를 호출 한 후 JobChanged 이벤트가 예상대로 실행되어 성공적으로 .tpk 파일을 다운로드 할 수있었습니다.

+0

여기에도 샘플이 있습니다. https://geonet.esri.com/thread/189336-exporttilecache-runtime-v1000#comment-662430. 또한 'await job.GetResultAsync()'를 호출하면 시작됩니다. 곧 샘플을 repo에 추가 할 예정입니다 ... – dotMorten