获取当前标题Delphi多设备

时间:2017-03-09 14:20:14

标签: android delphi delphi-10.1-berlin

我正在尝试使用Delphi Rad 10.1 Berlin从Android设备中检索我当前的标题。

OrientationSensor中有一个函数是True Heading,但是,根据Embarcadero知识库,这只在Windows上启用。

所以,我认为要这样做,我需要将以下变量转换为一个标题。

OrientationSensor1.Sensor.HeadingX
OrientationSensor1.Sensor.HeadingY
OrientationSensor1.Sensor.HeadingZ

由于我只需要前进(并且不关心海拔高度),我相信我可以无视Z.

作为回报,我需要检索当前标题,该标题应该是0-360。

我使用了我在网上找到的公式: -

angle = atan2(Y, X);

这似乎有所帮助,但在某些职位上却非常不准确,而在其他职位则是否定的。

任何帮助或建议都将不胜感激。

可能有用的一些细节是:

这是Delphi中的多设备应用程序。

它仅适用于Android设备(并且仅在其上进行测试)。

提前致谢。

1 个答案:

答案 0 :(得分:0)

不要丢弃HeadingZ

这些树标题与世界表面无关,而是与您的设备方向和倾斜度相关。

因此,为了获得真正的航向,您必须考虑所有三个轴的航向以及所有三个轴的倾斜信息。

您可以在此处阅读有关计算标题的更多信息:https://stackoverflow.com/a/1055051/3636228

是链接的答案是针对目标C的,但是对于每种编程语言,数学背后都是相同的。