概要
2点間の緯度・経度の距離を求めます。直線の距離なので、Googleマップなどの経路の距離ではないので注意が必要です。
スクリプト
function calculateDistance(lat1, lng1, lat2, lng2) {
const radius = 6371; // Earth's radius in km
const dLat = this.toRadians(lat2 - lat1);
const dLng = this.toRadians(lng2 - lng1);
const a = Math.sin(dLat / 2) * Math.sin(dLat / 2) +
Math.cos(this.toRadians(lat1)) * Math.cos(this.toRadians(lat2)) *
Math.sin(dLng / 2) * Math.sin(dLng / 2);
const c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));
const distance = radius * c;
return distance.toFixed(2);
}
function toRadians(degree) {
return degree * (Math.PI / 180);
}
出力
let dis = calculateDistance(34.94402904,135.7129318,35.0158848,135.7053952);
console.log(dis); // 8.02
コメントを投稿する