The Haversine Formula
พารามิเตอร์
lat1
, lon1
: The Latitude and Longitude of point 1 (in decimal degrees)
lat2
, lon2
: The Latitude and Longitude of point 2 (in decimal degrees)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
toRad(value) { var RADIANT_CONSTANT = 0.0174532925199433; return (value * RADIANT_CONSTANT); } calculateDistance(lat1, lng1, lat2, lng2) { var KM_RATIO = 6371; try { var dLat = this.toRad(lat2 - lat1); var dLon = this.toRad(lng2 - lng1); var lat1Rad = this.toRad(lat1); var lat2Rad = this.toRad(lat2); var a = Math.sin(dLat / 2) * Math.sin(dLat / 2) + Math.sin(dLon / 2) * Math.sin(dLon / 2) * Math.cos(lat1Rad) * Math.cos(lat2Rad); var c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a)); return KM_RATIO * c * 1000; } catch (e) { return -1; } } |
Link