码迷,mamicode.com
首页 > 编程语言 > 详细

关于经纬度换算地算法

时间:2015-07-02 22:18:00      阅读:260      评论:0      收藏:0      [点我收藏+]

标签:

  public Angle se(Angle latA, Angle lonA, TKsoft.Earth.Angle latB, Angle lonB)
        {
            //知道 两点经纬度,求角度的方法
            double cosLatB = Math.Cos(latB.Radians);
            Angle tcA = TKsoft.Earth.Angle.FromRadians(Math.Atan2(
                Math.Sin(lonA.Radians - lonB.Radians) * cosLatB,
                Math.Cos(latA.Radians) * Math.Sin(latB.Radians) -
                Math.Sin(latA.Radians) * cosLatB *
                Math.Cos(lonA.Radians - lonB.Radians)));
            if (tcA.Radians < 0)
                tcA.Radians = tcA.Radians + Math.PI * 2;
            tcA.Radians = Math.PI * 2 - tcA.Radians;
            return tcA;
        }

以上代码因项目问题,angle是一个类,各位以此代码 做为参考应该能猜出个大概来(Angle 前缀引用 被 我了)

 /**
         *根据一点、角点(正北0度,顺生针增大)、距离(米)计算另一点
        */
        public static System.Drawing.PointF CalPoint(double x, double y, double angel, double distance)
        {
            //
            System.Drawing.PointF endPoint = new System.Drawing.PointF();
            //角度换算成正东0度,逆时针增大
            angel = -angel - 360+90;
            //米换算成经纬度
            var dis = distance / 1000 / 111.7;
            //角点换成弧度
            angel = angel * Math.PI / 180;
            //计算y坐标
            endPoint.Y = (float)(Math.Sin(angel) * dis + y);
            //计算x坐标
            endPoint.X = (float)(Math.Cos(angel) * dis + x);
            return endPoint;
        }

 

关于经纬度换算地算法

标签:

原文地址:http://www.cnblogs.com/chcong/p/4617109.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!