php 根据已知经纬度和距离要求,算出符合条件的经纬度范围

/**
 * @param $lng
 * @param $lat
 * @param float $distance 单位:km
 * @return array
 * 根据传入的经纬度,和距离范围,返回所有在距离范围内的经纬度的取值范围
 */
function location_range($lng, $lat,$distance = 0.5){
    $earthRadius = 6378.137;//单位km
    $d_lng =  2 * asin(sin($distance / (2 * $earthRadius)) / cos(deg2rad($lat)));
    $d_lng = rad2deg($d_lng);
    $d_lat = $distance/$earthRadius;
    $d_lat = rad2deg($d_lat);
    return array(
        'lat_start' => $lat - $d_lat,//纬度开始
        'lat_end' => $lat + $d_lat,//纬度结束
        'lng_start' => $lng-$d_lng,//纬度开始
        'lng_end' => $lng + $d_lng//纬度结束
    );
}

你可能感兴趣的:(php)