Получить шахту, рулон и рыскание по сравнению с географическим севером на iOS?
-
26-10-2019 - |
Вопрос
Я вижу, что могу получить Cmattitude От устройства и от него я могу прочитать 3 значения, которые мне нужны (шаг, бросок и рыскание). Насколько я понимаю, этот объект Cmattitude управляется CoreMotion, который является диспетчера слияния датчика для расчета правильных результатов из Compass, Gyro и Accelerometer вместе (на Android это класс Sensormanager).
Итак, мои вопросы:
Это значения (шага, рулона и рыскания) относительно магнитного севера и гравитации?
Если выше правильное, как я могу изменить его, чтобы дать мне результаты относительно географического севера?
Если устройство (например, iPhone 3GS) не имеет гироскопа, я должен сказать его менеджеру или я могу просто сказать ему, чтобы мне придать мне отношение к устройству на основе датчиков (у него есть (ACC + Gyro + Compas ИЛИ ЖЕ ACC + Compas)
Решение
- и 2:
iOS 5.0 упрощает эту задачу. CMMOTION Manager имеет новый метод:
- (void)startDeviceMotionUpdatesUsingReferenceFrame:(CMAttitudeReferenceFrame)referenceFrame
В качестве эталонного кадра вы можете использовать эти значения:
- Cmattitudereferenceframexmagneticnorthzvertical для магнитного севера,
- Cmattitudereferenceframextruenorthzvertical для True North.
Если вы хотите сделать это с более старым iOS, я боюсь, что вам нужно калибровать это самостоятельно, используя текущее местоположение пользователя.
Попробуйте заказать эти ресурсы:
- "Что нового в Core Motion" WWDC 2011 видео,
- «Движение чувствительного устройства в iOS 4» WWDC 2010 Видео
3. Если у устройства нет гироскопа, DevicemotionAvailable Prodats of CMMOTIONMANGE будет «нет» (оно эквивалентно гиповищному свойству), и вы не можете получить отношение, используя движение устройства. Единственное, что вы можете сделать, это считывать акселерометр и данные магнитометра напрямую.