如何获得给定纬度和经度点的基本方向

时间:2012-08-17 15:00:40

标签: php web-services google-maps

我有一张表中的纬度和经度值列表。

我以下列方式查询

if($direction=='NE')
    {
    //direction is NORTH EAST
    $query="SELECT * FROM tbl_business where Latitude > '$lat' and Longitude > '$long"; 
        }
    else if($direction=='SE')
    {
    //SOUTH EAST
        $query="SELECT * FROM tbl_business where Latitude >'$lat' and Longitude < '$long'";
    }
    else if($direction=='SW')
    {
    //SOUTH WEST

    $query="SELECT * FROM tbl_business where Latitude < '$lat' and Longitude < '$long'";
    }
    else if($direction=='NW')
    {
    //NORTH WEST
    $query="SELECT * FROM tbl_business where Latitude < '$lat' and Longitude > '$long'";
    }

$ direction 将有( SE,NE,SW,NW )(iphone)手机传感器将发送方向。 如果只检查一次,我得到的值。 当设备向其他方向移动时,显示的值是超出的。我怎样才能解决这个问题,以达到近似的近似值。

请帮助

1 个答案:

答案 0 :(得分:3)

大致方向:

$x = ($lon2-$lon1) * cos(($lat1+$lat2)/2);
$y = ($lat2-$lat1);

$angle=atan2($y/$x);

然后你需要使用315到360,0到45是北,45到135是东等。

或者再次缩小NW,SE,NNW,SSE等。