GPS format in PHP

as made in PHP from 52.593800 format, 21.448850 format + 52 ° 35 '37 .68 format, + 21 ° 26 '55.86 "how to do it google http://maps.google.pl/maps?hl=pl&t=m&q=52.593800,21.448850 ?

0
source share
2 answers

Source

<?php

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[0];
    $tempma = "0.".$vars[1];

    $tempma = $tempma * 3600;
    $min = floor($tempma / 60);
    $sec = $tempma - ($min*60);

    return array("deg"=>$deg,"min"=>$min,"sec"=>$sec);
}   

It should be trivial to change the array to the desired string.

+7
source

Straight from Wikipedia :

Given a decimal longitudinal coordinate, such as -87.728055, it is trivial to convert it to DMS form. It will be necessary to determine whether it is a latitudinal or longitudinal coordinate in order to completely transform it. The method is as follows:

  • , . - . 87,728055 = 87 .
  • 60. . 0,728055 x 60 = 43,6833 = 43 .
  • 60, . 0,6833 x 60 = 40,998 = 41 . 40 , , 41 .
  • , , N/S/E/W. :
  Type   Dir.   Sign    Test
  Lat.   N      +       > 0
  Lat.   S      -       < 0
  Long.  E      +       > 0
  Long.  W      -       < 0

0 ° 0'0 " , , , .

: W 87 ° 43'41 ".

+10

All Articles