Estimation de la distance plutôt que de compter sur l'instabilité de signal.eu.org/osm
This commit is contained in:
23
server/src/common/utils/calculus.utils.ts
Normal file
23
server/src/common/utils/calculus.utils.ts
Normal file
@ -0,0 +1,23 @@
|
||||
const EARTH_RADIUS = 6378137
|
||||
|
||||
type Coordinates = {
|
||||
latitude: number
|
||||
longitude: number
|
||||
}
|
||||
|
||||
type UseDistanceTypes = {
|
||||
from: Coordinates
|
||||
to: Coordinates
|
||||
}
|
||||
|
||||
export function toRadians(degrees: number) {
|
||||
return (degrees * Math.PI) / 180
|
||||
}
|
||||
|
||||
export function distanceCoordinates({ from, to }: UseDistanceTypes) {
|
||||
const distance = EARTH_RADIUS * Math.acos(
|
||||
Math.sin(toRadians(to.latitude)) * Math.sin(toRadians(from.latitude)) +
|
||||
Math.cos(toRadians(to.latitude)) * Math.cos(toRadians(from.latitude)) * Math.cos(toRadians(from.longitude) - toRadians(to.longitude)),
|
||||
)
|
||||
return distance
|
||||
}
|
Reference in New Issue
Block a user