【问题标题】:Checking if two routes (expressed in latitude and longitude) are opposing each other检查两条路线(以纬度和经度表示)是否彼此相对
【发布时间】:2019-08-12 03:26:17
【问题描述】:

我一直在用这个搞砸我的头。 我有两条路线:

路线 1

起点:

  • 纬度:44.426767
  • 液化天然气:26.102538

终点:

  • 纬度:45.031428
  • 液化天然气:23.268939

路线 2

起点:

  • 纬度:45.095770
  • 液化天然气:24.362799

终点:

  • 纬度:44.857492
  • 液化天然气:24.881478

现在,我知道这两条路线是相互对立的(如果我在地图上绘制它们),但我不太清楚如何用数学方法来说明这一点。 我试过研究数学向量,但我不知道如何通过纬度和经度坐标来表达向量。

如果您能给我一个正确的方向,我将不胜感激,谢谢!

PS:我需要用php写公式。

【问题讨论】:

  • 将纬度/经度视为 X/Y。那么它有什么不同呢? (请记住,您在这里使用的是球体,因此您可能想要处理一些“环绕”案例......)。另外:您需要定义“反对”;我很确定您不想要一个精确(数学)180 度对立,而是一些“余量”。
  • @RobIII 很好,可以工作,但考虑到地球是一个球体,我认为这会有点不同,我必须考虑到这一点(我认为)
  • 这取决于您的要求,但是,是的,您可能需要考虑到这一点。然后,您需要将其添加到您的要求中。

标签: php math latitude-longitude


【解决方案1】:

使用@matri70boss 链接将您的纬度/经度转换为 X/Y 向量,然后从 A (xA, yA) 到 B (xB, yB) 的 2 条路线分别对应一个向量 v (xB-xA, yB-是的)。

因此,您的 2 条路线有 2 个向量 v1 和 v2。如果你在它们之间做标量乘积,乘积的符号会告诉你它们是否指向相同的方向(如果为正:相同方向,负:相反方向,=0:垂直)。

【讨论】:

    【解决方案2】:

    您可以使用类似https://gis.stackexchange.com/questions/79633/how-to-determine-vector-between-two-lat-lon-points 的东西来计算它,然后进行比较。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-01-22
      • 2011-03-10
      • 2015-06-08
      • 1970-01-01
      • 1970-01-01
      • 2014-03-30
      • 2017-01-07
      • 1970-01-01
      相关资源
      最近更新 更多