Ejemplo n.º 1
0
        private static LocateInfo transform(double lat, double lon)
        {
            LocateInfo info = new LocateInfo();

            if (outOfChina(lat, lon))
            {
                info.isChina    = false;
                info.latitude   = lat;
                info.longtitude = lon;
                return(info);
            }

            double dLat   = transformLat(lon - 105.0, lat - 35.0);
            double dLon   = transformLon(lon - 105.0, lat - 35.0);
            double radLat = lat / 180.0 * pi;
            double magic  = Math.Sin(radLat);

            magic = 1 - ee * magic * magic;
            double sqrtMagic = Math.Sqrt(magic);

            dLat = (dLat * 180.0) / ((a * (1 - ee)) / (magic * sqrtMagic) * pi);
            dLon = (dLon * 180.0) / (a / sqrtMagic * Math.Cos(radLat) * pi);
            double mgLat = lat + dLat;
            double mgLon = lon + dLon;

            info.isChina    = true;
            info.latitude   = mgLat;
            info.longtitude = mgLon;
            return(info);
        }
Ejemplo n.º 2
0
        public static LocateInfo gcj02_To_Wgs84(double lat, double lon)
        {
            LocateInfo info      = new LocateInfo();
            LocateInfo gps       = transform(lat, lon);
            double     lontitude = lon * 2 - gps.longtitude;
            double     latitude  = lat * 2 - gps.latitude;

            info.isChina    = gps.isChina;
            info.latitude   = latitude;
            info.longtitude = lontitude;
            return(info);
        }