十进制与经纬度之间的互相转换

在AE的Map控件中我们获取的位置信息是十进制表示的经纬度信息,而通常我们用度、分、秒来表示,因此,在AE内部和通俗描述经纬度信息需要转换。十进制表示经纬度,即只用度来表示位置,而经纬度表示法,则用度、分、秒三个分量来表示,而度分秒之间的关系式为1度=60分=3600秒。由该关系可得出十进制与度分秒之间转换式如下:
1、度分秒转换为十进制

      Decimal=Degrees+minutes/60+seconds/3600;

2、十进制转度分秒

     Degrees值为Decimal整数部分;

     Minutes=(Decimal-Degrees)*60;取整数部分

   Seconds=((Decimal-Degrees)*60-Minutes)*60;

代码如下:

复制代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace WpfArcgis
{
    class UnitConvert
    {
        /// 
        /// 度、分、秒转化为十进制
        /// 
        /// /// /// /// 转化的十进制结果
        public static  double DegreeToDecimal(int iDegree,int iMinute,double dSecond)
        {
            double dValue = 0;
            dValue = iDegree + iMinute / 60 + dSecond / 3600;//度+分/60+秒/3600 为转化为十进制的公式
            return dValue;
        }
        /// 
        /// 十进制转化为度分秒
        /// 
        /// 十进制值
        /// 获取的度
        /// 获取的分
        /// 获取的秒
        public static void DecimalToDegree(double dValue,out int iDegress,out int iMinute,out double dSecond)
        {
            iDegress = (int)dValue;//获取度
            iMinute = (int)((dValue -iDegress ) * 60);//获取分
            dSecond=((iDegress - dValue) * 60-iMinute)*60;//获取秒
        }
        
    }
}
复制代码

你可能感兴趣的:(ArcEngine)