Este parece ser el resultado final de una interesante conversión de radianes a grados.
t.convertLength(Math.PI,"radians","degrees")
179.78993435469053
Los radianes PI deben ser 180 grados. Mirando la fuente del césped, la conversión se hace multiplicando por un factor definido en el módulo de ayuda al césped:
https://github.com/Turfjs/turf/blob/4ffa95cd8acc74ef1cdff79cdd85802651ef5965/packages/turf-helpers/index.ts#L50
Los bits relevantes son:
export let earthRadius = 6371008.8;
/**
* Unit of measurement factors using a spherical (non-ellipsoid) earth radius.
*
* @memberof helpers
* @type {Object}
*/
export let factors: {[key: string]: number} = {
...
degrees: earthRadius / 111325,
Esto da un factor de conversión de grados a radianes de (usando R aquí):
> earthRadius = 6371008.8
> degrees = earthRadius/111325
> degrees
[1] 57.22891
mientras que el número de grados en un radián es:
> 180/pi
[1] 57.29578
Dado que todo lo demás es esférico, y no veo ninguna razón para que la definición de la longitud de un grado sea diferente a la matemática, sospecho que el radio de la tierra ha sido cambiado en algún momento (hay commits en la fuente para ello) pero el factor de escala no ha sido recalculado (porque el denominador de 111325 no convierte correctamente los grados a radianes).
Voy a plantear una cuestión a ver qué dicen...
https://github.com/Turfjs/turf/issues/1406
1 votos
¿Será que su línea va hacia el norte? Sólo es una suposición.
1 votos
La distancia de [0,0] a [0,10] es la misma que de [0,0] a [10,0], por lo que turf está utilizando un modelo esférico en lugar de un elipsoide. No estoy seguro de que eso explique por qué la distancia es menor que la diferencia de coordenadas en grados