我知道度數轉換爲毫秒的公式,反之亦然。它可以這樣實現:度和毫秒之間的轉換
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