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

在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
    {
        /// <summary>
        /// 度、分、秒转化为十进制
        /// </summary>
        /// <param name="iDegree"></param>/// <param name="iMinute"></param>/// <param name="dSecond"></param>/// <returns></returns>转化的十进制结果
        public static  double DegreeToDecimal(int iDegree,int iMinute,double dSecond)
        {
            double dValue = 0;
            dValue = iDegree + iMinute / 60 + dSecond / 3600;//度+分/60+秒/3600 为转化为十进制的公式
            return dValue;
        }
        /// <summary>
        /// 十进制转化为度分秒
        /// </summary>
        /// <param name="dValue"></param>十进制值
        /// <param name="iDegress"></param>获取的度
        /// <param name="iMinute"></param>获取的分
        /// <param name="dSecond"></param>获取的秒
        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;//获取秒
        }
        
    }
}
复制代码
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值