检查两条路线(以纬度和经度表示)是不是彼此相对
Posted
技术标签:
【中文标题】检查两条路线(以纬度和经度表示)是不是彼此相对【英文标题】: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 很好,可以工作,但考虑到地球是一个球体,我认为这会有点不同,我必须考虑到这一点(我认为) 这取决于您的要求,但是,是的,您可能需要考虑到这一点。然后,您需要将其添加到您的要求中。 【参考方案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 的东西来计算它,然后进行比较。
【讨论】:
以上是关于检查两条路线(以纬度和经度表示)是不是彼此相对的主要内容,如果未能解决你的问题,请参考以下文章