eTrex Vistaでは日付8桁形式のファイル名で日毎にファイルが作成されていた。たとえば20130105.gpxとか。eTrex30ではCurrent.gpx一つに追記していく形式のようで、そのままでは整理が面倒。
ということで、phpとgpsbabelで日毎に切り出すようにしてみた。
<?php $gpxfile=urldecode($argv[1]); $gpx=file_get_contents($gpxfile); preg_match_all("/<\/ele><time>(.*)<\/time>/U",$gpx,$times); $dates = array(); foreach($times[1] as $time){ array_push($dates,date("Ymd",strtotime($time))); } $dates=array_unique($dates); foreach($dates as $date){ $cmd = "gpsbabel -t -i gpx -f " . $gpxfile . " -x track,start=" . $date . "000001,stop=" . $date . "235959 -o gpx,garminextensions -F " . $date . ".gpx"; echo "$cmd\n"; exec($cmd); } ?>
自分専用なのでエラー処理などは省略。タイムゾーン関連は未検証。
Current.gpxが時々変になってテキストエディタで開けなくなるけど、これはもしかしたらOSの排他制御の影響かもしれない。