학위에서 밀리 초로의 변환에 대한 공식을 알고 있으며 그 반대도 마찬가지입니다. 다음과 같이 구현할 수 있습니다.학위와 밀리 초 사이의 변환
protected function decimal_to_milisecond($dec) {
if (!empty($dec)) {
$vars = explode(".",$dec);
if (count($vars) == 2) {
$deg = $vars[0];
$tempma = "0.".$vars[1];
$tempma = $tempma * 3600;
$min = floor($tempma/60);
$sec = $tempma - ($min*60);
return round((((($deg * 60) + $min) * 60 + $sec) * 1000));
}
else return false;
} else return false;
}
function milisecond_to_decimal($sec) {
if (!empty($sec)) {
$s = $sec/1000;
$d = (int)($s/3600);
$s = $s % 3600;
$m = (int)($s/60);
$s %= 60;
$ret = substr($d+((($m*60)+($s))/3600),0);
} else return null;
return $ret;
}
시나리오 : 나는 학위를 밀리 초로 변환하고 밀리 초에서 학위로 변환을 계속합니다. 변환 된 값은 원래 값과 약간의 차이가 있습니다. 나는 그 값이 본래의 값으로 정확하기를 바란다. 예 :
$lat = "1284146";
$long = "503136198";
$lat1 = milisecond_to_decimal($lat);
$long1 = milisecond_to_decimal($long);
$result1 = decimal_to_milisecond($lat1);
$result2 = decimal_to_milisecond($long1);
var_dump($result1, $result2);
The output is float(1284000) and float(503136000)
차이를 줄이는 또 다른 방법은도 및 밀리 초 사이의 변환으로 인해 발생합니까? 정말 고마워.
무엇이'DMS'입니까? – DevZer0
코드를 기준으로 분 - 초 - 초를 의미합니다. –
@ DevZer0 : 죄송합니다. – secretlm