Преобразование широты, долготы и высоты в точку в плоском трехмерном пространстве.

У меня есть камера, и я хочу идентифицировать с ее помощью определенные точки мира. Я хочу, чтобы это было как можно точнее. Я попытался преобразовать в (x, y, z), используя ответ в этом: Позиция Lat Long в XYZ в JS.. не работает. Но дело в том, что я не знаю, как повлиять на углы камеры (рыскание, тангаж, крен) с кривизной земли, так что это становится немного странным. Поэтому я подумал преобразовать его в плоское трехмерное представление и преобразовать высоту, широту и высоту без учета кривизны земли в (x, y, z), чтобы я мог видеть все точки в фронт.

Это хорошая идея? Если нет, то как я могу повлиять на углы камеры в зависимости от положения в мире, чтобы у меня всегда была правильная перспектива с камеры?


person GonacFaria    schedule 10.07.2017    source источник
comment
Это больше похоже на математическую/геодезическую задачу, чем на задачу программирования, не так ли? Если вы не отслеживаете движение камеры (рыскание, тангаж, крен), вам придется предположить, что она всегда смотрит вниз в надире (зенитный угол наблюдения = 0°). Также я не совсем понимаю, что именно вы хотите преобразовать. Что камера выдает на выходе?   -  person offeltoffel    schedule 10.07.2017
comment
Это вопрос программирования, мне нужна помощь в среде Python с использованием opencv. Я отслеживаю углы камеры, но относительно камеры, а не всего мира. Камера всегда касается окружающего мира и отображает точки на экране настолько точно, насколько это возможно.   -  person GonacFaria    schedule 10.07.2017
comment
Камера всегда должна быть касательной к миру*   -  person GonacFaria    schedule 10.07.2017


Ответы (1)


Вы можете использовать эту библиотеку Python https://pypi.python.org/pypi/nvector, который также придерживается стандарта WGS84. Он преобразует широту в координаты x, y, z.

wgs84 = nv.FrameE(name='WGS84')
wgs84.GeoPoint(latitude=latitude, longitude=longitude, z=1, degrees=True)
person user2438117    schedule 06.10.2017