IA.Common/BaiduMapHelper.cs

(开头部分) 3KB

这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。

using System;

namespace IA.Common
{
    public class BaiduMapHelper
    {
        public static void Wgs2Bd9(double wgLat, double wgLon, out double bdLat, out double bdLon)
        {
            double mgLat, mgLon;
            Wgs2Gcj.Transform(wgLat, wgLon, out mgLat, out mgLon);
            Gcj2Bd09.bd_encrypt(mgLat, mgLon, out bdLat, out bdLon);
        }
    }

    internal class Wgs2Gcj
    {
        //地球坐标系 (WGS-84) 到火星坐标系 (GCJ-02) 的转换算法
        const double Pi = 3.14159265358979324;

        //
        // Krasovsky 1940
        //
        // a = 6378245.0, 1/f = 298.3
        // b = a * (1 - f)
        // ee = (a^2 - b^2) / a^2;
        const double A = 6378245.0;
        const double Ee = 0.00669342162296594323;

        //
        // World Geodetic System ==> Mars Geodetic System
        public static void Transform(double wgLat, double wgLon, out double mgLat, out double mgLon)
        {
            if (OutOfChina(wgLat, wgLon))
            {
                mgLat = wgLat;
                mgLon = wgLon;
                return;
            }
            double dLat = TransformLat(wgLon - 105.0, wgLat - 35.0);
            double dLon = TransformLon(wgLon - 105.0, wgLat - 35.0);
            double radLat = wgLat / 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);
            mgLat = wgLat + dLat;
            mgLon = wgLon + dLon;
        }

        static bool OutOfChina(double lat, double lon)
        {
            if (lon < 72.004 || lon > 137.8347)
                return true;
            if (lat < 0.8293 || lat > 55.8271)
                return true;
            return false;
        }

        static double TransformLat(double x, double y)
后面还有 39 行代码,购买后查看完整代码

24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明

AI 解读

登录后可用,每次 10 积分,解读结果公开显示在下面。

还没有人解读过这个文件。