Формат GPS в PHP

как сделано в PHP из формата 52.593800, 21.448850 формат + 52 ° 35 '37.68 ", + 21 ° 26' 55.86", как сделать это google http://maps.google.pl/maps?hl=pl&t=m&q=52.593800,21.448850 ?

Solutions Collecting From Web of "Формат GPS в PHP"

Источник

<?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); } 

Должно быть тривиально изменить массив на нужную строку.

Прямо из Википедии :

Учитывая десятичную продольную координату, такую ​​как -87.728055, тривиально преобразовать ее в форму DMS. Необходимо будет определить, является ли это широтной или продольной координатой, чтобы полностью ее преобразовать. Способ заключается в следующем:

  • Вычтите всю цифровую часть координаты, оставив дробную часть. Все число – это число градусов. 87,728055 = 87 градусов.
  • Умножьте оставшуюся дробную часть на 60. Это приведет к количеству минут во всей числовой части. 0,728055 × 60 = 43,6833 = 43 минуты.
  • Умножьте дробную часть количества минут на 60, создавая несколько секунд. 0,6833 x 60 = 40,998 = 41 секунд. Это можно считать 40 секундами, усечением десятичной дроби, округлением до 41 или сохранением всего числа.
  • В зависимости от того, является ли исходный номер широтной или продольной координатой и знаком числа, добавьте спецификатор N / S / E / W. В следующей таблице показаны возможности:
   Тип Dir.  Тест знака
   Широта  N +> 0
   Широта  S - <0
   Длинный.  E +> 0
   Длинный.  W - <0

Координата с 0 ° 0'0 "широта или долгота не является ни Северным, ни Южным, Восточным и Западным. Это просто нулевая широта или нулевая долгота.

Конечный результат: W 87 ° 43'41 ".