0
回答
一个点的经度和纬度,以这个点为圆心,1000米为半径,最大的经度和纬度,最小的经度和纬度
华为云实践训练营,热门技术免费实践!>>>   

比如我现在知道一个点的经度和纬度了,然后我想算出以这个点为圆心,1000米为半径,最大的经度和纬度,最小的经度和纬度,请问怎么算呢?

PHP代码我网上找了一个算出来好像不对呀

获取当前位置三公里内最大、最小经纬度
	/**
	 * 查找一定范围内的经纬度值
	 * 传入值:纬度  经度  查找半径(m)
	 * 返回值:最小纬度、经度,最大纬度、经度 
	 */
	public function getAround($lat,$lon,$raidus)
	{  
    	$PI = 3.14159265; 				// 圆周率
     $EARTH_RADIUS = 6378137;  	  // 地球半径
	$RAD = Math.PI / 180.0;  		// 弧度
    	
        $latitude = $lat;  
        $longitude = $lon;  
          
        $degree = (24901*1609)/360.0;  
        $raidusMile = $raidus;  
          
        $dpmLat = 1/$degree;  
        $radiusLat = $dpmLat*$raidusMile;  
        $minLat = $latitude - $radiusLat;  
        $maxLat = $latitude + $radiusLat;  
          
        $mpdLng = $degree*cos($latitude * ($PI/180));  
        $dpmLng = 1 / $mpdLng;  
        $radiusLng = $dpmLng*$raidusMile;  
        $minLng = $longitude - $radiusLng;  
        $maxLng = $longitude + $radiusLng; 
        $result['minwei']=$minLat;
        $result['minjing']=$minLng;
        $result['maxwei']=$maxLat;
        $result['maxjing']=$maxLng;
        return $result;
	}


lat=116.575831
lng=39.788623
Array
(
    [minwei] => 116.56684576
    [minjing] => 39.8087070499
    [maxwei] => 116.58481624
    [maxjing] => 39.7685389501
)



<无标签>
举报
顶部