Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/238.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/opengl/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何获得给定纬度和经度点的基本方向_Php_Web Services_Google Maps - Fatal编程技术网

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

Php 如何获得给定纬度和经度点的基本方向,php,web-services,google-maps,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

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

我以下面的方式进行查询

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'";
    }
if($direction=='NE')
{
//方向是东北
$query=“从tbl\U业务中选择*,其中纬度>'$lat'和经度>'$long';
}
如果($direction=='SE',则为else)
{
//东南部
$query=“从tbl\U业务中选择*,其中纬度>经度>经度>经度>经度“$long”;
}
如果($direction=='SW',则为else)
{
//西南部
$query=“从tbl_业务中选择*,其中纬度<'lat'和经度<'long';
}
如果($direction=='NW',则为else)
{
//西北部
$query=“从tbl_业务中选择*,其中纬度<'lat'和经度>'long';
}
$direction将具有(SE、NE、SW、NW)iphone传感器将发送方向信息。 如果只检查一次,我就会得到这些值。 当设备向另一个方向移动时,所显示的值会超出绑定范围。如何解决此问题以至少获得近似值

请帮助

大致方向:

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

$angle=atan2($y/$x);
然后你需要使用315到360,0到45是北,45到135是东等等


或者再次缩小NW、SE、NNW、SSE等的范围。

是否已检查轴承的计算,然后转换为N、S、E、W等。。(对于一般方向来说,等矩形近似应该足够了)我得到的角度是1.600612598889,-0.29816817826925,-3.0313750624002等等,但是如何确定这个地方位于哪个方向之间呢?