Ich versuche, die Funktionen von SQL Server 2014 zu verwenden, um den Abstand zwischen zwei Punkten auf einer geografischen Oberfläche zu bestimmen. Ich habe drei Felder in einer Tabelle (Lat, Long, Coordinates). [Lat] und [Long] werden bestehende Werte und lagere ich die geographischen Punktkoordinaten in dem [Koordinaten] Feld mit den folgende:Räumliche SQL Server-Funktion: .STDistance Gibt es Meilen oder Meter zurück?
UPDATE dbo.[MyTable]
SET [Coordinates] = geography::STPointFromText('POINT(' + CAST([Lon] AS VARCHAR(20)) + ' ' + CAST([Lat] AS VARCHAR(20)) + ')', 4326) ;
So, jetzt habe ich einen Tisch voller Datensätze, die die geografischen Koordinaten haben Pre- berechnet im Feld [Koordinaten]. Jetzt möchte ich die Entfernung in Meilen zwischen Point_A und Point_B bestimmen. Früher habe ich die folgenden:
- Compute Point_A:
DECLARE @g geography = (SELECT [Coordinates] FROM [MyTable] WHERE [Id] = 68);
- Compute Point_B:
DECLARE @h geography = (SELECT [Coordinates] FROM [MyTable] WHERE [Id] = 1439);
- Compute Entfernung:
SELECT ROUND(@g.STDistance(@h)) AS [Distance];
Der tatsächliche Abstand ist etwa 20 Meilen, aber diese Berechnung gibt mir eine Zahl, die Tausende mal größer als 20 Meilen ist.
Gibt der .STDistance Meter statt Meilen zurück?
Zu einem verwandten Hinweis: Kann mir jemand auf ein Beispiel im Internet verweisen, wo man Tausende von geographischen Punkten in einer Tabelle mit den nächsten geographischen Punkten in einer anderen Tabelle mit tausend Punkten vergleicht? Ich kann sehen, dass diese Berechnung sehr lange dauert, wenn ich keinen Weg finde, den Prozess zu verkürzen.
Mögliche Duplikate von [SQL Server 2008 GEOGRAPHY STDistance() Wert] (http://stackoverflow.com/questions/3335773/sql-server-2008-geography-stdistance-value) – GSerg
Was die Geschwindigkeit angeht, glaube ich Ihnen Ich möchte einen [räumlichen Index] (https://msdn.microsoft.com/en-us/library/bb934196%28v=sql.120%29.aspx) ([möglicherweise gelten Einschränkungen] (https://msdn.microsoft. com/de-us/library/bb895265% 28v = sql.120% 29.aspx # Geographie)). – GSerg
Ich glaube, es ist in Metern – mattias