zoukankan      html  css  js  c++  java
  • 计算两GPS坐标的实际距离

    javascript:

    function toRadians(degree) {
    return degree * Math.PI / 180;
    }
    function distance(latitude1, longitude1, latitude2, longitude2) {
    // R is the radius of the earth in kilometers
    var R = 6371;
    var deltaLatitude = toRadians(latitude2-latitude1);
    var deltaLongitude = toRadians(longitude2-longitude1);
    latitude1 =toRadians(latitude1);
    latitude2 =toRadians(latitude2);
    var a = Math.sin(deltaLatitude/2) *
    Math.sin(deltaLatitude/2) +
    Math.cos(latitude1) *
    Math.cos(latitude2) *
    Math.sin(deltaLongitude/2) *
    Math.sin(deltaLongitude/2);
    var c = 2 * Math.atan2(Math.sqrt(a),
    Math.sqrt(1-a));
    var d = R * c;
    return d;
    }

    php:

    /**
     * 计算两会标之间的距离(米)
     * @param double $lng_a 经度a
     * @param double $lat_a 维度a
     * @param double $lng_b 经度b
     * @param double $lat_b 维度b
     */
    function get_distance($lng_a, $lat_a, $lng_b, $lat_b) {
        //R是地球半径(米)
        $R = 6366000;
        $pk = doubleval(180 / 3.14169);
        
        $a1 = doubleval($lat_a / $pk);
        $a2 = doubleval($lng_a / $pk);
        $b1 = doubleval($lat_b / $pk);
        $b2 = doubleval($lng_b / $pk);
    
        $t1 = doubleval(cos($a1) * cos($a2) * cos($b1) * cos($b2));
        $t2 = doubleval(cos($a1) * sin($a2) * cos($b1) * sin($b2));
        $t3 = doubleval(sin($a1) * sin($b1));
        $tt = doubleval(acos($t1 + $t2 + $t3));
    
        return $R * $tt;
    }

    sql:

    已知坐标:(116.386294,39.923879)

    地球半径:6366000米

    SELECT id,Lastlongitude,Lastlatitude,
    (6366000 * ACOS( 
    (COS(RADIANS(116.386042))*COS(RADIANS(39.923927))*COS(RADIANS(Lastlongitude))*COS(RADIANS(Lastlatitude)))+
    (COS(RADIANS(39.923927))*SIN(RADIANS(116.386042))*COS(RADIANS(Lastlatitude))*SIN(RADIANS(Lastlongitude)))+
    (SIN(RADIANS(39.923927))*SIN(RADIANS(Lastlatitude)))
    )) AS distance
    FROM drv_driver_location
    HAVING distance<10
  • 相关阅读:
    【Codeforces 1051D】Bicolorings
    【Codeforces 827B】High Load
    【Codeforces 1006D】Two Strings Swaps
    【Codeforces 1108E1】Array and Segments (Easy version)
    【Codeforces 1141E】Superhero Battle
    【Codeforces 1042D】Petya and Array
    springmvc jar包下载 提供地址
    tomcat 8 startup.bat启动乱码问题
    js 对象数组删除和查找的方法
    sql 获取每个分组的前N条记录的写法
  • 原文地址:https://www.cnblogs.com/xusion/p/2871022.html
Copyright © 2011-2022 走看看