Traté de usar truf js y trazar la ruta y obtengo una línea horizontal junto con la ruta. No sé qué más hacer ya que funciona para otro tipo de rutas.
for (let i = 0; i < lineDistance; i += steps) { const segment = turf.along(route.features[0], i); arc.push(segment.geometry.coordinates); }El código anterior es cómo calculo el arco para trazar en el mapa.
Las coordenadas de la ruta tienen dos puntos de control/puntos de ruta como se muestra en el diagrama. LA (EE.UU.) y Tokio (Japón).
const route = { 'type': 'FeatureCollection', 'features': [ { 'type': 'Feature', 'geometry': { 'type': 'LineString', 'coordinates': routePoints } } ] };Cambie "i" para que comience en "1" en lugar de "0" y el arco se calculará correctamente.
for (let i = 1; i < lineDistance; i += steps) { const segment = turf.along(route.features[0], i); arc.push(segment.geometry.coordinates); }Explicación... El primer punto a lo largo de la ruta es "incorrecto" al calcular un arco a través del Pacífico, por lo que envuelve la tierra para el segundo punto (¿un error?).
Descubrí esto imprimiendo cada segmento en console.log() y noté que el primer punto (i=0) es muy diferente de los otros puntos.
for (let i = 0; i < lineDistance; i += steps) { const segment = turf.along(route.features[0], i); console.log(segment.geometry.coordinates); arc.push(segment.geometry.coordinates); }