【问题标题】:I want to find angle between two location respective to third location [closed]我想找到两个位置与第三个位置之间的角度[关闭]
【发布时间】:2015-04-20 07:37:52
【问题描述】:

地图上有三个位置。位置 A、位置 B 和位置 C。

我只有三个位置的纬度和经度。

现在我想在 android 地图“A”“C” 中找到角度“B” /strong>。

请帮助我。

【问题讨论】:

标签: android location maps angle


【解决方案1】:

例如看这个link

在伪代码中,过程或多或少是这样的:

假设 A、B 和 C 是具有 x 和 y 分量的二维向量。

//compute vectors ba and bc
ba = A-B
bc = C-B
//normalize the vectors (divide by the length)
ban = ba / sqrt(ba.x*ba.x + ba.y*ba.y)
bcn = bc / sqrt(bc.x*bc.x + bc.y*bc.y)
//compute the cosinus of the angle using the dot-product
cosAngle = ban.x * bcn.x + ban.y * bcn.y
//compute the angle
angle = acos(cosAngle)

注意: 当你减去两个向量时,减去各个坐标:

ba.x = A.x - B.x
ba.y = A.y - B.y

一个向量除以一个标量是相似的:

ban.x = ba.x / length
ban.y = ba.y / length

【讨论】:

  • 如何在 android 地图(ba 和 bc)上找到矢量?
  • 我不知道安卓地图。但我想有一些方法可以得到该点的两个坐标。一旦你有了坐标,你就可以按照上面的描述来计算它。使用现有的向量库,编写自己的向量库,或者简单地将 x 和 y 坐标保存在单独的变量中。
  • 这是个问题。我只有所有三个位置的纬度和经度。没有别的了。
  • 另一个垫脚石可能是获取欧几里得空间中的坐标。也许你只得到经度和纬度的坐标。对于跨越地球较大部分的大距离,它变得更加困难,因为那时您必须计算球体上弧之间的角度。然后我们需要在 3D 中计算它。
  • 你的方法是正确的,但我的问题是我如何在我的信息有限的地图上应用它(只有位置的纬度和经度)
猜你喜欢
  • 1970-01-01
  • 2011-07-03
  • 1970-01-01
  • 2011-12-28
  • 1970-01-01
  • 2017-01-13
  • 2011-10-08
  • 2015-07-03
  • 1970-01-01
相关资源
最近更新 更多