PHP
private function calcDistance($lat1, $lng1, $lat2, $lng2, $len_type = 1, $decimal = 2) {
$pk = 180 / 3.14169;
$lat1 = $lat1 / $pk;
$lat2 = $lat2 / $pk;
$lng1 = $lng1 / $pk;
$lng2 = $lng2 / $pk;
$t1 = cos($lat1) * cos($lat2) * cos($lng2) * cos($lng1);
$t2 = cos($lat1) * sin($lng1) * cos($lat2) * sin($lng2);
$t3 = sin($lat1) * sin($lat2);
$s = 6366000 * acos($t1 + $t2 + $t3);
if ($len_type > 1) {
$s /= 1000;
}
return round($s,$decimal);
}
Python
pk = 180 / 3.14169
a1 = lat_a / pk
a2 = lng_a / pk
b1 = lat_b / pk
b2 = lng_b / pk
t1 = math.cos(a1) * math.cos(a2) * math.cos(b1) * math.cos(b2)
t2 = math.cos(a1) * math.sin(a2) * math.cos(b1) * math.sin(b2)
t3 = math.sin(a1) * math.sin(b1)
tt = math.acos(t1 + t2 + t3)
return 6366000 * tt