【问题标题】:Calculate distance between two geolocs in JavaScript [duplicate]在JavaScript中计算两个geolocs之间的距离[重复]
【发布时间】:2013-01-23 17:07:38
【问题描述】:

可能重复:
How do I calculate distance between two latitude-longitude points?

如何计算 JavaScript 中地理位置之间的距离(以米为单位)?我找到了这个answer,但它是用 Java 实现的,我不太明白发生了什么。

我正在使用 HTML 5 的地理位置功能并使用 JavaScript 来计算距离。到现在为止我有这个功能:

    function calculateDistance(lat1, lat2, lng1, lng2)
    {
        return Math.sqrt(((lat1 + lat2)*(lat1 + lat2)) + ((lng1  + lng2)*(lng1  + lng2)));
    }

显然这不是我需要的值。有人可以帮帮我吗?

【问题讨论】:

  • 您必须将其视为球面几何问题。也就是说,你必须找到的是球体表面上的弧长(这也不是真的正确,但它更接近)。
  • 更多谷歌搜索会显示这个question has been asked before。解决方案甚至在 JavaScript 中!
  • @thanks voithos,投票决定关闭这个。

标签: javascript


【解决方案1】:
var R = 6371; // Earth radius in km
var dLat = (lat2-lat1).toRad();
var dLon = (lon2-lon1).toRad();
var lat1 = lat1.toRad();
var lat2 = lat2.toRad();

var a = Math.sin(dLat/2) * Math.sin(dLat/2) +
    Math.sin(dLon/2) * Math.sin(dLon/2) * Math.cos(lat1) * Math.cos(lat2); 
var c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a)); 
var d = R * c;

这不是我的代码。取自:http://www.movable-type.co.uk/scripts/latlong.html 详情请查看链接。

【讨论】:

    【解决方案2】:

    也许this 会有所帮助,而这个answer 也会有所帮助。

    【讨论】:

      猜你喜欢
      • 2022-01-17
      • 1970-01-01
      • 2013-01-15
      • 2021-05-15
      • 1970-01-01
      • 2012-06-18
      • 2017-01-26
      • 2023-04-02
      • 2017-09-15
      相关资源
      最近更新 更多