我有3個緯度和logintude:街道和點之間的距離,如果緯度和logintude
X: 1.000000000 1.000000000
Y: 2.000000000 2.000000000
Z: 3.000000000 3.000000000
我需要計算Z和Z之間的最小距離d。通過X形成的線 - > Y,請幫助,解決我的問題到現在爲止
PHP代碼:
function calc ($a, $ay, $b, $by,$c, $cy) {
$a = array($a, $ay, 0);// i use 0 altitude always
$b = array($b, $by, 0);
$c = array($c, $cy, 0);
$ab = array(
(($a[1] * $b[2]) - ($b[1] * $a[2])),
(($a[2] * $b[0]) - ($b[2] * $a[0])),
(($a[0] * $b[1]) - ($b[0] * $a[1]))
);
$normal = pow(pow($ab[0],2)+pow($ab[1],2)+pow($ab[2],2),0.5);
$d = array(
($ab[0]/$normal),
($ab[1]/$normal),
($ab[2]/$normal)
);
$e_ = (($d[0] * $c[0]) + ($d[1] * $c[1]) + ($d[2] * $c[2]));
$e = acos($e_);
$res = pi()/2 - $e;
$res = $res * 6378.1;
return $res;
}
最小距離'0'因爲這些點是共線的。 – abiessu 2014-09-04 21:10:24