| Quintiq file version 2.0 | 
| #parent: #root | 
| Method DoGetCapabilities | 
| { | 
|   #keys: '1[103544.0.740661339]' | 
|   TextBody: | 
|   [* | 
|     // Administrator Mar-12-2012 (created) | 
|     utils := this.LibOSM_Utils(); | 
|     result := this.Result(); | 
|     mapcapabilitieshandle := result.GetHandle( "mapcapabilities" ); | 
|     tiledhandle := result.GetHandle( "tiled" ); | 
|     widthhandle := result.GetHandle( "width" ); | 
|     heighthandle := result.GetHandle( "height" ); | 
|     srswkthandle := result.GetHandle( "srswkt" ); | 
|     boundingboxhandle := result.GetHandle( "boundingbox" ); | 
|     lefttophandle := result.GetHandle( "lefttop" ); | 
|     xhandle := result.GetHandle( "x" ); | 
|     yhandle := result.GetHandle( "y" ); | 
|     rightbottomhandle := result.GetHandle( "rightbottom" ); | 
|     originhandle := result.GetHandle( "origin" ); | 
|     formathandle := result.GetHandle( "format" ); | 
|     resolutionshandle := result.GetHandle( "resolutions" ); | 
|     resolutionhandle := result.GetHandle( "resolution" ); | 
|     cachecapabilitieshandle := result.GetHandle( "cachecapabilities" ); | 
|     maxnrtileshandle := result.GetHandle( "maxnrtiles" ); | 
|     resultroot := result.Root(); | 
|      | 
|     mapcapabilities := resultroot.AddChild( mapcapabilitieshandle ); | 
|     tiled := mapcapabilities.AddChild( tiledhandle ); | 
|     tiled.AddChild( widthhandle, 256 ); | 
|     tiled.AddChild( heighthandle, 256 ); | 
|     srswkt := tiled.AddChild( srswkthandle ); | 
|     srswkt.SetValue( LibOSM_OSMGISLibrary::GetMapSRSWKT() ); | 
|     boundingbox := tiled.AddChild( boundingboxhandle ); | 
|     lefttop := boundingbox.AddChild( lefttophandle ); | 
|     lefttop.AddChild( xhandle, -20037508.34 ); | 
|     lefttop.AddChild( yhandle, 20037508.34 ); | 
|     rightbottom := boundingbox.AddChild( rightbottomhandle ); | 
|     rightbottom.AddChild( xhandle, 20037508.34 ); | 
|     rightbottom.AddChild( yhandle, -20037508.34 ); | 
|     origin := tiled.AddChild( originhandle ); | 
|     origin.AddChild( xhandle, -20037508.34 ); | 
|     origin.AddChild( yhandle, -20037508.34 ); | 
|     format := tiled.AddChild( formathandle ); | 
|     format.SetValue( LibOSM_OSMGISLibrary::GetDefaultImageFormat() ); | 
|     resolutions := tiled.AddChild( resolutionshandle ); | 
|     // resolution: map units per pixel (map units are typically degrees or meters) | 
|     // References: | 
|     // http://wiki.openstreetmap.org/wiki/FAQ#What_is_the_map_scale_for_a_particular_zoom_level_of_the_map.3F | 
|     // http://almien.co.uk/OSM/Tools/Scale/ | 
|     // http://wiki.openstreetmap.org/wiki/Slippy_map_tilenames | 
|     // http://www.maptiler.org/google-maps-coordinates-tile-bounds-projection/ | 
|     // The resolution of the zoom level 0 is ( 2 * 20037508.34 ) / 256 = 156543.03390625 | 
|     // The resolution of zoom level i is resolution_zoom_level_(i-1) / 2, i >= 1, i < = 18 | 
|     // To preserve as much precision as possible, the divisions were made using the exact value of the resolution of the previous level; however, the results were truncated to 8 digits of precision. | 
|     resolutions.AddChild( resolutionhandle, 156543.03390625 );  // Zoom level 0 (1 tile) | 
|     resolutions.AddChild( resolutionhandle, 78271.51695312 );   // Zoom level 1 (2x2 = 4 tiles); exact value: 78271.516953125 | 
|     resolutions.AddChild( resolutionhandle, 39135.75847656 );   // Zoom level 2 (4x4 = 16 tiles); exact value: 39135.7584765625 | 
|     resolutions.AddChild( resolutionhandle, 19567.87923828 );   // Zoom level 3; exact value: 19567.87923828125 | 
|     resolutions.AddChild( resolutionhandle, 9783.93961914 );    // Zoom level 4; exact value: 9783.939619140625 | 
|     resolutions.AddChild( resolutionhandle, 4891.96980957 );    // Zoom level 5; exact value: 4891.9698095703125 | 
|     resolutions.AddChild( resolutionhandle, 2445.98490478 );    // Zoom level 6; exact value: 2445.98490478515625 | 
|     resolutions.AddChild( resolutionhandle, 1222.99245239 );    // Zoom level 7; exact value: 1222.992452392578125 | 
|     resolutions.AddChild( resolutionhandle, 611.49622619 );     // Zoom level 8; exact value: 611.4962261962890625 | 
|     resolutions.AddChild( resolutionhandle, 305.74811309 );     // Zoom level 9; exact value: 305.74811309814453125 | 
|     resolutions.AddChild( resolutionhandle, 152.87405654 );     // Zoom level 10; exact value: 152.874056549072265625 | 
|     resolutions.AddChild( resolutionhandle, 76.43702827 );      // Zoom level 11; exact value: 76.4370282745361328125 | 
|     resolutions.AddChild( resolutionhandle, 38.21851413 );      // Zoom level 12; exact value: 38.21851413726806640625 | 
|     resolutions.AddChild( resolutionhandle, 19.10925706 );      // Zoom level 13; exact value: 19.109257068634033203125 | 
|     resolutions.AddChild( resolutionhandle, 9.55462853 );       // Zoom level 14; exact value: 9.5546285343170166015625 | 
|     resolutions.AddChild( resolutionhandle, 4.77731426 );       // Zoom level 15; exact value: 4.77731426715850830078125 | 
|     resolutions.AddChild( resolutionhandle, 2.38865713 );       // Zoom level 16; exact value: 2.388657133579254150390625 | 
|     resolutions.AddChild( resolutionhandle, 1.19432856 );       // Zoom level 17; exact value: 1.1943285667896270751953125 | 
|     resolutions.AddChild( resolutionhandle, 0.59716428 );       // Zoom level 18; exact value: 0.59716428339481353759765625 | 
|      | 
|     cachecapabilities := tiled.AddChild( cachecapabilitieshandle ); | 
|     cachecapabilities.AddChild( maxnrtileshandle, utils.GetOrCorrectMaxNrTilesSetting() ); | 
|      | 
|     utils.DebugDump( "getcapabilities_result.txt", resultroot ); | 
|      | 
|     this.Done(); | 
|   *] | 
| } |