JS实现根据两点经纬度位置获取距离,小于500m输出打卡成功
时间: 2024-02-01 20:04:52 浏览: 94
java 根据两点经纬度得到距离
4星 · 用户满意度95%
可以使用 Haversine 公式来计算两个经纬度位置之间的距离,具体实现如下:
```javascript
function getDistance(lat1, lng1, lat2, lng2) {
const R = 6371; // 地球半径,单位为千米
const dLat = deg2rad(lat2 - lat1);
const dLng = deg2rad(lng2 - lng1);
const a =
Math.sin(dLat / 2) * Math.sin(dLat / 2) +
Math.cos(deg2rad(lat1)) *
Math.cos(deg2rad(lat2)) *
Math.sin(dLng / 2) *
Math.sin(dLng / 2);
const c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));
const distance = R * c; // 距离,单位为千米
return distance * 1000; // 转换为米
}
function deg2rad(deg) {
return deg * (Math.PI / 180);
}
```
其中,`lat1` 和 `lng1` 表示第一个经纬度位置的纬度和经度,`lat2` 和 `lng2` 表示第二个经纬度位置的纬度和经度。如果计算出的距离小于 500 米,就可以输出打卡成功了。
示例代码如下:
```javascript
const lat1 = 23.129163;
const lng1 = 113.264435;
const lat2 = 23.128839;
const lng2 = 113.264897;
const distance = getDistance(lat1, lng1, lat2, lng2);
if (distance < 500) {
console.log('打卡成功');
} else {
console.log('距离太远,打卡失败');
}
```
注意:这种方法只适用于计算两点之间的直线距离,实际距离可能会因为地形、道路等原因略有不同。
阅读全文