2012-02-03 6 views
1

В моем приложении пользователь может определить три угла футбольного поля, используя GPS-навигатор iPhone, перейдя по углам один за другим и нажав кнопку. Это хорошо работает, и я могу нарисовать полученный прямоугольник на экране, похожий на то, как он появится на карте Google.Математика (геометрия): Прямоугольная проекция?

Итак, теперь у меня есть координаты карты по широте и долготе для трех случайных углов футбольного поля.

Невозможно указать, в каком углу находится пользователь, и если он или она входит в последовательные углы по часовой стрелке вокруг поля или против часовой стрелки.

То, что я тогда хочу, - это полный экран на iPhone для представления футбольного поля, чтобы можно было отслеживать положение GPS на экране.

Так что мне нужно вычислить правильную ориентацию, чтобы она идеально соответствовала полю на экране, избегая переворачивания любой из осей, а также поворачивать и масштабировать входящие GPS-координаты в систему координат экрана.

Как бы вы это сделали? Мне не нужен реальный код, только то, что вы считаете самым простым алгоритмом/стратегией для достижения этого.

Я уже изучил некоторые статьи о проецировании, повороте и т. Д., И я думаю, что я мог бы понять это из-за большого количества проб и ошибок, но я хотел бы узнать простейший способ сделать это. Возможно, у iOS есть некоторые функции для этого, о которых я не знаю?

+0

Вы все еще работаете над этим? Если да, то имеете ли вы дело с футбольными полями только в небольшой области (например, только часть штата, для команды старшей школы) или большой площади (например, всей США, для колледжа или команды НФЛ)? – GeneralMike

ответ

0

Не могли бы вы описать проблемы в ближайшее время? Первый вопрос, что вводится (я не поймал). Три точки и что-то еще? 4 номера.

Зачем вам нужно, если вы можете просто получить одну координату и рассчитать тогда?

+0

Ввод - это два значения с плавающей запятой _GPSx_ и _GPSy_ (текущая позиция GPS). Также доступны значения с плавающей запятой c1x, c1y, c2x, c2y, c3x, c3y, представляющие положение GPS трех записанных углов фактического футбольного поля. –

+0

Вы можете сделать 360 картинную карту из 36 * n точек, затем получить угол (круг вокруг поля, центр находится в центре поля). Для этого вам нужно. 1. Установите 0 градусов. 2. Рассчитать угол. 3. Выберите пиктограмму в соответствии с этой координатой. – Spirit

+0

Извините, я думаю, вы неправильно поняли мой вопрос. Мне нужно только показать на экране знак, который соответствует тому, где пользователь действительно находится на футбольном поле. –

0

До тех пор, как углы побывал в последовательном порядке (по часовой стрелке или против часовой стрелки не имеет значения) можно вычислить прямоугольник следующим образом:

, если углы р, д, и г посещенные в порядке, то углу × = р + р - д

0

Я знаю, что это поздний ответ, но так как ничего не было принято еще ...

Если Coords приходят в степени-минута-секунда, сначала придется преобразовать в десятичную градусов. Затем выберите один из входов. Найдите расстояние между этой точкой и каждой другой точкой (D = sqrt ((lat1-lat2)^2 + (long1-long2)^2)). Каждое расстояние будет одним из трех значений - шириной (вдоль линии ворот, например - самой короткой), длиной (вдоль боковой линии) или диагональю (один задний угол конечной зоны до противоположного заднего угла - самое длинное расстояние). Я не знаю, что эти расстояния будут в десятичных градусах - если вы имеете дело с довольно маленьким участком земли, он будет постоянным, поэтому лучший вариант - это просто выйти на локальное поле и измерить их сам. Если вы имеете дело с большой частью земли, тогда вам нужно перейти от лат-длинных градусов к ногам, что делает вещи лишними уродливыми, но это может быть сделано (если кто-то спросит, я добавлю эту часть в редактирование) , Как только вы узнаете, с какого угла вы начали и какие у вас есть другие 2 угла, вы можете выяснить, какое расстояние вам не хватает, и, следовательно, какой угол вам не хватает. Вы можете использовать соотношение (lat1-lat2)/(long1-long2) для одного из известных расстояний выше, чтобы определить ориентацию поля. Когда у вас есть это соотношение, и вы знаете расстояние, которое вам не хватает, у вас есть 2 уравнения и 2 неизвестных - выполните одновременное решение, и у вас есть координаты 4-го угла.

Добавить комментарии, если вам нужны более подробные шаги & информация.

Смежные вопросы