Heim >Datenbank >MySQL-Tutorial >Wie kann ich den Abstand zwischen zwei Breiten-/Längengradpunkten in SQL Server berechnen?

Wie kann ich den Abstand zwischen zwei Breiten-/Längengradpunkten in SQL Server berechnen?

Susan Sarandon
Susan SarandonOriginal
2025-01-12 13:02:43152Durchsuche

How Can I Calculate the Distance Between Two Latitude/Longitude Points in SQL Server?

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!

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