Warning: Invalid argument supplied for foreach() in /home/jihswbiz/public_html/t6.gwilt.org/refDox.php on line 212
Docs-toDms

 

ReLoad

Keys


Functions

arraybrowsercolorcookiedatetimeDBdebugdeviceDSTequiverrorflagsfontformatgeo
holidayhtmlisjsonmathparsePHPprintsearchsortstringtabletexttracetype
VOTDweatherxml

Function  toDms   Lines 543-582 (39 lines) file  utilsCoords.php   Last mod: Tue 2021-04-06 21:34:28

function toDms $a,$ll )
        {
#-k     geo
#       $a - signed direction;
#       $ll     -1 - unknown - sign only; will return a value if we can figure it out
#                0 - longitude - EW
#                1 - latitude - NS

        
$dir['N'] = $dir['E'] = '+';
        
$dir['S'] = $dir['W'] = '-';
        
$let $sgn '+';
        if (
is_alpha($a[0])) { $let $a[0]; $a substr($a,1); $sgn $dir[$let]; }
        elseif (
$a 0) { $sgn '-'$a abs($a); }

        if (
$ll  and  ($sgn == '-'))    $let 'S';
        elseif (
$ll)                    $let 'N';
        elseif (
$sgn == '-')            $let 'W';
        else                            
$let 'E';

        
$dd $a;
        
$d floor($a);
        
$m floor(($a $d)*60);
        
$s round(($a $d $m/60)*3600,2);

#               correct for round/truncation
        
if (abs(60-$s) < 0.01)  { $s 0;   $m++; }
        if (
$m 60)            { $m -= 60$d++; }
        if (
abs(60-$m) < 0.01)  { $m 0;   $d++; }

        if (
strlen($m) < 2$m '0' $m;
        if (
strlen(floor($s) < 2)) $s '0' $s;

        
$ar['AD'] = $let $dd;
        
$ar['SD'] = $sgn $dd;
        
$ar['DMS' ] = $sgn $d ':' $m ':' $s;
        
$ar['fancy'] = $d '&#176;' $m '&#8217;' $s '&#8221;' $let;
        if     (
$ll==1$ar['ISO6709'] = $sgn sprintf('%02d',$d) . sprintf('%02d',$m) . sprintf('%02d',round($s));
        elseif (
$ll==0$ar['ISO6709'] = $sgn sprintf('%03d',$d) . sprintf('%02d',$m) . sprintf('%02d',round($s));
        return 
$ar;
        }
?>