首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

java 代码改写成 delphi解决方法

2013-01-11 
java 代码改写成 delphi public static double lngToPixel(double lng, int zoom) {return (lng + 180) *

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;

热点排行