| Quintiq file version 2.0 | 
| #parent: #root | 
| Method GetTile (Number idx) | 
| { | 
|   #keys: '1[103544.0.740665520]' | 
|   TextBody: | 
|   [* | 
|     // Administrator Mar-12-2012 (created) | 
|     library := this.LibOSM_OSMGISLibrary(); | 
|     utils := library.LibOSM_Utils(); | 
|     mapserver := library.LibOSM_MapServer(); | 
|      | 
|     arguments := library.Arguments(); | 
|     zoomlevelhandle := arguments.GetHandle( "zoomlevel" ); | 
|     tilehandle := arguments.GetHandle( "tile" ); | 
|     xhandle := arguments.GetHandle( "x" ); | 
|     yhandle := arguments.GetHandle( "y" ); | 
|     argumentsroot := arguments.Root(); | 
|      | 
|     requestabletile := argumentsroot.Children( tilehandle ).Element( idx ); | 
|     utils.DebugDump( "gettiles_currentrequestabletile.txt", requestabletile ); | 
|     zoomlevel := argumentsroot.Child( zoomlevelhandle ).GetValueAsNumber(); | 
|     x := requestabletile.Child( xhandle ).GetValueAsNumber(); | 
|     y := requestabletile.Child( yhandle ).GetValueAsNumber(); | 
|      | 
|     // Generate the URL | 
|     url := mapserver.GenerateTileURL( zoomlevel, x, y ); | 
|      | 
|     // Generate the HTTPInterface instance that will be used to send the request to the OpenStreetMap map server | 
|     httpinterface := mapserver.CreateHTTPInterface(); | 
|     httpinterface.URL(url ); | 
|     onsuccesscallback := Reflection::FindMethodBySignature( typeof( LibOSM_MapServer ).Name(), "ProcessTileResponse", typeof( HTTPInterface ).Name() ); | 
|     assert( not isnull( onsuccesscallback ), "GetTilesCall.GetTile: failed to retrieve the method that will serve as the OnSuccess callback" ); | 
|     httpinterface.OnSuccessCallback( onsuccesscallback, mapserver ); | 
|     onfailurecallback := Reflection::FindMethodBySignature( typeof( LibOSM_MapServer ).Name(), "ProcessTileErrorResponse", typeof( HTTPInterface ).Name() ); | 
|     assert( not isnull( onfailurecallback ), "GetTilesCall.GetTile: failed to retrieve the method that will serve as the OnFailure callback" ); | 
|     httpinterface.OnFailureCallback( onfailurecallback, mapserver ); | 
|      | 
|     // Send the request, asynchronously | 
|     key := httpinterface.ASyncCall(); | 
|     library.LibOSM_OSMServerCall( relinsert, construct( LibOSM_OSMServerCall, ArgumentID := idx, SentRequestID := key ) ); | 
|   *] | 
| } |