<tfoot id='b5w0C'></tfoot>

    <small id='b5w0C'></small><noframes id='b5w0C'>

  • <i id='b5w0C'><tr id='b5w0C'><dt id='b5w0C'><q id='b5w0C'><span id='b5w0C'><b id='b5w0C'><form id='b5w0C'><ins id='b5w0C'></ins><ul id='b5w0C'></ul><sub id='b5w0C'></sub></form><legend id='b5w0C'></legend><bdo id='b5w0C'><pre id='b5w0C'><center id='b5w0C'></center></pre></bdo></b><th id='b5w0C'></th></span></q></dt></tr></i><div id='b5w0C'><tfoot id='b5w0C'></tfoot><dl id='b5w0C'><fieldset id='b5w0C'></fieldset></dl></div>
      <legend id='b5w0C'><style id='b5w0C'><dir id='b5w0C'><q id='b5w0C'></q></dir></style></legend>

        <bdo id='b5w0C'></bdo><ul id='b5w0C'></ul>

        如何在 JavaScript 中找到我到已知位置的距离

        时间:2023-09-06
        • <bdo id='9CUaG'></bdo><ul id='9CUaG'></ul>
          <i id='9CUaG'><tr id='9CUaG'><dt id='9CUaG'><q id='9CUaG'><span id='9CUaG'><b id='9CUaG'><form id='9CUaG'><ins id='9CUaG'></ins><ul id='9CUaG'></ul><sub id='9CUaG'></sub></form><legend id='9CUaG'></legend><bdo id='9CUaG'><pre id='9CUaG'><center id='9CUaG'></center></pre></bdo></b><th id='9CUaG'></th></span></q></dt></tr></i><div id='9CUaG'><tfoot id='9CUaG'></tfoot><dl id='9CUaG'><fieldset id='9CUaG'></fieldset></dl></div>

              <tfoot id='9CUaG'></tfoot>
                • <small id='9CUaG'></small><noframes id='9CUaG'>

                    <tbody id='9CUaG'></tbody>

                  <legend id='9CUaG'><style id='9CUaG'><dir id='9CUaG'><q id='9CUaG'></q></dir></style></legend>
                  本文介绍了如何在 JavaScript 中找到我到已知位置的距离的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

                  问题描述

                  在浏览器中使用 JavaScript,我如何确定从我当前位置到另一个我知道经纬度的位置的距离?

                  Using JavaScript in the browser, how can I determine the distance from my current location to another location for which I have the latitude and longitude?

                  推荐答案

                  如果您的代码在浏览器中运行,您可以使用 HTML5 地理定位 API:

                  If your code runs in a browser, you can use the HTML5 geolocation API:

                  window.navigator.geolocation.getCurrentPosition(function(pos) { 
                    console.log(pos); 
                    var lat = pos.coords.latitude;
                    var lon = pos.coords.longitude;
                  })
                  

                  一旦您知道目标"的当前位置和位置,您就可以按照此问题中记录的方式计算它们之间的距离:计算两个经纬度点之间的距离?(Haversine 公式).

                  Once you know the current position and the position of your "target", you can calculate the distance between them in the way documented in this question: Calculate distance between two latitude-longitude points? (Haversine formula).

                  所以完整的脚本变成了:

                  So the complete script becomes:

                  function distance(lon1, lat1, lon2, lat2) {
                    var R = 6371; // Radius of the earth in km
                    var dLat = (lat2-lat1).toRad();  // Javascript functions in radians
                    var dLon = (lon2-lon1).toRad(); 
                    var a = Math.sin(dLat/2) * Math.sin(dLat/2) +
                            Math.cos(lat1.toRad()) * Math.cos(lat2.toRad()) * 
                            Math.sin(dLon/2) * Math.sin(dLon/2); 
                    var c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a)); 
                    var d = R * c; // Distance in km
                    return d;
                  }
                  
                  /** Converts numeric degrees to radians */
                  if (typeof(Number.prototype.toRad) === "undefined") {
                    Number.prototype.toRad = function() {
                      return this * Math.PI / 180;
                    }
                  }
                  
                  window.navigator.geolocation.getCurrentPosition(function(pos) {
                    console.log(pos); 
                    console.log(
                      distance(pos.coords.longitude, pos.coords.latitude, 42.37, 71.03)
                    ); 
                  });
                  

                  显然我现在距离马萨诸塞州波士顿市中心 6643 米(这是硬编码的第二个位置).

                  Apparently I am 6643 meters from the center of Boston, MA right now (that's the hard-coded second location).

                  查看这些链接了解更多信息:

                  See these links for more information:

                  • http://html5demos.com/geo
                  • http://diveintohtml5.info/geolocation.html
                  • 计算两个经纬度点之间的距离?(Haversine 公式)
                  • toRad() Javascript 函数抛出错误

                  这篇关于如何在 JavaScript 中找到我到已知位置的距离的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持html5模板网!

                  上一篇:哪些设备支持通过 navigator.geolocation 进行 Javascr 下一篇:如何使用 HTML5 地理位置找到用户所在的国家/地区

                  相关文章

                  最新文章

                  <i id='EwuyD'><tr id='EwuyD'><dt id='EwuyD'><q id='EwuyD'><span id='EwuyD'><b id='EwuyD'><form id='EwuyD'><ins id='EwuyD'></ins><ul id='EwuyD'></ul><sub id='EwuyD'></sub></form><legend id='EwuyD'></legend><bdo id='EwuyD'><pre id='EwuyD'><center id='EwuyD'></center></pre></bdo></b><th id='EwuyD'></th></span></q></dt></tr></i><div id='EwuyD'><tfoot id='EwuyD'></tfoot><dl id='EwuyD'><fieldset id='EwuyD'></fieldset></dl></div>

                    <small id='EwuyD'></small><noframes id='EwuyD'>

                  1. <legend id='EwuyD'><style id='EwuyD'><dir id='EwuyD'><q id='EwuyD'></q></dir></style></legend>
                      <bdo id='EwuyD'></bdo><ul id='EwuyD'></ul>
                  2. <tfoot id='EwuyD'></tfoot>