返回一个坐标点某个范围内的正方形四个顶点的坐标

/**
* @param $lng
* @param $lat
* @param int $distance
* @return array
* 返回一个坐标点某个范围内的正方形四个顶点的坐标
*/
function returnSquarePoint($lng, $lat,$distance = 5){
$earthdata=6371;//地球半径,平均半径为6371km
$dlng =2 * asin(sin($distance / (2 * $earthdata)) / cos(deg2rad($lat)));
$dlng = rad2deg($dlng);
$dlat = $distance/$earthdata;
$dlat = rad2deg($dlat);
$arr=array(
'left_top'=>array('lat'=>$lat + $dlat,'lng'=>$lng-$dlng),
'right_top'=>array('lat'=>$lat + $dlat, 'lng'=>$lng + $dlng),
'left_bottom'=>array('lat'=>$lat - $dlat, 'lng'=>$lng - $dlng),
'right_bottom'=>array('lat'=>$lat - $dlat, 'lng'=>$lng + $dlng)
);
return $arr;
}
posted @ 2018-11-13 17:06  tyong  阅读(1017)  评论(0)    收藏  举报