【问题标题】:Get Degree From current location to the destination location Android获取学位从当前位置到目标位置 Android
【发布时间】:2016-04-20 18:49:01
【问题描述】:

美好的一天。我被告知要制作一个应用程序,一旦相机距离目的地 100 米,它就会在相机表面显示一些徽标。我做到了,现在的问题是,如果我向后转建筑物,标志仍然会出现在100米外,并且相机无法猜测我是否面对正确的公司。所以我考虑了android中两个位置的方位和度数。想法是之间有角度我的位置和目标位置,一旦角度达到 0.0,这意味着用户面向正确的位置,因此我可以显示它。但是使用 BearingTo 方法查看 LOCATION 类代码我无法真正理解它返回了什么。我的问题是我该如何实现这样的逻辑?bearingTo 是否给出了我应该将自己从当前位置旋转到目标位置以笔直面对它的角度,或者它给出了某种不同的逻辑?如果是这样,我应该使用什么?

【问题讨论】:

  • 如果您将问题格式化为更具可读性,这将对我们有所帮助。
  • 我只需要用户将手机摄像头对准具有经度和纬度的建筑物...

标签: android location angle bearing


【解决方案1】:

bearingTo() 方法只返回两个位置之间的方位(罗盘方向):调用它的位置和作为参数提供的位置。实际上,Location 对象或 LocationManager 中的任何内容都不知道您的设备方向,即摄像头指向的位置。

您需要使用指南针(磁力计和加速度计)来了解设备相对于地球表面的方向,即了解相机指向的位置。

因此,使用bearingTo(),您可以计算“正确方向”,并使用指南针获得“当前方向”,然后您可以比较这两者,甚至告诉用户如果他/她应该转向哪个方向指向某个特定的建筑物。 (只需正确处理 359.999 ... 0.000 度边界。)

获取指南针方向有点复杂,因此最好尝试找到一个不错的教程来学习。 Here's is one decent implementation。或者你可以更深入地研究 Android 的传感器和一些矩阵计算,并通过the Android documentation 进行研究。

或者您当然可以在 Stack Overflow 中搜索 older discussions about getting a compass heading 并找到例如 this code snipped from a mathematician

【讨论】:

    猜你喜欢
    • 2011-07-15
    • 1970-01-01
    • 1970-01-01
    • 2015-03-27
    • 2018-12-21
    • 2012-01-22
    • 2016-07-30
    • 1970-01-01
    相关资源
    最近更新 更多