Я пытаюсь преобразовать местоположение GPS для декартовой локации x, y, z относительно второго местоположения GPS в python.Я использую стандартную тригонометрию, основанную на другой информации, которую я нашел на других форумах, и ожидал, что x, y, z появятся в метрах.
#Get cartesian coordinates relative to a center
import math
centerLat = 0.7127
centerLon = -1.2906
centerAlt = -32.406
pointLat = float(input("Enter latitude in degrees for the new point")) * 3.141592653589 / 180
pointLon = float(input("Enter longitude in degrees for the new point")) * 3.141592653589 / 180
pointAlt = float(input("Enter altitude in meters for the new point"))
r = centerAlt + 6378137
xCenter = r * math.cos(centerLat) * math.cos(centerLon)
yCenter = r * math.cos(centerLat) * math.sin(centerLon)
zCenter = r * math.sin(centerLat)
r = pointAlt + 6378137
xPoint = r * math.cos(pointLat) * math.cos(pointLon)
yPoint = r * math.cos(pointLat) * math.sin(pointLon)
zPoint = r * math.sin(pointLat)
x = xPoint - xCenter
y = yPoint - yCenter
z = zPoint - zCenter`enter code here`
По какой-то причине эти две точки после преобразования теперь находятся дальше друг от другачем они должны быть.Если бы кто-то мог дать мне совет относительно того, что я делаю неправильно, это было бы замечательно.
Редактировать: Вот точка, которую я пытаюсь преобразовать.Lat: 40.767870 Lon: -73.885160 Alt: 48.463201
Я использую ландшафт в нереальном движке для справки, который я импортировал из ГИС-данных, используя этот учебник и понял после публикации этого ландшафтагде не в центре, где я думал, что они были.Я настроил их, и результат теперь намного ближе, но все еще не выстраивается.Интересно, это может быть проблема масштаба или поворота.
все формулы и константы были найдены в ссылках ниже /7627234/lat-long-v-polozhenie-xyz-v-js-ne-rabotaet