General.Core/Common/Map/ConvertGPS.cs

(开头部分) 5KB

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

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace General.Core.Common.Map
{
    public class TempGps
    {

        public double Tlng;
        public double Tlat;
    }

    public class GPS
    {
        public string oLng;//经度 度分秒坐标
        public string oLat;//纬度 度分秒坐标

        public double lng;//经度 WGS-84
        public double lat;//纬度 WGS-84

        public double gLng;//经度 GCJ-02 中国坐标偏移标准 Google Map、高德、腾讯使用
        public double gLat;//纬度 GCJ-02 中国坐标偏移标准 Google Map、高德、腾讯使用

        public double bLng;//经度 BD-09 百度坐标偏移标准,Baidu Map使用
        public double bLat;//纬度 BD-09 百度坐标偏移标准,Baidu Map使用


        public double PI = Math.PI;
        double xPI = Math.PI * 3000.0 / 180.0;

        public TempGps delta(TempGps t)
        {
            var a = 6378245.0; //  a: 卫星椭球坐标投影到平面地图坐标系的投影因子。
            var ee = 0.00669342162296594323; //  ee: 椭球的偏心率。
            var dLat = this.transformLat(t.Tlng - 105.0, t.Tlat - 35.0);
            var dLng = this.transformLng(t.Tlng - 105.0, t.Tlat - 35.0);
            var radLat = t.Tlat / 180.0 * PI;
            var magic = Math.Sin(radLat);
            magic = 1 - ee * magic * magic;
            var sqrtMagic = Math.Sqrt(magic);
            return new TempGps() { Tlat = (dLat * 180.0) / ((a * (1 - ee)) / (magic * sqrtMagic) * PI), Tlng = (dLng * 180.0) / (a / sqrtMagic * Math.Cos(radLat) * PI) };
        }
        //WGS-84 to GCJ-02
        public void gcj_encrypt()
        {
            if (this.outOfChina(lng, lat))
            {
                gLng = lng;
                gLat = lat;
            }
            var t = this.delta(new TempGps() { Tlng = lng, Tlat = lat });
            gLng = t.Tlng + lng;
            gLat = t.Tlat + lat;
        }

        //GCJ-02 to WGS-84
        public void gcj_decrypt()
后面还有 118 行代码,解锁后查看完整代码

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

AI 解读

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

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