- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 CoreMotion 获取罗盘航向,我注意到罗盘航向存在一些问题。
首先我初始化了 CoreMotion。我得到了一个 CMMotionManager 对象 locationManager,它是 CMMotionManager 的一个实例。
// initialize CoreMotion
motionManager = [CMMotionManager new];
[motionManager setDeviceMotionUpdateInterval:1.0/30.0];
[motionManager setShowsDeviceMovementDisplay:YES];
[self.motionManager startDeviceMotionUpdatesUsingReferenceFrame:CMAttitudeReferenceFrameXTrueNorthZVertical];
位置数据每 1/30.0 秒更新一次。
出于调试目的,我有一个 UILabel,它向我显示在每个更新间隔更新的当前罗盘标题。当应用程序启动时,我总是必须执行神奇的 8 来校准指南针。
校准指南针后,南北航向在近 2-5 秒内都是正确的。
几秒钟后,指南针变得疯狂,角度也在跳跃。大多数情况下,它会从起始位置向两个方向 float 10-20 度左右。足以产生奇怪的结果。30-60 秒后,南和北时不时地互换或显示到东和西。
在 WWDC 2011 上,有一次 session 讨论了他们如何使用另一个传感器计算每个传感器来弥补这一问题。我在 CoreMotion 的配置中是否遗漏了什么,导致我在准确的航向结果方面遇到了巨大的问题?
我现在使用 3 台设备(2 个 iPhone 4s 和 iPhone 4)在建筑物内外测试了指南针。我去过田野、小城市和大城市。这种事经常发生。在我的测试中,Apple 的示例指南针应用程序几乎准确,准确度为 90%。不幸的是它没有被苹果开源。
感谢您的阅读。
最佳答案
使用 CoreMotion通过 CoreLocation 将为您提供所需的信息。
默认情况下,手机将执行数字 8 校准,要禁用此功能,请重写 locationManagerShouldDisplayHeadingCalibration:
,如下所示:
- (BOOL)locationManagerShouldDisplayHeadingCalibration: (CLLocationManager *)manager {
return NO;
}
从您问题中的代码中不清楚您是否正在调用 startUpdateHeading
。如果没有,请这样做:
if( [CLLocationManager locationServicesEnabled] && [CLLocationManager headingAvailable]) {
[myLocationManager startUpdatingLocation];
[myLocationManager startUpdatingHeading];
}
如果您不打开标题过滤器,您可能会得到疯狂的结果,我建议您这样做。之后,当调用 didUpdateHeading
时,您只需在位置管理器委托(delegate)中获取标题更改即可。
另请注意,如果手机处于横向模式,您需要将航向调整适当的度数 (+/- 90),因为航向始终位于纵向引用系中。
关于iphone - CoreMotion 的罗盘航向值错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9160716/
我想在谷歌地图 View 上的我的位置显示一个箭头,显示我相对于目标位置的方向(而不是北方)。 a) 我使用磁力计和加速度计的传感器值计算了北。我知道这是正确的,因为它与 Google map Vie
我目前正在制作一个网络应用程序的原型(prototype),该应用程序在浏览器中使用 compass 标题。该值范围为 0 ~ 360。 每当我进行完整旋转时,值就会从 360 跳回 0。我不知道如何
如果可能的话,我想知道如何获得确定 Android 设备位置的航向、俯仰和滚动角度。不要考虑设备相关的细节。引用有用的文档也很有值(value)。谢谢! 最佳答案 我手头没有精确的解决方案,但全口径解
我将 Cesium 的一个模型加载到场景中,我有两个点要用来计算模型的方向,这是我创建的函数。 // calculate the direction which the model is facing
我是 ios 编程的初学者,我想使用 gps 获取方向,我知道指南针的功能,但这不是我要找的,我正在寻找一个函数或一个公式来给出我的位移方向(航向)。谢谢! 最佳答案 Location Awarene
我的意思是我希望这会发生: 1 - 监控退出区域2 - 当区域触发时,我想知道例如:离开该区域的用户是向北还是向南,并根据该触发特定通知 ... 最佳答案 是的,您可以使用 CLLocationMan
知道十进制纬度、十进制经度、速度(公里/小时)、航向如何在 60 秒后找到汽车的下一个位置?有什么算法可以做到这一点吗? 最佳答案 这可能有帮助: distance_traveled = speed
我想创建一个将对象指向一个方向的增强现实 View 。但是,当您使用相机面朝上时,CoreLocation 航向无法正常工作(例如,当您位于底层时,朝向 20 层楼的顶部)。 它给出了相反的方向(可能
在 iPhone 3GS 的“ map ”应用程序中,您可以单击该图标,该图标通常会显示您的位置两次,蓝点会获得看起来像头灯发出的光束,基本上会向您显示您在 map 上所面对的方向,并且相应地旋转图像
第一次张贴在这里。 我正在对为桥梁检查 ROV 八旋翼飞行器收集的 GPS 数据进行一些数据分析。我们的八旋翼机在 ROS 上运行使用 3D 扫描激光雷达、立体视觉、INS 和其他一些巧妙的技术。我目
- (float)angleFromCoordinate:(CLLocationCoordinate2D)first toCoordinate:(CLLocationCoordinate2D)seco
所以:我有以下函数,改编自在线找到的公式,它采用两个纬度/经度坐标并计算它们之间的距离(以英里为单位)(沿着球形地球): public static double distance (double l
是否可以在 android google MapFragment 中使用 Shiny 的蓝色光束而不是不显眼的箭头?这项新功能适用于 Android 版 Google map 。如何在应用中实现? 最
我知道执行此操作的四元数方法。但最终这些方法需要我们将所有相关对象转换到相机的旋转“空间”中。 但是,从数学角度来看,我确信一定有一种简单的方法可以仅基于摄像机的 YAW(航向)和 PITCH 来获得
我是一名优秀的程序员,十分优秀!