- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我想在谷歌地图 View 上的我的位置显示一个箭头,显示我相对于目标位置的方向(而不是北方)。
a) 我使用磁力计和加速度计的传感器值计算了北。我知道这是正确的,因为它与 Google map View 中使用的指南针对齐。
b) 我使用 myLocation.bearingTo(destLocation); 计算了从我所在位置到目标位置的初始方位;
我错过了最后一步;从这两个值(a 和 b)中,我使用什么公式来获取手机相对于目标位置指向的方向?
感谢任何对头脑困惑的帮助!
最佳答案
好的,我想通了。对于其他尝试这样做的人,您需要:
a) 航向:您在硬件罗盘上的航向。这是磁北
以东的度数b) 方位:从您所在位置到目的地位置的方位。这是真北以东的度数。
myLocation.bearingTo(destLocation);
c) 偏角:真北和磁北的区别
从磁力计 + 加速度计返回的航向位于真(磁)北(-180 到 +180)以东的度数,因此您需要获取您所在位置的北和磁北之间的差异。这种差异是可变的,具体取决于您在地球上的位置。可以通过 GeomagneticField 类获取。
GeomagneticField geoField;
private final LocationListener locationListener = new LocationListener() {
public void onLocationChanged(Location location) {
geoField = new GeomagneticField(
Double.valueOf(location.getLatitude()).floatValue(),
Double.valueOf(location.getLongitude()).floatValue(),
Double.valueOf(location.getAltitude()).floatValue(),
System.currentTimeMillis()
);
...
}
}
有了这些,您可以计算在 map 上绘制的箭头的角度,以显示您相对于目标对象所面对的位置,而不是真正的北方。
首先根据偏角调整航向:
heading += geoField.getDeclination();
其次,您需要将手机面向(前进)的方向从目标目的地偏移,而不是真正的北方。这是我卡住的部分。指南针返回的航向值为您提供了一个值,该值描述了与手机指向的位置相关的磁北位置(以真北以东的度数)。所以例如如果值为 -10,则您知道磁北在您的左侧 10 度。方位角以正北以东的度数为您提供目的地的角度。因此,在您补偿了偏角之后,您可以使用以下公式来获得所需的结果:
heading = myBearing - (myBearing + heading);
然后,您需要将正北以东的度数(-180 到 +180)转换为正常度数(0 到 360):
Math.round(-heading / 360 + 180)
关于android - 在Android中计算指南针方位/航向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4308262/
我想在谷歌地图 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 来获得
我是一名优秀的程序员,十分优秀!