Heim >Datenbank >MySQL-Tutorial >Wie kann ich den Abstand zwischen zwei Breiten-/Längengradpunkten in SQL Server berechnen?
Nutzung des Geografiedatentyps von SQL Server für Entfernungsberechnungen
Die Bestimmung des Abstands zwischen zwei durch Breiten- und Längengrad angegebenen Punkten erfordert einen speziellen Ansatz. SQL Server bietet ab Version 2008 den Datentyp geography
, ein leistungsstarkes Tool zur Verarbeitung und Analyse geografischer Informationen.
Die geography::Point
-Methode erstellt für jeden Punkt ein geography
-Objekt unter Verwendung von SRID 4326, das WGS84 (World Geodetic System 1984) entspricht. Sobald diese Objekte erstellt wurden, berechnet die STDistance
-Methode effizient die Entfernung:
<code class="language-sql">DECLARE @orig geography = geography::Point(@orig_lat, @orig_lng, 4326); SELECT *, @orig.STDistance(geography::Point(dest.Latitude, dest.Longitude, 4326)) AS distance --INTO #includeDistances FROM #orig dest</code>
Dies ergibt eine genaue Entfernung in Metern. Zum Beispiel gegebene Beispieldaten:
<code>Latitude Longitude Distance 53.429108 -2.500953 85.2981833133896</code>
Die berechnete Entfernung beträgt ca. 85,3 Meter und liefert damit ein deutlich genaueres Ergebnis als einfachere Methoden. Der Datentyp geography
ist somit eine robuste und effiziente Lösung für Geodatenanwendungen in SQL Server, die komplexe Berechnungen vereinfacht und gleichzeitig die Genauigkeit erhöht.
Das obige ist der detaillierte Inhalt vonWie kann ich den Abstand zwischen zwei Breiten-/Längengradpunkten in SQL Server berechnen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!