java 代码改写成 delphi解决方法

java 代码改写成 delphi
 public static double lngToPixel(double lng, int zoom) {

  return (lng + 180) * (256L<<zoom) / 360;

  }  
public static double latToPixel(double lat, int zoom) {

  double siny = Math.sin(lat * Math.PI / 180);

  double y = Math.log((1 + siny) / (1-siny));

  return (128 << zoom) * (1-y / (2 * Math.PI));

  }
  public static double pixelToLat(double pixelY, int zoom) {

  double y = 2 * Math.PI * (1-pixelY / (128 << zoom));

  double z = Math.pow(Math.E, y);

  double siny = (z-1) / (z + 1);

  return Math.asin(siny) * 180 / Math.PI;

  }

------解决方案--------------------

Uses math;

function lngToPixel(lng: double; zoom: integer): double;
begin
  Result := (lng + 180) * ($100 shl zoom) / 360;
end;

function latToPixel(lat: double; zoom: integer): double;
var siny, y: double;
begin
  siny := sin(lat * PI / 180);
  y := ln((1 + siny) / (1-siny));
  Result := (128 shl zoom) * (1-y / (2 * PI));
end;

function pixelToLat(pixelY: double; zoom: integer): double;
var y, z, siny: double;
begin
  y := 2 * PI * (1-pixelY / (128 shl zoom));
  z := exp(y);
  siny := (z-1) / (z + 1);
  Result := arcsin(siny) * 180 / PI;
end;