const
width=14002;
height=19002;

var TileGroup:integer;
z:integer;
i:integer;
cur_width,cur_height:integer;
maxZoom:integer;

function TilesAtZoom(z:integer):integer;
begin
 result:=(1+trunc(width/(256*intpower(2,(MaxZoom-z)))))*(1+trunc(height/(256*intpower(2,(MaxZoom-z)))));
end;


function getTileCount(zoom:integer):integer;
var i:integer;
begin
Result:=0;
for i:=1 to zoom do Result:=Result+TilesAtZoom(i);
end;


begin
i:=1;cur_width:=0;
 while cur_width<width do
  begin
   cur_width:=round(256*intpower(2,i));
   i:=i+1;
  end;
  MaxZoom:=i;


i:=1;cur_width:=0;
 while cur_width<height do
  begin
   cur_width:=round(256*intpower(2,i));
   i:=i+1;
  end;
  if i>MaxZoom then MaxZoom:=i;



z:=GetZ-1;

tilegroup:=(getTileCount(z) +GetX +GetY*(1+trunc(width/(256*intpower(2,(MaxZoom-z-1)))))) div 256;
ResultURL:=GetURLBase+inttostr(tilegroup)+'/'+inttostr(z)+'-'+inttostr(GetX)+'-'+inttostr(GetY)+'.jpg';
end.