0

このクエリの3959と、このクエリのロジックがわからないので、助けてください。

$sql = 'SELECT `Zip`, `City`, `State`, `Lat`, `Long`, 
( 3959 * acos( cos( radians("%s") ) * cos( radians( `Lat` ) ) * cos( radians( `Long` ) -    
radians("%s") ) + sin( radians("%s") ) * sin( radians( `Lat` ) ) ) ) AS distance 
FROM Zips 
HAVING distance < "%s"
ORDER BY distance LIMIT 0 , 2';
4

2 に答える 2

4

3959は、マイル単位の地球の半径です。クエリは、入力された経度と緯度とテーブル内のポイントの経度と緯度の間の距離(マイル単位)を計算し、最も近いものを選択します。それほど多くの論理はありません、それは純粋数学です。距離自体が出力されないことを考えると、3959による乗算を省略しても、同じ結果を得ることができます。

于 2012-12-10T06:28:26.963 に答える
1

このロジックは、緯度と経度を使用して場所を検索するためのものです。MySQLを使用した場所の検索を参照してください。

上記のロジックは、HaversineFormulaを使用して球内の場所を検索します

于 2012-12-10T06:28:08.157 に答える