iOS можно ли преобразовать CLLocation в какую-то метрическую систему координат XYZ? - PullRequest
1 голос
/ 07 марта 2012

Я создаю игру с дополненной реальностью, и работа с CLLocation довольно громоздка.

Есть ли какой-нибудь способ локально приблизить CLLocation как координату XYZ, выраженную в метрах с началом координат в некоторой произвольной точке (например, начальная позиция, когда игра была запущена)?

Допустим, я работаю с радиусом в 1 милю и на самом деле меня не волнует искривление Земли. Можно ли приблизить или каким-то образом упростить расчеты на основе местоположения для локального отслеживания местоположения?

В качестве альтернативы, есть ли система координат, которая может использоваться с CLLocation, которая также включает в себя крен, наклон, рыскание CMAttitude, а также ориентацию компаса?

Уточнение: Насколько я понимаю, проблема с широтой и долготой заключается в том, что их единицы различаются по размеру в зависимости от положения на земном шаре. Я должен был указать, что X, Y, Z должны быть в стандартных единицах, таких как метры или футы.

Спасибо!

Ответы [ 2 ]

1 голос
/ 07 марта 2012

Формула Хаверсайна может быть полезна.

Я нашел хорошую статью по этому адресу http://www.jaimerios.com/?p=39 с примерами кода.

0 голосов
/ 07 марта 2012

Вы можете получить начальную точку при запуске приложения и рассчитать относительные точки на основе пользовательских координат, когда он или она движется.Правда, это не супер элегантно, но если вы просто пытаетесь сделать несколько простых сравнений, основанных на местоположении пользователя относительно произвольного происхождения, это должно сработать.Для Z предложение Алекса Стоуна о его расчете на основе высоты должно быть в порядке.

...