{"id":256,"title":"\u5730\u56fe\u4e0a\u8ba1\u7b97\u4e24\u70b9\u95f4\u7684\u8ddd\u79bb","good":0,"bad":0,"hit":2542,"created_at":"2017-02-20 15:55:43","content":"

\u5355\u4f4d\uff1a\u5343\u7c73\uff0c\u4f20\u7684\u5206\u522b\u4e3a\u4e24\u4e2a\u70b9\u7684\u7ecf\u7eac\u5ea6,\u7528\u767e\u5ea6\u7684\u5750\u6807\uff0c\u7ecf\u6d4b\u8bd5\u4e0d\u51c6\uff0c\u8c8c\u4f3c\u5e94\u8be5\u8f6cgps\u5750\u6807\u624d\u662f\u5bf9\u7684<\/p>

\/\/\u83b7\u53d62\u70b9\u4e4b\u95f4\u7684\u8ddd\u79bbpublic function GetDistance($lat1, $lng1, $lat2, $lng2){    define('PI',3.1415926535898);    define('EARTH_RADIUS',6378.137);    $radLat1 = $lat1 * (PI \/ 180);    $radLat2 = $lat2 * (PI \/ 180);    $a = $radLat1 - $radLat2;    $b = ($lng1 * (PI \/ 180)) - ($lng2 * (PI \/ 180));    $s = 2 * asin(sqrt(pow(sin($a\/2),2) + cos($radLat1)*cos($radLat2)*pow(sin($b\/2),2)));    $s = $s * EARTH_RADIUS;    $s = round($s * 10000) \/ 10000;    return $s;}<\/p>

<\/p>

\u4e0b\u9762\u8fd9\u4e2a\u6d4b\u8bd5\u662f\u51c6\u7684\uff0c\u8981\u8f6cgps\u5750\u6807<\/p>

<\/p>

\/** * \u8ba1\u7b97\u4e24\u4e2a\u5750\u6807\u4e4b\u95f4\u7684\u8ddd\u79bb(\u5343\u7c73,\u4e24\u4f4d\u5c0f\u6570) * @param float $fP1Lat \u8d77\u70b9(\u7eac\u5ea6) * @param float $fP1Lon \u8d77\u70b9(\u7ecf\u5ea6) * @param float $fP2Lat \u7ec8\u70b9(\u7eac\u5ea6) * @param float $fP2Lon \u7ec8\u70b9(\u7ecf\u5ea6) * @return int *\/function distanceBetween($fP1Lat, $fP1Lon, $fP2Lat, $fP2Lon){    $fEARTH_RADIUS = 6378137;    \/\/\u89d2\u5ea6\u6362\u7b97\u6210\u5f27\u5ea6    $fRadLon1 = deg2rad($fP1Lon);    $fRadLon2 = deg2rad($fP2Lon);    $fRadLat1 = deg2rad($fP1Lat);    $fRadLat2 = deg2rad($fP2Lat);    \/\/\u8ba1\u7b97\u7ecf\u7eac\u5ea6\u7684\u5dee\u503c    $fD1 = abs($fRadLat1 - $fRadLat2);    $fD2 = abs($fRadLon1 - $fRadLon2);    \/\/\u8ddd\u79bb\u8ba1\u7b97    $fP = pow(sin($fD1\/2), 2) +        cos($fRadLat1) * cos($fRadLat2) * pow(sin($fD2\/2), 2);    return round(intval($fEARTH_RADIUS * 2 * asin(sqrt($fP)) + 0.5)\/1000,2);}\/** * \u767e\u5ea6\u5750\u6807\u7cfb\u8f6c\u6362\u6210\u6807\u51c6GPS\u5750\u7cfb * @param float $lnglat \u5750\u6807(\u5982:106.426, 29.553404) * @return string \u8f6c\u6362\u540e\u7684\u6807\u51c6GPS\u503c: *\/function BD09LLtoWGS84($x, $y){ \/\/ \u7ecf\u5ea6,\u7eac\u5ea6    $arr['x']=$x;    $arr['y']=$y;    $Baidu_Server = "http:\/\/api.map.baidu.com\/ag\/coord\/convert?from=0&to=4&x={$x}&y={$y}";    $result = @file_get_contents($Baidu_Server);    $json = json_decode($result);    if($json->error == 0){        $bx = base64_decode($json->x);        $by = base64_decode($json->y);        $GPS_x = 2 * $x - $bx;        $GPS_y = 2 * $y - $by;        $arr['x']=$GPS_x;        $arr['y']=$GPS_y;    }    return $arr;}<\/p>"}