2016-06-01 4 views
0

何が間違っていますか?私はgpx(lat、lon)ファイルからの距離を数えようとしていますが、間違った結果を受け取ります。gpxファイルからの正確なカウント距離 - ph

function distance($lat1, $lon1, $lat2, $lon2) { 
    $theta = $lon1 - $lon2; 
    $dist = sin(deg2rad($lat1)) * sin(deg2rad($lat2)) + cos(deg2rad($lat1)) * cos(deg2rad($lat2)) * cos(deg2rad($theta)); 
    $dist = acos($dist); 
    $dist = rad2deg($dist); 
    $kilometers = $dist * 60 * 1.1515 ; 
    return $kilometers; 
} 

$gpx_file_source = simplexml_load_file($gpx_patch); 
$j=0; 
foreach($gpx_file_source->trk->trkseg->trkpt as $point){ 
     if($j%2==0){ 
      $lat1=$point->attributes()[0]; 
      $lon1=$point->attributes()[1]; 
     }else{ 
      $lat2=$point->attributes()[0]; 
      $lon2=$point->attributes()[1]; 
      $totaldistance=distance(''.$lat1.'', ''.$lon1.'', ''.$lat2.'', ''.$lon2.'').; 
      $totaldistance+=$totaldistance; 
     } 
    $j++; 
} 
echo $totaldistance; //0.00011797444243905 

私の結果は次のとおりです。 0.00011797444243905キロ

正しい結果: 17.35キロ

GPXファイル:http://itros.us/distance.gpx

+0

($ dist * 60 * 1.1515 * 1.609344 * 1000)これはメートル単位です。 –

答えて

0

私はカウント機能を変更して取り組んでいます!

3958*3.1415926*sqrt(($lat2-$lat1)*($lat2-$lat1) + cos($lat2/57.29578)*cos($lat1/57.29578)*($lon2-$lon1)*($lon2-$lon1))/180 
関連する問題