В настоящее время я программирую приложение Android AR, и у меня есть проблема с моим вычислением азимута в зависимости от начального наклона устройства.Android: проблема с азимутом зависит от начального наклона устройства
Я использую датчик ROTATION_VECTOR для получения азимута, высоты и наклона.
Когда я запускаю приложение и телефон перпендикулярен землей, у меня есть хороший азимут с севера. Когда я запускаю приложение, и телефон параллелен земле, у меня плохие значения. У меня также странные значения при изменении наклона устройства.
Это мой код:
public void onSensorChanged(SensorEvent event)
{
if (event.sensor.getType() == sensor.TYPE_ROTATION_VECTOR)
{
SensorManager.getRotationMatrixFromVector(rotationVectorMatrix, event.values);
SensorManager.remapCoordinateSystem(rotationVectorMatrix, SensorManager.AXIS_X, SensorManager.AXIS_Z, rotationMatrix);
SensorManager.getOrientation(rotationMatrix, orientation);
...
}
}
Спасибо за ваш ответ, но я до сих пор проблемы. Значение азимута изменяется, если телефон параллелен или перпендикулярен к земле с тем же направлением. – solenzo