【问题标题】:How to find if you're facing a certain location in Android?如何在 Android 中查找您是否面对某个位置?
【发布时间】:2017-09-10 00:20:57
【问题描述】:

我在网上搜索过,但还没有找到类似的东西。基本上,有没有一种方法可以让我知道我是否面对某个位置。

例如,我在纬度和经度中有我当前的位置,我在纬度和经度中有第二个位置。现在我想知道当我转身时第二个位置在我正前方的时间。

【问题讨论】:

标签: android location latitude-longitude


【解决方案1】:

我将假设您的意思是手机“面向”感兴趣的位置,并且您已经知道哪个轴将确定这一点。我要做的是使用SensorManager.getOrientation(float\[\], float\[\]) 来获取您设备面向的弧度,然后将其转换为度数。

接下来,我将确保从设备(GPS,而不是网络)获得准确的当前点,并从设备调用Location.bearingTo(Location),以目标位置作为参数来获取它的度数。

最后,我会比较两个结果,并确定设备是否在一定范围内“面向”。这可能需要根据目的地与当前位置的距离进行调整,但我会尝试一下。

【讨论】:

  • 非常感谢!不幸的是,我不知道哪个轴将决定这一点。你能启发我吗?非常感谢!
  • 将此链接用作手机坐标系的参考 (developer.android.com/guide/topics/sensors/…)。例如,如果您希望手机背面朝向第二个位置,那就是负 Z 轴。
  • 太棒了!是否可以使用简单的 if 语句进行比较? if (-zaxis == bearing)?非常感谢,我真的很感谢所有的帮助。我对这一切都很陌生,所以现在有点困惑,尤其是 Android 文档!
  • 另外,我的Location.bearingTo(location) 总是返回一个类似-0.143435 的数字。我可以用Math.toDegrees(bearing) 把它变成度数吗?谢谢
  • 第一个问题,可能不是。我会尝试找出一个范围来比较它。至于第二个问题,根据文档,那是在真北以东的度数。
【解决方案2】:

如果您使用 Android 位置管理器,您可以预测您的方向/位置。看看这个example

【讨论】:

  • 我已经能够获得当前位置。现在我有了第二个位置,我希望能够知道我何时面向第二个位置的方向
【解决方案3】:

我不知道这是否有帮助,但您可以查看 Google 的 Places API:https://developers.google.com/maps/documentation/javascript/places#place_search_responses

响应有一个名为 viewport 的属性,通过一些处理可以帮助您

【讨论】:

  • 感谢您的回复,但在这种情况下这对我没有帮助。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-06-02
  • 2018-04-19
  • 2017-08-05
相关资源
最近更新 更多