C# 指南针通常指示我北方。但我想从中得到另一种方式(?)

C# 指南针通常指示我北方。但我想从中得到另一种方式(?),c#,windows-phone-7,compass-geolocation,C#,Windows Phone 7,Compass Geolocation,我正在为我的WindowsPhone7制作一个带有c#的应用程序。 我想用指南针告诉我朝拜的方向(或者我想要的方向)。 我怎样才能做到?我可以用lang和latitute从我的位置计算qibla方向的度数。(例如,结果是北面以东150度) 但是,我无法为它画出方向线。它指的是北方,不是我想要的方向。 现在我用这个代码来画线: magneticLine.X2 = magneticLine.X1 - (200 * Math.Sin(MathHelper.ToRadians((float)compas

我正在为我的WindowsPhone7制作一个带有c#的应用程序。 我想用指南针告诉我朝拜的方向(或者我想要的方向)。 我怎样才能做到?我可以用lang和latitute从我的位置计算qibla方向的度数。(例如,结果是北面以东150度)

但是,我无法为它画出方向线。它指的是北方,不是我想要的方向。 现在我用这个代码来画线:

magneticLine.X2 = magneticLine.X1 - (200 * Math.Sin(MathHelper.ToRadians((float)compassReading.MagneticHeading)));

magneticLine.Y2 = magneticLine.Y1 - (200 * Math.Cos(MathHelper.ToRadians((float)compassReading.MagneticHeading)));

你能帮我做这个吗。谢谢。

按照您目前构建的方式,您只需使用屏幕中心作为原点,然后渲染一条长度始终为200像素的线。在绘制线之前,您需要调整/篡改度数读数(这就是为什么它没有指向正确的方向)

此外,一旦您有了您认为正确的东西,使用Windows Phone emulator在麦加的Kaaba周围绘制GPS点(即在Kaaba周围画一圈点,然后运行模拟)。这将允许您查看您的解决方案是否适用于360*半径范围内的个人

此外,这个关于增强现实的工具包可能会帮助您,因为它在根据您的GPS位置计算方向时为您做了一些数学计算:

我希望这有帮助。如果你在读了上面的内容后仍然感到困惑,我可以为你编写代码,让你更好地理解

最后,确定以下范围:

这是一个教程,介绍了如何使用工作源代码制作指南针,可在文章底部下载。祝你好运