经纬度的十进制与度分秒的转换

本文介绍了一个简单的Python类,用于实现经纬度十进制与度分秒之间的相互转换,并提供了具体的使用示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

简单易用的经纬度十进制与度分秒的转换函数

1、定义函数

import re
class Degree(object):
    def __init__(self):
        None
    @staticmethod
    def dd_to_dms(dd):
        """
        十进制度转为度分秒
        Paramaters:
            dd : 十进制度
        Return:
            dms : 度分秒
        """
        degree=(int)(float(dd))
        minute=(int)((float(dd)-degree)*60)
        second=round((float(dd)-degree-float(minute)/60)*3600,2)
        dms=str(degree)+'°'+str(minute)+ '′'+str(second)+"″"
        return dms
    @staticmethod
    def dms_to_dd(degree,minute,second):
        """
        度分秒转为十进制度
        Paramater:
            degree : 度
            minute : 分
            second : 秒
        Return:
            dd : 十进制度
        """
        dd=degree+minute/60+second/60/60
        return dd
    @staticmethod
    def parse_dms(dms):
        """
        解析度分秒字符串
        Paramater:
            dms : 度分秒字符串
        Returns:
            degree : 度
            minute : 分
            second : 秒
        """
        parts = re.split('[°′″]', dms)
        degree=float(parts[0])
        minute=float(parts[1])
        second=float(parts[2])
        return {"degree":degree,"minute":minute,"second":second}

2、应用

2.1、十进制度转为度分秒

Degree.dd_to_dms(104.25456666666666)

‘104°15′16.44″’

2.2、度分秒转为十进制度

Degree.dms_to_dd(104,15,16.44)

104.25456666666666

dms=Degree.parse_dms('104°15′16.44″')
dms

{‘degree’: 104.0, ‘minute’: 15.0, ‘second’: 16.44}

Degree.dms_to_dd(dms["degree"],dms["minute"],dms["second"])

104.25456666666666

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值