Получить шахту, рулон и рыскание по сравнению с географическим севером на iOS?

StackOverflow https://stackoverflow.com/questions/9313474

Вопрос

Я вижу, что могу получить Cmattitude От устройства и от него я могу прочитать 3 значения, которые мне нужны (шаг, бросок и рыскание). Насколько я понимаю, этот объект Cmattitude управляется CoreMotion, который является диспетчера слияния датчика для расчета правильных результатов из Compass, Gyro и Accelerometer вместе (на Android это класс Sensormanager).

Итак, мои вопросы:

  1. Это значения (шага, рулона и рыскания) относительно магнитного севера и гравитации?

  2. Если выше правильное, как я могу изменить его, чтобы дать мне результаты относительно географического севера?

  3. Если устройство (например, iPhone 3GS) не имеет гироскопа, я должен сказать его менеджеру или я могу просто сказать ему, чтобы мне придать мне отношение к устройству на основе датчиков (у него есть (ACC + Gyro + Compas ИЛИ ЖЕ ACC + Compas)

Это было полезно?

Решение

  1. и 2:

iOS 5.0 упрощает эту задачу. CMMOTION Manager имеет новый метод:


- (void)startDeviceMotionUpdatesUsingReferenceFrame:(CMAttitudeReferenceFrame)referenceFrame

В качестве эталонного кадра вы можете использовать эти значения:

  • Cmattitudereferenceframexmagneticnorthzvertical для магнитного севера,
  • Cmattitudereferenceframextruenorthzvertical для True North.

Если вы хотите сделать это с более старым iOS, я боюсь, что вам нужно калибровать это самостоятельно, используя текущее местоположение пользователя.

Попробуйте заказать эти ресурсы:

3. Если у устройства нет гироскопа, DevicemotionAvailable Prodats of CMMOTIONMANGE будет «нет» (оно эквивалентно гиповищному свойству), и вы не можете получить отношение, используя движение устройства. Единственное, что вы можете сделать, это считывать акселерометр и данные магнитометра напрямую.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top