【vue2项目经验】:经纬度转度分秒

一.项目背景及实现思路

最近项目中遇到经纬度转度分秒,记录一下方便以后使用

公式:L=D+M/60+S/3600, L代表经纬度,D代表度,M代表分,S是秒。

实现思路:

一般经纬度都是小数点后面好几位,整数部分就是度,小数点部分乘以60得到的数的整数部分就是分,再用小数点部分乘以60就是秒。

二.js代码

// 经纬度转度分秒
// str.indexOf('.'):str字符串里没有.返回-1,反之返回对应的下标
// str.substring(0,i):截取从0到1的字符形成新的字符串,包头不包尾
function toDegrees(val){
    if(typeof val == "undefined" || val == ''){
        return '';
    }
    let i = val.indexOf('.');
    // 度
    let strDu = i<0?val:val.substring(0,i);
    // 分
    let strFen = 0;
    // 秒
    let strMiao = 0;
    if(i>0){
        strFen = '0'+val.substring(i);
        strFen = strFen*60+'';
        i=strFen.indexOf('.');
        if(i>0){
            strMiao = '0'+val.substring(i);
            strFen = strFen.substring(0,i);
            strMiao = strMiao*60+'';
            i = strMiao.indexOf('.');
            strMiao=strMiao.substring(0,i+4); // 保留四位小数
            strMiao = parseFloat(strMiao).toFixed(0);
        }
    }
    return [strDu,strFen,strMiao];
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

bug天选之子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值