×

Welcome to TagMyCode

Please login or create account to add a snippet.
1
0
 
0
Language: PHP
Posted by: Massimo Zappino
Added: Nov 22, 2010 1:13 PM
Views: 321
  1.     function dmsToDec($deg, $min, $sec)
  2.     {
  3.         return $deg + ((($min*60) + ($sec)) / 3600);
  4.     }
  5.  
  6.     function decToDms($dec)
  7.     {
  8.         $dec = abs($dec);
  9.         $d = (int) $dec;
  10.         $m = (int) (($dec - $d) * 60);
  11.         $s = ($dec - $d - ($m / 60)) * 3600;
  12.         $s = round($s, 1);
  13.  
  14.         $array = array("deg" => $d, "min" => $m, "sec" => $s);
  15.  
  16.         return $array;
  17.     }
  18.  
  19.     function decToDmsString($dec, $latlng)
  20.     {
  21.         if (! $dec) {
  22.             return "-";
  23.         }
  24.         if ($latlng == 'lat') {
  25.             $card = ($dec > 0) ? 'N' : 'S';
  26.         } elseif($latlng == 'lng') {
  27.             $card = ($dec > 0) ? 'E' : 'W';
  28.         } else {
  29.             throw new Exception('$latlng is not valid, use "lat" or "lng"');
  30.         }
  31.  
  32.         $array = self::decToDms($dec);
  33.         $deg = $array['deg'] . '°';
  34.         $min = $array['min'] . '\'';
  35.         $sec = $array['sec'] . '\'\'';
  36.  
  37.         $string = $card . ' ' . $deg . ' ' . $min . ' ' . $sec;
  38.  
  39.         return $string;
  40.     }