MAPアプリを開発中です。オーバーレイを描画するための緯度と経度の詳細を数千保存します。ユーザーがオーバーレイに触れると、SQL に保存されたレコードから最も近い緯度と経度を取得します。
私が使う:
SELECT *
FROM track_points
WHERE segmentId = '22'
ORDER BY (ABS(latitude - 25.312005) + ABS(longitude - 91.730433))
まったく同じことを行いますが、問題は、特定のオーバーレイに数千の緯度と経度の詳細がある場合です。上記のクエリを完了するには、長い時間がかかります。
最も近いデータが取得された場合でも、DB データ全体が 1 つのポイントを取得するように実行されます。
ちょうど28.2525 が与えられたとき、25.2520 に近い何かが必要で、それで終わりです。22.23252 などから始めて 10 行目から始めて、5000 行目で 25.2520 に到達した後、最後の行まで続けたくありません。