<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                通過[微信企業號開發:微信考勤](http://blog.csdn.net/xuexiaodong009/article/details/47952239)中的方法計算出了用戶的地理位置,我們知道GPS會有一定偏差,但如何把這個偏差考慮進去呢?例如在500米的偏差內都認為是在辦公室內呢? 有兩種方法,一種是使用根據兩點經緯度計算距離的方法,一種是調用地圖的API, 1根據兩點經緯度計算距離的方法 核心代碼: ~~~ private const double EARTH_RADIUS = 6378.137*1000;//地球半徑,單位為米 private static double rad(double d) { return d * Math.PI / 180.0; } /// <summary> /// 返回兩點之間的距離,單位為米 /// </summary> /// <param name="lat1"></param> /// <param name="lng1"></param> /// <param name="lat2"></param> /// <param name="lng2"></param> /// <returns></returns> public static double GetDistance(double lat1, double lng1, double lat2, double lng2) { double radLat1 = rad(lat1); double radLat2 = rad(lat2); double a = radLat1 - radLat2; double b = rad(lng1) - rad(lng2); double s = 2 * Math.Asin(Math.Sqrt(Math.Pow(Math.Sin(a / 2), 2) + Math.Cos(radLat1) * Math.Cos(radLat2) * Math.Pow(Math.Sin(b / 2), 2))); s = s * EARTH_RADIUS; s = Math.Round(s * 10000) / 10000; return s; } ~~~ [具體原理參考](http://www.cnblogs.com/ycsfwhh/archive/2010/12/20/1911232.html) 2調用地圖的API 因為我調用的是百度地圖,因此應該使用百度地圖計算距離的方法 核心方法: ~~~ // 百度地圖API功能 var map = new BMap.Map("allmap"); map.centerAndZoom("重慶",12); //初始化地圖,設置城市和地圖級別。 var pointA = new BMap.Point(106.486654,29.490295); // 創建點坐標A--大渡口區 var pointB = new BMap.Point(106.581515,29.615467); // 創建點坐標B--江北區 alert('從大渡口區到江北區的距離是:'+(map.getDistance(pointA,pointB)).toFixed(2)+' 米。'); //獲取兩點距離,保留小數點后兩位 var polyline = new BMap.Polyline([pointA,pointB], {strokeColor:"blue", strokeWeight:6, strokeOpacity:0.5}); //定義折線 map.addOverlay(polyline); //添加折線到地圖上 ~~~ [具體參考](http://developer.baidu.com/map/jsdemo.htm#a6_1) 這兩種方法會有一定的偏差,但可以接受。我個人認為百度計算出來的會更準確一些,畢竟地球不是標準的球形,百度應用這么廣泛,應該已經修正了部分偏差。 例如對于點,Point(106.486654,29.490295),Point(106.581515,29.615467),百度計算出來的距離16670.90 米,通過經緯度計算出來的距離為16689.5796,偏差為20米, 還是可以接受的。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看