diff --git a/internal/locations/repo.go b/internal/locations/repo.go index e65893a..2c9313d 100644 --- a/internal/locations/repo.go +++ b/internal/locations/repo.go @@ -110,21 +110,21 @@ func (r *Repo) Nearby(ctx context.Context, myID uuid.UUID, lat, lng, radiusKm fl AND u.id != $3 AND ul.lat IS NOT NULL AND ul.lng IS NOT NULL AND ul.updated_at > NOW() - INTERVAL '1 hour' - AND ul.lat BETWEEN $1 - $6 AND $1 + $6 - AND ul.lng BETWEEN $2 - $7 AND $2 + $7 + AND ul.lat BETWEEN ($1::float8 - $6::float8) AND ($1::float8 + $6::float8) + AND ul.lng BETWEEN ($2::float8 - $7::float8) AND ($2::float8 + $7::float8) ) SELECT id, name, photo_url, lat, lng, 2 * 6371 * asin(sqrt( - sin(radians((lat - $1) / 2))^2 + - cos(radians($1)) * cos(radians(lat)) * - sin(radians((lng - $2) / 2))^2 + sin(radians((lat - $1::float8) / 2))^2 + + cos(radians($1::float8)) * cos(radians(lat)) * + sin(radians((lng - $2::float8) / 2))^2 )) * 1000 AS dist_m FROM bbox WHERE 2 * 6371 * asin(sqrt( - sin(radians((lat - $1) / 2))^2 + - cos(radians($1)) * cos(radians(lat)) * - sin(radians((lng - $2) / 2))^2 - )) <= $4 + sin(radians((lat - $1::float8) / 2))^2 + + cos(radians($1::float8)) * cos(radians(lat)) * + sin(radians((lng - $2::float8) / 2))^2 + )) <= $4::float8 ORDER BY dist_m LIMIT $5`, lat, lng, myID, radiusKm, limit, latDelta, lngDelta,