Präzise Berechnung von Entfernungen zwischen geografischen Punkten in SQL Server
Genaue Entfernungsberechnungen zwischen Kartenkoordinaten sind von entscheidender Bedeutung. Während einige Formeln Näherungen bieten, bieten die integrierten Funktionen von SQL Server eine überlegene Präzision.
Nutzung des geography
-Datentyps von SQL Server (SQL Server 2008 und höher)
Der Datentyp geography
(verfügbar in SQL Server 2008 und späteren Versionen) bietet eine robuste Lösung zur Berechnung von Entfernungen. So geht's:
<code class="language-sql">DECLARE @source geography = 'POINT(0 51.5)' DECLARE @target geography = 'POINT(-3 56)' SELECT @source.STDistance(@target)</code>
Diese Abfrage gibt die Entfernung in Metern zurück.
Integration des geography
-Typs mit vorhandenen Daten
Wenn Sie mit einem etablierten Datenbankschema arbeiten, können Sie den Typ geography
nahtlos integrieren. Die Point
-Methode erleichtert dies:
<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>
In diesem Beispiel bleibt Ihre vorhandene Datenstruktur erhalten, während die Genauigkeit des geography
Datentyps für Entfernungsberechnungen genutzt wird.
Das obige ist der detaillierte Inhalt vonWie kann SQL Server den Abstand zwischen zwei Breiten-/Längengradpunkten genau berechnen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!