两个 GEO 位置之间的距离 [重复]

Posted

技术标签:

【中文标题】两个 GEO 位置之间的距离 [重复]【英文标题】:Distance Between Two GEO Locations [duplicate] 【发布时间】:2010-10-01 10:54:11 【问题描述】:

我有两个 GEO 位置。如何计算它们之间的距离?

【问题讨论】:

***.com/questions/1420045/… 【参考方案1】:

如果您使用 Google Maps API v3,您可以按如下方式计算距离:

几何库中包含 Google 地图 javascript 文件:

http://maps.google.com/maps/api/js?sensor=true&libraries=geometry

现在可以使用computeDistanceBetween() 方法测量距离:

var from = new google.maps.LatLng(49.004, 8.456);
var to   = new google.maps.LatLng(49.321, 8.789);
var dist = google.maps.geometry.spherical.computeDistanceBetween(from, to);

【讨论】:

很好,但不要忘记,在您必须付款后,直到每天 25 000 次请求才会忘记,所以在您的应用或网站上使用它时要小心。 @Matohawk 计算没有查询到 G 后端的距离!所以一天使用这个功能25000次以上是没有限制的。 谢谢,我不知道这是否有意义,所以我们不需要 google api。我相信谷歌会在他们的服务器上计算优化计算的值。 developers.google.com/maps/documentation/javascript/… @Matohawk 是对的。请检查此链接以获取完整的详细信息。每天 2,500 个免费元素,按客户端和服务器端查询的总和计算;启用计费以获得更高的每日配额,按 0.50 美元/1000 个额外元素计费,每天最多 100,000 个元素。 辛苦了,谢谢。【参考方案2】:

GPS 坐标是 WGS84 球体上的地理坐标。在这个模型下,Vincenty 的公式给出了亚毫米精度的结果。对于大多数应用程序来说,这要么是矫枉过正,要么实际上具有欺骗性,因为 WGS84 并未按照该比例对地球表面进行建模。

您可以比较各种距离计算方法的准确性on this page链接断开;请查看source code)。如您所见,球面近似和微分近似(后者使用勾股定理和正确的局部度量)在很多情况下都是不准确的。

在其余方法中,第一种方法使用球体的平均半径从地理纬度转换为地心纬度,而第二种方法使用余弦规则在“小”距离的情况下获得更准确的结果(其中 ' 的定义small'主要取决于纬度的差异)。

一个单独的脚本,只包含can be found here 这两个方法,它提供了一个名为distance() 的函数,并需要四个参数:两个纬度、经度差(均以弧度为单位)和一个布尔标志,指示距离是否为'小'。

【讨论】:

如何使用这个 distance.js 脚本? @powtac:将示例代码添加到 mercurial.intuxication.org/hg/js-hacks/raw-file/tip/geo/… ;如果您觉得这样更方便,请随意修改脚本以包含纬度/经度转换... 这篇文章中的所有链接现在都失效了。 @JudahHimango:脚本可以从pikacode.com/mercurial.intuxication.org/js-hacks.tar.gz恢复;如果我不忘记这件事,我会尽快将它们藏在更容易接近的地方...... 您好,您上面提到的链接无效。你能告诉我一些其他的替代指南吗【参考方案3】:

This page 有 JavaScript 代码,用于计算两个地理位置的距离,如果这是你所追求的。

【讨论】:

【参考方案4】:

这取决于您想要的准确度。

你可以通过基本的三角三角学来计算 - 即计算它们的经度之间的差异,这是一方面;然后他们的纬度之间的差异,这是第二个。现在你可以用初中数学很容易地计算出第三边(即两者之间的实际距离)。

但是,该方法忽略了地球表面的曲率,因此如果您需要考虑这一点,则需要开始变得更加聪明。但是除非距离非常大或者您需要非常高的准确度,否则您无需担心这一点。大多数情况下,基本的触发方法都可以。

当然,另一点是这些方法可以为您提供直线测量。这可能是您想要的,但您可能还想知道要行驶的距离——即在路上。这是完全不同的,因为您需要拥有所有相关道路的准确地图。如果这是您需要的,委托给 Google 的地图服务(或其他几个类似的替代方案之一)可能会更容易。

【讨论】:

以上是关于两个 GEO 位置之间的距离 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何计算两个经纬度之间的距离[重复]

计算当前位置和点之间的距离[重复]

寻找我和朋友之间最近的距离[重复]

重复计算两个值之间的距离 Excel

为数组 2 的每一行计算数组 1 的一行之间的距离,然后移动到数组 1 的下一行并重复

地图上的两点怎样计算距离