1

HI 私は、表に緯度と経度の値のリストを持っています。

私は次の方法でクエリを実行しています

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)phoneセンサーが方向を送信します。一度だけチェックした場合、値を取得しています。デバイスが他の方向に移動するたびに、表示される値は範囲外になります。少なくともおおよその値を達成するためにこれを解決するにはどうすればよいですか。

助けてください

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 に答える