在nextjs中以英里为单位计算两点之间的距离



我有两点示例

point1 = {lat: 40.6974034,
lng: -74.1197636}
point2 = {lat: 42.694034,
lng: -75.117636}

我想在NextJs中以英里为单位计算这两点之间的距离。有人能给我推荐一些我可以用的包裹吗?

const point1 = {
lat: 40.6974034,
lng: -74.1197636
};
const point2 = {
lat: 42.694034,
lng: -75.117636
};

const getDistance = (lat1, lon1, lat2, lon2, unit) => {
if ((lat1 === lat2) && (lon1 === lon2)) {
return 0;
}
const radlat1 = Math.PI * lat1 / 180;
const radlat2 = Math.PI * lat2 / 180;
const theta = lon1-lon2;
const radtheta = Math.PI * theta / 180;
let dist = Math.sin(radlat1) * Math.sin(radlat2) + Math.cos(radlat1) * Math.cos(radlat2) * Math.cos(radtheta);
if (dist > 1) {
dist = 1;
}
dist = Math.acos(dist);
dist = dist * 180/Math.PI;
dist = dist * 60 * 1.1515;
if (unit === "K") { dist = dist * 1.609344 };
if (unit === "N") { dist = dist * 0.8684 };
return dist;
};
console.log('Miles', getDistance(point1.lat, point1.lng, point2.lat, point2.lng,'M'));
console.log('Kilometers', getDistance(point1.lat, point1.lng, point2.lat, point2.lng,'K'));
console.log('Nautical miles', getDistance(point1.lat, point1.lng, point2.lat, point2.lng,'N'));

我认为你可以使用这个功能,你也可以通过不同的单位,N来自海里,M来自英里,K来自千米。

最新更新