1

嗨,我有一个表格中的纬度和经度值列表。

我正在通过以下方式查询

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)电话传感器将发送方向。如果只检查一次,我就会得到这些值。当设备向其他方向移动时,显示的值是出站的。我如何解决这个问题以至少获得近似值。

请帮忙

4

1 回答 1

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 等。

于 2012-08-17T15:25:31.527 回答