我有一张表中的纬度和经度值列表。
我以下列方式查询
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)手机传感器将发送方向。 如果只检查一次,我得到的值。 当设备向其他方向移动时,显示的值是超出的。我怎样才能解决这个问题,以达到近似的近似值。
请帮助
答案 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等。