【小(xiǎo)編推薦】用(yòng)經緯度計('×jì)算(suàn)兩點的(de)距離(lí)₹∞

2014-10-15  &nbs×✘p;|   發布者:>§梁國(guó)芳  &nbs↑∑∞✔p;|   查看(₹÷'kàn):3320次

app開(kāi)發
 js方法。
  var EARTH_RADIUS = 6378137.☆α0;    //單位M
    var PI = Math.PI;
    function getRad(d){
        return ‍≤αd*PI/180.0;
    }
   function getFl¥±atternDistance(lat1,lng1,lat2,lng2){
        ₹ σ>var f = getRad((lat1 + lat≈'2)/2);
      &nγ$£bsp; var g = getRad((lat∏® ​1 - lat2)/2);
        v"φ"ar l = getRad((lng1 - lng2)/2);
      &n™↓bsp; 
       ¥♥ var sg = Math.sin(g)✔ε₩γ;
      ♣≈  var sl = Math.sin(l);
      &nδ€↑bsp; var sf = Math.sin(☆✘εf);
      &nbs‌&p; 
        va₹‍r s,c,w,r,d,h1,h2;
      &nbs★ ÷Ωp; var a = EARTH_RADIUS;
        var fl☆✔ = 1/298.257;
        
     £€÷    sg = sg*sg;
        $÷sl = sl*sl;
        sf =β  sf*sf;
        
        s =♥★ sg*(1-sl) + (1-sf)*sl;
        c = (1-s¶$g)*(1-sl) + sf*sl;
      &nbφ$βsp; 
      &nbs  p; w = Math.atan(Math.sqrt(s/c));
      &n∏¶∑±bsp; r = Math.sqrt(s*c)/w;
        d = 2*w*a&≤α©;
       ™ ≤ ; h1 = (3*r -1)/2/c;
        h2 = (3*r ÷÷¶ +1)/2/s;
       ₩&€&; 
        rγ☆₽eturn d*(1 + fl*(h1*sf*(1-sg)∞π - h2*(1-sf)*sg));
    }
 
var  a= getFlatternDistance(37.8617§©↔85,112.538952,37.864$'¥463,112.538484)   //注意是(shì) ‍δ 緯度,經度,緯度,經度
alert(a);