经纬度转换

经纬度转换成墨卡托

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 次方的值。

你可能感兴趣的:(unity3d)