Gmap URL_JS function GetQuadtreeAddress(long, lat) { var PI =3.1415926535897; var digits =18; // how many digits precision // now convert to normalized square coordinates // use standard equations to map into mercator projection var x = (180.0+ parseFloat(long)) /360.0; var y =-parseFloat(lat) * PI /180; // convert to radians y =0.5* Math.log((1+Math.sin(y)) / (1- Math.sin(y))); y *=1.0/(2* PI); // scale factor from radians to normalized y +=0.5; // and make y range from 0 - 1 var quad ="t"; // google addresses start with t var lookup ="qrts"; // tl tr bl br while (digits–) { // make sure we only look at fractional part x -= Math.floor(x); y -= Math.floor(y); quad = quad + lookup.substr((x >=0.5?1 : 0) + (y >=0.5?2 : 0), 1); // now descend into that square x *=2; y *=2; } return quad; }
Gmap URL_Delphi function getSatURL(zoom: integer; X, Y: double): string; var wx, wy, cx, cy: double; tid: string; i: integer; begin cx :=0; cy :=0; wx :=180; wy :=180; tid :='t'; for i :=1 to zoom-1do begin if (x >= cx) and (y >= cy) then begin tid := tid +'r'; cx := cx + wx /2; cy := cy + wy /2; end elseif (x >= cx) and (y < cy) then begin tid := tid +'s'; cx := cx + wx /2; cy := cy - wy /2; end elseif (x < cx) and (y < cy) then begin tid := tid +'t'; cx := cx - wx /2; cy := cy - wy /2; end else begin tid := tid +'q'; cx := cx - wx /2; cy := cy + wy /2; end; wx := wx /2; wy := wy /2; end; result :='http://kh.google.com/kh?v=2&t='+ tid; end;