【发布时间】:2019-08-01 04:36:19
【问题描述】:
我正在开发一个应用程序,在该应用程序中显示飞机飞行时的位置和方向。然后我还想通过增强现实显示一个正在飞行的城市的标签。我已经把所有东西都设置好了,当我坐着不动或开车时它工作正常,但是当我在飞机上使用它时,发生了一些奇怪的事情。 坐在门口打开或关闭门时,位置图标的标题会在设备处于横向模式时显示正确的方向(主页按钮向右)。如果我将设备向右旋转,平面图标会向右旋转适当的量。和左边一样。这很重要,因为当我将手机向右或向左旋转并打开相机进行增强现实时,正确的城市会出现在正确的位置。即使我们在跑道上滑行,这也完全正常。 但是,当我们起飞时,功能会发生变化。现在,无论我以何种方式更改设备的旋转,平面图标始终指向平面移动的方向。 我试图弄清楚为什么会发生这种情况,并想知道这是否是因为在较慢的速度下静止不动或滑行核心位置正在使用 HEADING,而当我们起飞时正在收集足够的信息以使用 COURSE 信息。 我不认为发生这种情况,因为我在法拉第笼中,因为它在登机口或滑行时不起作用。 如果它实际上是在使用航向/课程信息,我该如何补偿,以便城市标签位于它们应该在的位置,而不是不断移动到飞机前部? 我正在获取用户的纬度、经度和高度以及前往城市的正确航向,所以一切正常。这只是标题/路线问题。
这里有一些代码只是为了表明我已经完成了这些事情。
locationManager = [[CLLocationManager alloc] init];
locationManager.delegate = self;
locationManager.desiredAccuracy = kCLLocationAccuracyKilometer;
locationManager.distanceFilter = kCLDistanceFilterNone;
[locationManager startUpdatingLocation];
[locationManager startUpdatingHeading];
如果速度超过一定数量,我可以使用陀螺仪来判断手机指向的方向并将其添加到航向/航向以将标签放置在正确的位置吗?
有没有人遇到过这个问题并解决了?
【问题讨论】:
-
此 Apple 文档可能对您有所帮助:developer.apple.com/documentation/coremotion?language=objc
标签: ios objective-c core-location