Heim > Datenbank > MySQL-Tutorial > Hauptteil

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

Mary-Kate Olsen
Freigeben: 2024-11-01 05:40:02
Original
351 Leute haben es durchsucht

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
Nach dem Login kopieren

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)
Nach dem Login kopieren

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
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage