检查两条路线(以经度和纬度表示)是否彼此对立

时间:2019-03-21 09:49:40

标签: php math latitude-longitude

我一直在想这个。 我有两条路线:

路线1

  

起点:

     
      
  • lat:44.426767
  •   
  • lng:26.102538
  •   
     

终点:

     
      
  • lat:45.031428
  •   
  • lng:23.268939
  •   

路线2

  

起点:

     
      
  • lat:45.095770
  •   
  • lng:24.362799
  •   
     

终点:

     
      
  • lat:44.857492
  •   
  • lng:24.881478
  •   

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

如果您能朝正确的方向推动我,我将非常感谢,谢谢!

PS:我需要用php编写公式。

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

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

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