Этот код работает для преобразования длинного лата
/ начало лата /
$ txt_lat = "2306.2405, S";
$ latFirst= substr ($ txt_lat, 0,2);
$ getLatMinSec = substr ($ txt_lat, 2,9) .str_split (',') [0];
$ getLatDirection = substr($ txt_lat, 10,11);
$ latSecond = $ getLatMinSec / 60;
$ finalLat = floatval ($ latFirst) + floatval ($ latSecond);
if ($ getLatDirection == "S") {
$finalLat = "-".$finalLat;
}
echo $ finalLat;
/ long start /
$ txt_long = "07235.6583, W";
$ longFirst = substr ($ txt_long, 0,3);
$ getLongMinSecL = substr ($ txt_long, 3,11). str_split (',') [0];
$ getLongDirection = substr ($ txt_long, 11,12);
$ longSecond = $ getLongMinSecL / 60;
$finalLong = floatval ($ longFirst) + floatval ($ longSecond);
if ($ getLongDirection == "W") {
$finalLong = "-".$finalLong;
}
echo $ finalLong;
=========== Вывод ================
"широта": "-23.104008333333"
"долгота": "-72.594305"