<?php

function distance($lat1, $lon1, $lat2, $lon2, $mode=true)
{
    // ˆÜ“xŒo“x‚ðƒ‰ƒWƒAƒ“‚É•ÏŠ·
    $radLat1 = deg2rad($lat1); // ˆÜ“x‚P
    $radLon1 = deg2rad($lon1); // Œo“x‚P
    $radLat2 = deg2rad($lat2); // ˆÜ“x‚Q
    $radLon2 = deg2rad($lon2); // Œo“x‚Q

    // ˆÜ“x·
    $radLatDiff = $radLat1 - $radLat2;

    // Œo“x·ŽZ
    $radLonDiff = $radLon1 - $radLon2;

    // •½‹ÏˆÜ“x
    $radLatAve = ($radLat1 + $radLat2) / 2.0;

    // ‘ª’nŒn‚É‚æ‚é’l‚Ìˆá‚¢
    $a = $mode ? 6378137.0 : 6377397.155; // Ô“¹”¼Œa
    $b = $mode ? 6356752.314140356 : 6356078.963; // ‹É”¼Œa
    //$e2 = ($a*$a - $b*$b) / ($a*$a);
    $e2 = $mode ? 0.00669438002301188 : 0.00667436061028297; // ‘æˆê—£S—¦^2
    //$a1e2 = $a * (1 - $e2);
    $a1e2 = $mode ? 6335439.32708317 : 6334832.10663254; // Ô“¹ã‚ÌŽqŒßü‹È—¦”¼Œa

    $sinLat = sin($radLatAve);
    $W2 = 1.0 - $e2 * ($sinLat*$sinLat);
    $M = $a1e2 / (sqrt($W2)*$W2); // ŽqŒßü‹È—¦”¼ŒaM
    $N = $a / sqrt($W2); // ‰K“Ñü‹È—¦”¼Œa

    $t1 = $M * $radLatDiff;
    $t2 = $N * cos($radLatAve) * $radLonDiff;
    $dist = number_format(sqrt(($t1*$t1) + ($t2*$t2)),1,".","");
	
    return $dist;
}


function gps_conv($data_)
{
	$int_ = floor($data_ / 100);
	$dec_ = $data_ / 100 - $int_;
	
	$cnv_data = number_format($int_ + $dec_/60 * 100.0,6,".","");
	return $cnv_data;
}



//$b_lon = 139.939078;
//$b_lat = 36.907515;

//$b_lon = 139.938390;
//$b_lat = 36.908520;

$b_lon = 139.938612;
$b_lat = 36.907460;




//$b_lon = 139.939102;
//$b_lat = 36.907544;
//$b_lon = 139.938293;
//$b_lat = 36.908503;
//$b_lon = 139.938599;
//$b_lat = 36.907381;

/*
>>> logger_latitude = 3540.8061
>>> decimal, integer = math.modf(logger_latitude/100.0)
>>> gps_latitude = integer + decimal / 60.0 * 100.0
>>> gps_latitude
35.68010166666666

$l
*/

$file_ = "20190312_edit3";

$file_name = $file_ .".log";
$out_file_name = $file_ ."_3.csv";


$fp = fopen("./gps/" .$file_name , "r");
$fp2 = fopen($out_file_name, "w");

while (!feof($fp)) {
 
  // fgets‚Åƒtƒ@ƒCƒ‹‚ð“Ç‚Ýž‚ÝA•Ï”‚ÉŠi”[
  $txt = fgets($fp);
 
//  if(strpos($txt,'[') !== false)
//  {
// 		fwrite($fp2,$txt ."\n");
//  }



//  if(strpos($txt,'GPGSA') !== false)
  if(strpos($txt,'GPGGA') !== false)
  {
  	  
  	  $a = explode(",",$txt);
  	  $ct = count($a);
  	  if($ct >= 6)
  	  {
		  $gps_date_tmp = date("Y-m-d H:i:s" ,mktime(substr($a[1],0,2), substr($a[1],2,2), substr($a[1],4,2), 03, 12, 2019) + 32400);
		  $lat_ = gps_conv($a[2]);
		  $lon_ = gps_conv($a[4]);
		  
		  $dist = distance($b_lat, $b_lon, $lat_, $lon_, $mode=true);
		  
	  	  fwrite($fp2,$gps_date_tmp ."," .$lat_ ."," .$lon_ ."," .$dist ."\n");
	  	  //fwrite($fp2,$a[15] ."\n");
	  }
  }
  	  
  


  
  // ƒtƒ@ƒCƒ‹‚ð“Ç‚Ýž‚ñ‚¾•Ï”‚ðo—Í
//  echo $txt.'\n';
 
}
fclose($fp);
fclose($fp2);





?>
