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

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

Patricia Arquette
Freigeben: 2025-01-12 13:16:42
Original
351 Leute haben es durchsucht

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

Präzise Entfernungsberechnung zwischen zwei geografischen Punkten in SQL Server

SQL Server erfordert häufig die Berechnung von Abständen zwischen Breiten- und Längengradkoordinaten. Obwohl die Haversine-Formel üblich ist, erfordern ihre Genauigkeitseinschränkungen eine robustere Lösung.

Nutzung des geography Datentyps

SQL Server 2008 und spätere Versionen bieten den Datentyp geography, ideal für die effiziente und genaue Verarbeitung räumlicher Daten, einschließlich Entfernungsberechnungen. Der folgende Code demonstriert seine Verwendung:

<code class="language-sql">DECLARE @source geography = 'POINT(0 51.5)';
DECLARE @target geography = 'POINT(-3 56)';

SELECT @source.STDistance(@target);</code>
Nach dem Login kopieren

Dies gibt die Entfernung (in Kilometern) zwischen den beiden Punkten zurück. Das Obige ergibt beispielsweise etwa 538 km. Die umfangreichen räumlichen Methoden des Typs geography machen ihn zum empfohlenen Ansatz für geografische Daten in SQL Server.

Integration mit vorhandenen Datenstrukturen

Es ist möglich, Ihre aktuelle Datenstruktur beizubehalten und gleichzeitig von der STDistance-Methode zu profitieren. Konvertieren Sie Ihre Breiten- und Längengrade in geography Instanzen:

<code class="language-sql">DECLARE @orig_lat DECIMAL(12, 9);
DECLARE @orig_lng DECIMAL(12, 9);
SET @orig_lat = 53.381538;
SET @orig_lng = -1.463526;

DECLARE @orig geography = geography::Point(@orig_lat, @orig_lng, 4326);

SELECT *,
    @orig.STDistance(geography::Point(dest.Latitude, dest.Longitude, 4326)) AS distance
FROM #orig dest;</code>
Nach dem Login kopieren

Dieser Ansatz gewährleistet genaue Entfernungsberechnungen ohne große Datenumstrukturierung.

Das obige ist der detaillierte Inhalt vonWie kann ich den Abstand zwischen zwei Breiten-/Längengradpunkten in SQL Server genau berechnen?. 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