百度座標計算兩點直線距離

PHPcode

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);
    }

Pythonci

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
相關文章
相關標籤/搜索