Ortung von Gebäuden in einem Umkreis von 5 Meilen über Koordinaten
Diese Anleitung beschreibt, wie Sie alle Gebäude in einem Umkreis von 5 Meilen um bestimmte Koordinaten effizient abrufen können.
Schritt 1: Datenspeicher optimieren
Speichern Sie Gebäudestandortdaten mithilfe eines Geometrie- oder Geografiedatentyps. Dies verbessert die Leistung räumlicher Abfragen erheblich und verhindert Probleme bei der Datentypkonvertierung.
Schritt 2: Setzen Sie ST_DWithin oder ST_Distance ein
Zwei Funktionen erleichtern die Entfernungsberechnung:
ST_DWithin: Diese Funktion bestimmt effizient, ob Geometrien innerhalb eines angegebenen Abstands liegen. So finden Sie Gebäude im Umkreis von 5 Meilen um (-4,6314, 54,0887):
<code class="language-sql">SELECT name, longitude, latitude FROM building WHERE ST_DWithin('POINT(-4.6314 54.0887)'::geography, ST_MakePoint(longitude, latitude), 8046.72); -- 8046.72 meters = 5 miles</code>
ST_Distance: Diese Funktion berechnet die Entfernung in Metern. Konvertieren Sie Meter in Meilen mit: distance * 0.000621371
. Für Gebäude im Umkreis von 5 Meilen um (-4,6314, 54,0887):
<code class="language-sql">SELECT name, longitude, latitude, ST_Distance('POINT(-4.6314 54.0887)'::geography, ST_MakePoint(longitude, latitude)) * 0.000621371 AS distance_miles FROM building WHERE distance_miles <= 5;</code>
Schritt 3: Wichtige Überlegungen
Das obige ist der detaillierte Inhalt vonWie finde ich Gebäude in einem Umkreis von 5 Meilen mithilfe von Koordinaten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!