2015-04-09 2 views
0

Я работаю над приложением офисного плана на этаже и в котором я должен с высокой точностью показывать навигацию. Чтобы создать логику, мне нужно будет выполнить задачу:Как получить расстояние ходьбы (в метрах) и направлении за каждые полторы секунды в приложении iOS?

В приложении должно быть начато UIButton, когда я нажимаю на эту кнопку, тогда должен начаться процесс, в котором я должен найти расстояние в метре от той точки, из которой Я начал гулять, а также найти направление от этой начальной точки.

Может ли быть возможно через каркас CoreMotion, если да, то как?

Поэтому, пожалуйста, предложите мне подходящее решение.

ответ

0

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

Я рекомендую способ проверки шага пользователя и вычисления расстояния путем шага.

  1. Шаг подсчета
  2. Расчет расстояния с помощью шага подсчета с информацией пользователя в качестве шага на расстоянии по высоте.
+0

эй @jeff спасибо за ответ. Вы говорите о CMStepCounter? Если да, то я не знаю ничего о классе CMStepCounter. Можете ли вы объяснить мне, как этот класс работает, чтобы посчитать ход? –

+0

№ CMStepCounter является неточным. Он просто используется для эффективной батареи. Вы должны найти количество шагов от вычисления информации о акселерометре. Или используйте другие открытые источники. Ключевое слово - шагомер. На самом деле я делаю открытый исходный код, чтобы получить статус пользователя в виде ходьбы (шагомер), отдыха, подъема и так далее. –

+0

CMStepCounter может быть непригодным на мгновение. –

0

В целом, это действительно сложно, и с помощью акселерометров CoreMotion это невозможно. В основном, iPhone-датчики дают вам ускорение, которое вам нужно интегрировать дважды (т. Е. В простых терминах умножить на время^2), чтобы добраться до расстояния. На основании моего тестирования (и других) результаты ужасны. Существуют методы для улучшения - поиск Sensor Fusion и фильтра Kalman для получения дополнительной информации.

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

EDIT: Я подскочил к выводу, что вы хотели использовать CoreMotion и акселерометры. Вы также можете использовать CoreMotion и подсчет шагов. Взгляните на CM Pedometer: https://developer.apple.com/library/prerelease/ios/documentation/CoreMotion/Reference/CMPedometer_class/index.html (примечание: в iOS7 это было CMStepCounter).

Взгляните на этот ответ, например CMPedometer: CMPedometer queryPedometerDataFromDate returns error 103

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