【问题标题】:How to Get latitude & longitude when get turn in Android如何在 Android 中获取经纬度
【发布时间】:2013-08-09 12:11:23
【问题描述】:

我正在使用距离计算器来计算总行驶距离。我有一些教程,其中位置会定期获取。我知道如何定期获取位置,但我想在用户在旅行时转弯时获取位置(即纬度和经度)。

所以我想知道如何让用户使用设备,以便获取位置。为简单起见,请参见下图,我想在其中获取点的位置 A,B,C,D,E,F,G,H,I.

任何关于距离计算的进一步建议将不胜感激。
谢谢。

【问题讨论】:

  • 如果您可以定期获取位置,那么您可以假设定期获取位置。您可以比较两个靠近的位置,如果 getBearing() 结果高于阈值,则表明刚刚发生了转弯,然后您可以(也许)识别转弯的位置?
  • @iaindownie:是的,你是对的,但是如果我定期在 F 点和 I 点拍摄场景,如果它在 F 点拍摄然后直接在 I 点拍摄,那么它会直接计算F和I点之间的距离。
  • 问题只是说可以“定期获取位置”,而不是局限于特定点。如果您可以每 10m 获取一次位置(极端示例),您就可以(相对)准确地检测转弯。
  • @iaindownie:好的,那么如何在 10m 距离处获取位置?
  • 您目前如何从线路中获取任何位置?

标签: android geolocation


【解决方案1】:

您可以以相当快的速度(例如每秒)检索新的位置坐标。因此,每秒使用 getBearing() 方法,然后我认为如果您与之前的值进行持续比较,您将能够获得每一个回合!

您还可以尝试计算最后几次测量的平均方位值,这样您就不会很快超过您的阈值并识别出许多您不想识别的角...(这些误报取决于GPS 的质量以及例如环境的质量,因为 GPS 很容易受到建筑物等的影响)

【讨论】:

  • 感谢您的回答,但我是这个主题的新手,您能告诉我如何使用 getBearing() 方法进行计算。
  • getBearing() 以度数为单位返回您的运动/设备的当前航向(例如:如果您向东移动,则为 90°)。 developer.android.com/reference/android/location/… 所以你可以用它来计算轴承是否有明显变化,以确定拐角...
  • 感谢您的回复,我试了一下,但它给出了 0.0 方向,我也使用 sensorSimulator 来改变方向,我应该在真实设备上尝试。
  • 你好,我需要一些帮助,下面我有11个位置和它们的方位那么如何比较方位和转弯?地点:-19.994886,73.741565 19.997346,73.741729 19.997366,73.742183 19.998072,73.74615 19.998636,73.749712 20.001016,73.749669 20.001257,73.7519 20.000733,73.753917 20.007508,73.75499 20.007105,73.759625 19.998475,73.768895轴承:-3.6060154 87.33176 79.337234 80.490555 -0.9784346 83.48032 105.3669 8.5141535 95.25472 134.5615
  • 看看方位:你有 -3,然后是 87,然后是 79,然后是 80,然后是 -1……这些是你面对的方向。显然,您从第一次测量到第二次测量转了 90°,然后在第五次和第六次测量之间再次向另一个方向转了 90°...
【解决方案2】:

为了计算距离,没有必要专门检测用户的转弯。使用 LocationManager,您可以获得位置,例如每秒钟。只需总结这些位置之间的距离即可。

如果你只有 E 和 F 的位置,或者你有 3 个额外的位置在进行中,那么距离没有影响。

您可能会错过确切的角落,但 LocationManager 可以非常快地提供位置,所以这不是什么大问题,而且 GPS 定位也不是那么准确。

计算两个位置之间的距离

要计算两个Location 对象之间的距离,请使用Location.distanceTo(),它会给出以米为单位的距离。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-11-02
    • 2012-06-30
    • 2021-02-12
    • 1970-01-01
    • 1970-01-01
    • 2014-03-31
    • 2014-10-10
    • 1970-01-01
    相关资源
    最近更新 更多