Heim  >  Artikel  >  Datenbank  >  So rufen Sie Ergebnisse innerhalb eines Markierungsradius aus einer Datenbank ab: Ein SQL-Ansatz zur genauen Entfernungsberechnung

So rufen Sie Ergebnisse innerhalb eines Markierungsradius aus einer Datenbank ab: Ein SQL-Ansatz zur genauen Entfernungsberechnung

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-11-01 05:40:02338Durchsuche

How to Retrieve Results Within a Marker Radius from a Database: A SQL Approach to Accurate Distance Calculation

So rufen Sie Ergebnisse innerhalb von Markierungsradien aus einer Datenbank ab: Genaue Entfernungsberechnung

Zur genauen Bestimmung der Ergebnisse, die innerhalb bestimmter Markierungsradien liegen In einer Datenbank ist es wichtig, die Gleichung eines Kreises zu berücksichtigen:

(x-x1)^2 + (y - y1)^2 = r^2

wobei (x,y) einen Punkt innerhalb des Kreises darstellt, (x1, y1) der Mittelpunkt des Kreises ist und r sein Radius ist .

Im Kontext dieser Frage ist der Mittelpunkt des Kreises die Markierungsposition des Benutzers (Breiten- und Längengrad), während die potenziellen Übereinstimmungen oder Ergebnisse durch Punkte innerhalb des Kreises dargestellt werden. Der Radius ist auf 1 Kilometer festgelegt.

Um das Problem der unterschiedlichen Einheiten (Grad für Breiten- und Längengrad vs. Kilometer für Radius) zu lösen, wird die Gleichung wie folgt geändert:

((x-x1)*111.12)^2 + ((y-y1)*111.12)^2 = 4 (where 2 is the radius in kilometers and 111.12 represents the conversion factor from degrees to kilometers)

Basierend auf dieser Gleichung kann die SQL-Anweisung zum Abrufen von Ergebnissen, die sich mit Markierungskreisen schneiden, wie folgt geschrieben werden:

SELECT A.user_id, A.radius_id, A.latitude, A.logitude
FROM UserA AS A,
     (SELECT user_id, latitude, longitude
       FROM UserB
       WHERE user_id = 8) AS B
WHERE (POW((A.latitude-B.latitude)*111.12, 2) + POW((A.longitude - B.longitude)*111.12, 2)) <= 4

Das obige ist der detaillierte Inhalt vonSo rufen Sie Ergebnisse innerhalb eines Markierungsradius aus einer Datenbank ab: Ein SQL-Ansatz zur genauen Entfernungsberechnung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn