Estoy utilizando el paquete Esri.ArcGISRuntime dentro de un programa C# que estamos escribiendo.
Necesito crear formas específicas a partir de un punto de referencia y proyectarlas en diferentes direcciones. Para ello es fácil crear un nuevo punto a 5.000 metros de distancia en un rumbo de 45 grados. es decir
var startPoint = new MapPoint(125.4, -33.2, SpatialReferences.Wgs84);
var endPoint = GeometryEngine.GeodesicMove(startPoint, 5000, LinearUnits.Meters, 45);
Más adelante, cuando necesite hacer ingeniería inversa de los puntos, puedo recalcular fácilmente la distancia entre estos puntos utilizando
var distance = GeometryEngine.GeodesicDistance(startPoint, endPoint, LinearUnits.Meters);
Sin embargo, no puedo encontrar ninguna forma de determinar cuál era el ángulo o la orientación original entre estos 2 puntos.
He intentado usar Arctan2, pero las coordenadas de MapPoint están sesgadas por la curvatura de la tierra (creo) y por lo tanto el cálculo directo es incorrecto.
var degrees = Math.Atan2(endPoint.Y - startPoint.Y, endPoint.X - startPoint.X) / Math.Pi * 180;
Lo anterior devuelve una cifra de aproximadamente 39 grados (PS He intentado cambiar X e Y alrededor también, no es mejor).