
Datenbank nach Ergebnissen innerhalb von Radiusüberlappungen abfragen
Problem:
In einer Datenbank mit geografischen Daten möchten Sie Ergebnisse auswählen, die mehrere kreisförmige Markierungen mit angegebenen Radien teilweise überlappen. Eine vorhandene SQL-Abfrage identifiziert Ergebnisse, die mehrere Markierungen überlappen, nicht genau.
Lösung:
Für präzise Ergebnisse kann die folgende SQL-Anweisung verwendet werden:
<code class="sql">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*cos(A.latitude), 2)) <= 4</code>Erklärung:
Diese Abfrage verwendet die Gleichung eines Kreises, um zu bestimmen, ob ein gegebener Punkt (von BenutzerA) in den Radius eines Kreises (definiert durch den Breitengrad und) fällt Längengrad eines Radius von BenutzerB). Die folgenden Schritte sind erforderlich:
Mit dieser Abfrage können Sie Ergebnisse genau identifizieren, die mehrere kreisförmige Markierungen überlappen, selbst wenn sich die Kreise berühren.
Das obige ist der detaillierte Inhalt vonWie frage ich eine Datenbank nach Ergebnissen ab, die mehrere kreisförmige Markierungen mit bestimmten Radien überlappen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!
Der Unterschied zwischen Gateway und Router
Verwendung der sqrt-Funktion in Java
Checken Sie den virtuellen Standort auf DingTalk ein
WeChat-Momente können nicht aktualisiert werden
ASUS x402c
Der Unterschied zwischen Fußnoten und Endnoten
So konvertieren Sie Ape in WAV
Was sind die Parameter des Festzeltes?