Привет, ребята, мне нужно преобразовать координаты в следующем виде:
N42-53.9° W072-16.2°
В то, что выглядит следующим образом:
-90.7311 0.346944
Было бы полезно оценить функцию php – или просто формула была бы неплохой 🙂
Я нашел онлайн-калькулятор JS и 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); } ?>
Сделайте это с помощью простой математики:
arcsecond is 1⁄3,600 of a degree arcminute is 1/60 of a degree S,E negative, N,W positive example: S 23° 25' 33.8: -1 * 23+25/60+33.8/3600 = -23,426055555555555555555555555556°