前端经纬度几分几秒怎么转成带小数的数字
时间: 2024-03-05 14:53:20 浏览: 120
前端将经纬度的度分秒转换为带小数的数字,可以使用以下公式:
```javascript
decimal = degrees + (minutes / 60) + (seconds / 3600)
```
其中,`degrees` 表示度数,`minutes` 表示分数,`seconds` 表示秒数,`decimal` 表示转换后的小数。需要注意的是,北纬和东经的度数、分数和秒数应该是正数,而南纬和西经的度数、分数和秒数应该是负数。
以下是一个示例代码,用于将度分秒转换为带小数的数字:
```javascript
function dmsToDecimal(degrees, minutes, seconds, direction) {
let decimal = degrees + (minutes / 60) + (seconds / 3600);
if (direction === "S" || direction === "W") {
decimal *= -1;
}
return decimal;
}
// 示例用法
const latD = 39; // 北京的纬度度数
const latM = 54; // 北京的纬度分数
const latS = 15; // 北京的纬度秒数
const latDir = "N"; // 北京的纬度方向
const lat = dmsToDecimal(latD, latM, latS, latDir); // 39.90416666666667
const lngD = 116; // 北京的经度度数
const lngM = 23; // 北京的经度分数
const lngS = 26; // 北京的经度秒数
const lngDir = "E"; // 北京的经度方向
const lng = dmsToDecimal(lngD, lngM, lngS, lngDir); // 116.39055555555556
```
在上面的示例中,`dmsToDecimal` 函数接受四个参数,分别表示度数、分数、秒数和方向。函数内部根据公式计算出小数,并根据方向判断是否需要取反。最后返回转换后的小数。在示例用法中,我们将北京的纬度和经度分别转换为小数。
阅读全文