经纬度转换成墨卡托
public Vector2D LonLat2Mercator(Vector2D LonLat)
{
Vector2D mercator = new Vector2D();
double x = LonLat.X * 20037508.34 / 180;
double y = Math.Log(Math.Tan((90 + LonLat.Y) * Math.PI / 360)) / (Math.PI / 180);
y = y * 20037508.34 / 180;
mercator.X = x;
mercator.Y = y;
return mercator;
}
墨卡托转经纬度
public Vector2D Mercator2LonLat(Vector2D mercator)
{
Vector2D LonLat = new Vector2D();
double x = mercator.X /20037508.34 * 180;
double y = mercator.Y / 20037508.34 * 180;
y = 180 / Math.PI * (2 * Math.Atan(Math.Exp(y * Math.PI / 180)) - Math.PI / 2);
LonLat.X = x;
LonLat.Y = y;
return LonLat;
}
Mathf.PI圆周率
static var PI : float
PI(读pai)的值,也就是圆周率(π)的值3.14159265358979323846…(只读)
Mathf.Atan反正切
static function Atan (f : float) :float
计算并返回参数 f 中指定的数字的反正切值。返回值介于负二分之 pi 与正二分之 pi 之间。
一般情况下用ATan即可,当对所求出角度的取值范围有特殊要求时,应使用ATan2。
Mathf.Exp指数
static function Exp (power : float) : float
返回 e 的 power 次方的值。