Я пытаюсь поместить здание из реальной длины в моем приложении Monogame (4 здания в моей школе, пожалуйста, проверьте изображение с синими кругами)
Но после некоторого метода конвертации все пошло не так (пожалуйста, проверьте изображение)
Пожалуйста, помогите мне выяснить, в чем дело.
Мой код:
public List<float> Gps2Cartesian(float latitude_degree, float longitude_degree, float elevation)
{
cartesResult = new List<float>();
var longtitude_rad = DegreeToRadian(longitude_degree);
var latitude_rad = DegreeToRadian(latitude_degree);
var n = a / Math.Sqrt(1 - e2 * Math.Sin(latitude_rad) * Math.Sin(latitude_rad));
var cartes_X = (n + elevation) * Math.Cos(latitude_rad) * Math.Cos(longtitude_rad); //ECEF x (z in right - handed system) (m)
var cartes_Y = (n + elevation) * Math.Cos(latitude_rad) * Math.Sin(longtitude_rad); //ECEF y (x in right - handed system) (m)
var cartes_Z = (n * (1 - e2) + elevation) * Math.Sin(latitude_rad); //ECEF z (y in right-handed system) (m)
cartesResult.Add((float)cartes_Y);
cartesResult.Add((float)cartes_Z);
cartesResult.Add((float)cartes_X);
return cartesResult;
}
И это результат отладки:
D3 X: 5730549 Y: 2271896 Z: -162645005
C2 X: 5730621 Y: 2272063 Z: -162594705
C9 X: 5730595 Y: 2272005 Z: -1626123
C1 X: 5730521 Y: 2272123 Z: -1626228
Спасибо!