Php: Convert Coordinates From Degrees to Decimal Format This code will convert longitude and latitude in D'M'S format into a decimal format. It also contains the function to do the reverse. The example below does contain a couple of strange lines of code. You will notice that we seperate the integer and floating point values from the decimal format using a set of string functions, instead of using the math round or floor functions. This fixes a 'feature' in some versions of PHP that causes it to behave in an unpredictable manner when handling math with floating points. For example, if you include the code print(91.1 - 91); in PHP you may not get the result you expect. You will actually get 0.099999999999994, not 1 ! This tends to throw of the calculations in the example. ``` function DMStoDEC(\$deg,\$min,\$sec) { // Converts DMS ( Degrees / minutes / seconds ) // to decimal format longitude / latitude     return \$deg+(((\$min*60)+(\$sec))/3600); }    function DECtoDMS(\$dec) { // Converts decimal longitude / latitude to DMS // ( Degrees / minutes / seconds ) // This is the piece of code which may appear to // be inefficient, but to avoid issues with floating // point math we extract the integer part and the float // part by using a string function.     \$vars = explode(".",\$dec);     \$deg = \$vars;     \$tempma = "0.".\$vars;     \$tempma = \$tempma * 3600;     \$min = floor(\$tempma / 60);     \$sec = \$tempma - (\$min*60);     return array("deg"=>\$deg,"min"=>\$min,"sec"=>\$sec); }    ?>```

by admin Date: 11-04-2013 hits : 1628