現在、データベース内の各店舗間の距離を「自宅」の場所まで計算するデータベースクエリがあります。この式を使って飛行距離を計算しています。緯度/経度の数学的質問(2つの座標間の距離)
http://www.movable-type.co.uk/scripts/latlong.html
その後、私はそれらを発注し、それらを表示しています。私は緯度経度がある範囲内にある店舗を検索するだけです。
たとえば、データベース内の各店舗間の距離(30000以上)を計算する代わりに、特定の範囲内の緯度/経度を持つグループをグループ化し、それらの間の距離を計算します。
今、私は実際の境界を計算する方法を見つけようとしています。距離は5km以下でなければなりません。したがって、私は5を100で割って、その量で緯度と経度を上限にします。
SELECT storeid, storedescription, address, city, storebannerdescription, lat, lon,
ROUND (gc_dist (lat, lon, 43.758152, -79.746639), 1) AS distance
FROM storelatlon
WHERE ((lat-43.758152) < 0.05 AND (lat -43.758152) > -0.05) AND ((lon-(-79.746639)) < 0.05 AND (lon-(-79.746639)) > -0.05)
ORDER BY Distance
あなたの質問はありますか? –
私はあなたが何を求めているのかは分かりませんが、角度の測度を減算しても距離については何も教えてくれないことに注意します。 –
何が問題なのですか?私はそれが「これは有効か良い実装ですか?」と想定しています。また、どのデータベースを使用していますか?一部のデータベースでは、緯度/経度の計算(Oracle Locatorなど)がサポートされていますが、これは必ずしも無料ではありません(Oracle Spatialはそうではなく、行がLocatorで終わりSpatialで始まる場所を知るのが難しい場合があります)。他のデータベースも、MySQLを含む基本的なサポートを提供します。 – pickypg