如何计算任何坐标处2个经度之间的距离?我们可以假设地球是一个球体吗?
Posted
技术标签:
【中文标题】如何计算任何坐标处2个经度之间的距离?我们可以假设地球是一个球体吗?【英文标题】:How to calculate distance between 2 longitudes at any coordinate? Can we assume earth to be a sphere? 【发布时间】:2014-07-22 11:55:08 【问题描述】:我以为这个在网上很容易找到,但似乎不是。
我想知道给定纬度值的 2 个连续经度之间的距离。那就是用一根绳子测量,保持它与赤道平行。假设地球是一个适当的球体,我可以通过简单的几何来计算它。但是这个假设可以接受吗?请给出一个关于该假设的误差范围的想法。或者,
请告诉我一个数学公式或 Java/android 代码来计算它。
谢谢。
编辑:感谢您的回复,它似乎爆发了一场小风暴。为了清楚起见,请阅读下面我对大卫的评论
EDIT2:争论的是大圆距离(通过haversine公式找到)和“绳索”距离是否相同?在我看来应该是。由于大圆距离是两点之间的最短距离,而在绳索距离的情况下,我限制自己沿着同一纬度从一个点移动到另一个点,我认为这是最短的距离。不是吗?
EDIT3:我错了。稍微想象一下后,我意识到大圆距离与纬度上的纵向间隔(“绳索”距离“)不同。只有当纬度恰好是赤道时,两者才会相同。大卫一直是说。所以是的,还没有正确的答案。对于我的情况,我会假设地球是一个球体,我会在一段时间内接受劳恩的回答,因为他/她已经部分回答了我的问题。仍然很想知道是否有获得正确计算的方法。另外,请通过 Byzantine Failure 给出的链接(名称为 wats ??)它谈到了如何创建存储过程并查询此类问题,真的很有帮助!回复!
【问题讨论】:
当您说“平行于赤道”时,您的意思是“沿纬线”吗?或者你的意思是同纬度两点之间的大圆距离?这不是一回事。 你的意思是“沿着一条纬线”吗?靠近极点的人更明显的是,这不是两点之间的最短连接。 嗨@David,不一样吗?那是“大圈”距离和“绳子”距离?如果我是正确的,大圆距离是 2 点之间的最短距离,但如果我限制自己沿着同一纬度移动,那会不会是同一件事,还是会有更短的距离? 不,不一样。纬线不是一个大圆(赤道除外),因此您沿纬线的距离可能远大于两点之间的最短距离。给自己一个地球仪和一根绳子,然后玩一玩。 【参考方案1】:看看这个:http://en.wikipedia.org/wiki/Geoid
对于日常用途,您可以使用球形模型。大地水准面变形始于高纬度地区,因此除非您从事非常精确、科学或极地旅行的活动,否则应该没问题。
【讨论】:
【参考方案2】:其实用 android 很简单:
Location locationA = new Location();
locationA.setLatitude(latA);
locationA.setLongitude(lngA);
Location locationB = new Location();
locationB.setLatitude(latB);
locationB.setLongitude(lngB);
float distance = locationA.distanceTo(locationB);
【讨论】:
这不是 OP 要求的!!地球上的“距离”是沿着一个大圆圈测量的,但 OP 要求“平行于赤道的绳索的长度”。 如果 latA = latB,他的答案是正确的,由 OP 将两者设置为相同的值。 @AlexWien - 不。OP 最有可能的意思是“沿着一条纬线”;但埃里克的回答给出了一个很大的圈距。这不是一回事。无论这是 OP 想要的 - 我们都必须等到 OP 在 cmets 中回答我的问题。不幸的是,“平行”这个词在球面几何中的含义有点模糊。 嗨@alex 请在我的问题下方查看我对大卫的评论。谢谢【参考方案3】:在地理定位的情况下通常使用的距离是haversine distance。这基本上是地球表面实际距离的一种方法,因为它是位于具有地球平均半径的球体上的两点的距离。
无论如何,如果你搜索它们,Java 中有很多实现。
编辑: 在这种情况下,如果两个点的某些坐标相同或不同(如果它们都不同),则没有任何真正的区别。
【讨论】:
【参考方案4】:您可以查看以下链接了解详细算法
http://www.arubin.org/files/geo_search.pdf
虽然这个是基于 javascript 的,但其实有一个 API 的函数可以计算两个给定的经纬度点之间的距离:https://developers.google.com/maps/documentation/javascript/reference#spherical
【讨论】:
以上是关于如何计算任何坐标处2个经度之间的距离?我们可以假设地球是一个球体吗?的主要内容,如果未能解决你的问题,请参考以下文章