#!/usr/bin/perl -w
#
# 緯度経度ずらし
# Nowral
# 99/9/22
#

#緯度と経度の移動量
#秒単位で指定
#(デフォルト、日本時間)
$dlat = 0 + eval(&MacPerl'Ask("緯度方向のずらす量を秒単位で入力してください。", "+9.0"));
if($dlat>0) { $dlat = "+" . $dlat; }
$dlon = 0 + eval(&MacPerl'Ask("経度方向のずらす量を秒単位で入力してください。", "-14.1"));
if($dlon>0) { $dlon = "+" . $dlon; }

@files = @ARGV if $dlat || $dlon;
foreach $oldargv (@files) {

$newargv = $oldargv . $dlat . $dlon;
open(OUT, ">$newargv") || die "Filename too long, maybe?: $!\n";
&MacPerl'SetFileInfo('GPSy', 'TEXT', $newargv);

open(IN, "$oldargv");
while(<IN>){
  if(/^T\t/) {
    @ed = split("\t");
    $ed[5] = &slidedms($ed[5], $dlat);
    $ed[6] = &slidedms($ed[6], $dlon);

    $_ = join("\t", @ed);
  }
  print OUT;
}
close(IN);
close(OUT);


}
#&MacPerl'Quit(2);
die "The Unhappy End";



sub slidedms {
  my($dms, $ds) = @_;
  my($d, $m, $s, $sf);
  $dms =~ /(\d+)。(\d+)'(\d+)\.(\d)"/;
  $sf = int($1*36000 + $2*600 + $3*10 + $4 + $ds*10 + 0.5);
  $s = ($sf / 10) % 60;
  $m = ($sf /600) % 60;
  $d = int($sf / 36000);
  $sf %= 10;
  sprintf("%d。%02d\'%02d\.%d\"", $d, $m, $s, $sf);
}