首页 > 编程语言 > 详细

关于经纬度换算地算法

时间:2015-07-02 22:16:32      阅读:284      评论: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
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!