function addzero(i:integer):string; var rs:string; begin rs:=inttostr(i); while length(rs)<3 do rs:='0'+rs; result:=rs; end; var sx,sy,sz:string; dx,dy:integer; tx,ty:integer; sh_x:array[0..24] of integer; sh_y:array[0..24] of integer; begin sh_x[0]:=0; sh_y[0]:=0; sh_x[1]:=0; sh_y[1]:=0; sh_x[2]:=0; sh_y[2]:=0; sh_x[3]:=-1; sh_y[3]:=1; sh_x[4]:=-1; sh_y[4]:=2; sh_x[5]:=0; sh_y[5]:=2; sh_x[6]:=0; sh_y[6]:=4; sh_x[7]:=0; sh_y[7]:=7; sh_x[8]:=0; sh_y[8]:=14; sh_x[9]:=0; sh_y[9]:=29; sh_x[10]:=1; sh_y[10]:=57; sh_x[11]:=4; sh_y[11]:=113; sh_x[12]:=6; sh_y[12]:=227; sh_x[13]:=12; sh_y[13]:=454; sh_x[14]:=23; sh_y[14]:=908; sh_x[15]:=46; sh_y[15]:=1816; sh_x[16]:=-116; sh_y[16]:=3813; sh_x[17]:=-233; sh_y[17]:=7626; sh_x[18]:=0; sh_y[18]:=0; sh_x[19]:=0; sh_y[19]:=0; sh_x[20]:=0; sh_y[20]:=0; sh_x[21]:=0; sh_y[21]:=0; sh_x[22]:=0; sh_y[22]:=0; sh_x[23]:=0; sh_y[23]:=0; sh_x[24]:=0; sh_y[24]:=0; tx:=getx+sh_x[getz]; dx:=(tx div 999); sx:=addzero(tx-dx*999); ty:=(round(intpower(2,GetZ-1))-Gety)-sh_y[getz]; dy:=(ty div 999); ty:=ty-dy*999-1; sy:=addzero(ty); sz:=inttostr(Getz-1); ResultURL:=GetUrlBase+sz+'/00/000/'+addzero(dx)+'/'+sx+'/000/'+addzero(dy)+'/'+sy+'.png'; end.