У меня есть траектория полета с лат/длиной и высотой, и мне нужно преобразовать это в корзину X, Y, Z для цезия.js. Я бегу в стену, пытаясь преобразовать это, потому что я, кажется, не получаю правильных результатов от своей функции.Функция «Полярный» декартовым координатам не выводит правильные данные
var R = 6371;
function polarToCartesian(latitude, longitude, elevation){
x = (R+elevation) * math.cos(latitude) * math.cos(longitude);
y = (R+elevation) * math.cos(latitude) * math.sin(longitude);
z = (R+elevation) * math.sin(latitude);
var ar = [x,y,z];
return ar;
}
У меня не должно быть правильной формулы для полярности декартовой или у меня нет правильного радиуса земли. Я где-то нашел, что мой радиус должен быть 6371, но, похоже, не может найти тот же самый вопрос SO для справки.
Я частично проверяю, правильный ли мой код, вручную добавив радиус земли + высоту траектории полета в данном месте и посмотрев, равна ли это длине моего вектора x, y, z.
Например: х, у, г (3689.2472215653725,3183.2401988117012,13306.90338789763)
выводится, когда я даю функцию этой
-93.028,44.6942,7800
лат, длинные, Elevation
Может кто-то момент мне найти правильный расслоение плотной код для выполнения это преобразование?
Не знаком с полярными координатами при нахождении точек на земном шаре, [я проверил страницу википедии] (https://en.wikipedia.org/wiki/Polar_coordinate_system#Converting_between_polar_and_Cartesian_coordinates) и не думаю, что у вас есть право входы. Можете ли вы ссылаться на ресурс, который имеет полярные координаты на земном шаре? Кроме того, что такое 'R', что вы принимаете верх? – broguinn
Также, если высота определена как расстояние от центра Земли, не должно быть того же значения, что и 'z', если трехмерная сетка имеет (0, 0) в ядре Земли? – broguinn