Я пишу приложение AR Android и имею мою работу механизма, но она содержит странное поведение, которое я, может казаться, не получаю, фиксируют. Я накладываю поверхность OpenGL на изображении камеры и помещаю 3D объекты в представление соответственно. Если я использую фиктивные данные для местоположения моих объектов AR, т.е. LAT 10 LON 10 становится x=10 y=10 на поверхности OpenGL, то наложение работает отлично. Однако, если я использую прямые координаты GPS для своего LAT и LON (например, LAT 12.34567890 LON 100.23456789) затем все мои объекты или перемещаю их местоположение или не появляюсь вообще. Я знаю, что существуют проблемы вокруг использования плавающих точек и платформы OpenGL, но я читал вокруг, и все еще испытываю затруднения при остановке этого поведения. У кого-либо еще была эта проблема? Я должен использовать масштабный коэффициент между своим GPS и поверхностью openGL, раз так какие значения хороши? Я пытался масштабировать свой LAT и LON 1000000 для устранения плавающей точки, но это не помогло, и производительность была ужасна.
Я так близко к получению этой работы, что любая справка очень ценилась бы.
Выясните, в каком «прямоугольнике» размером 1x1 или 0,5x0,5 градуса находятся ваши исходные координаты, а затем вычтите этот прямоугольник, так что теперь ваши координаты относятся к «прямоугольнику», а не ко всему миру.
Итак, LAT 12.34567890 LON 100.23456789 находится в поле (12,100) с координатами (0,34567890, 0,23456789). Вы захотите передать (0,34567890, 0,23456789) в OpenGL.
Получение точности ~ 1 м от поплавка с диапазоном +/- 180,0 градусов в лучшем случае отчасти схематично, и как только вы начинаете выполнять все операции с матрицами OpenGL, все начинает довольно сильно дрожать.