1

スタック オーバーフローにはこのような質問がいくつかありますが、従うのに十分なほど類似した質問が見つからないためです。

ターゲットから x マイル以内にある行を db から選択しようとしています。

テーブル列の例:

| city_name(varchar) | lat(decimal) | lon(decimal) |

探しているクエリ効果 (php または mysql を使用)

$target_lat = ;
$target_lon = ;
"SELECT table.city_name WHERE (table.lat,table.lon) LESS THAN 20 MILES FROM ($target_lat,$target_lon")

明らかに、クエリがこの構造を取るとは思いません! (私は mysql で Pi などを使用したことがありません...)

4

4 に答える 4

3

mySql 用の地理空間パッケージを探しているようです。2 つの緯度/経度ポイント間の距離をチェックできる関数がここにリストされています。地球の曲率のため、通常の距離計算は緯度/経度では機能しないことに注意してください。=)

http://forge.mysql.com/wiki/GIS_Functions

于 2010-06-24T17:29:32.563 に答える
1

私はこれが素晴らしく、本当に理解しやすいことを発見しました

http://code.google.com/apis/maps/articles/phpsqlsearch.html

于 2010-06-24T20:11:01.107 に答える
0

Google で「mysql radius search」を検索すると、多くのコード スニペットが見つかります。

ここにコピーするには少し長すぎます。

編集: http://spinczyk.net/blog/2009/10/04/radius-search-with-google-maps-and-mysql/

于 2010-06-24T17:25:33.770 に答える
0

ピタゴラスの定理は、直角三角形の斜辺の長さの 2 乗は、他の 2 辺の 2 乗の和に等しいと述べています。

C^2 = A^2 + B^2
C = SQRT(A^2 + B^2)

この場合、他の辺の長さは、緯度と経度の値の差によって決まります。短距離では、これはかなり良い概算になります。ただし、これでもmilesは得られません。これは、緯度/経度とマイルの間に一定の関係がないため、変換がはるかに困難です。代わりに、経度間の距離は緯度の関数として変化します。

于 2010-06-24T17:37:19.673 に答える