2012-03-07 1 views
1

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

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

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

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

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

Спасибо!

+1

Ну координаты CLLocation уже дают координаты x и y, и вам просто нужно преобразовать высоту, которую вы получаете, в координату z. –

+0

Я уточнил вопрос о использовании метрической системы координат –

ответ

-1

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

+0

Если вы не знали: – mdominick

1

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

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