数据是通过GPS接收到的,
   经度              纬度
117.039638 35.231677
117.038888 35.233074
117.038282 35.234351
117.037776 35.235622
117.037368 35.236937求教根据两点经纬度得到距离的 delphi 算法?误差不要太大, 非常感谢...

解决方案 »

  1.   

    http://www.movable-type.co.uk/scripts/latlong.html
    参考这里,工具/算法/代码都有,虽然没有Delphi的代码,学习后自己写吧。
      

  2.   

    大体步骤如下,没经过自己验证,在记事本中编写的,可以根据delphi编译环境再做调整。
    uses math;
    const double EARTH_RADIUS := 6378.137;
    function rad(d:double):double;
    begein
       Result := d * PI / 180.0;
    end;
    function GetDistance(lat1,lng1,lat2,lng2:double) :double
    var
    radLat1,radLat2,a,b,s:double;  
    begin
       radLat1 := rad(lat1);
       radLat2 := rad(lat2);
       a := radLat1 - radLat2;
       b := rad(lng1) - rad(lng2);   s := 2 * Asin(Sqrt(Pow(Sin(a/2),2) +
        Cos(radLat1)*Cos(radLat2)*Pow(Sin(b/2),2)));
       s := s * EARTH_RADIUS;
       s := Round(s * 10000) / 10000;
       Result := s;
    end;