Entfernungsformel für große Kreise: T-SQL

8

Also habe ich eine Tabelle mit einer Reihe von verschiedenen Adressen darin. Ich brauche einen Proc, der die Adressen in dieser Tabelle auswählt, die in einer bestimmten Entfernung in Meilen von den übergebenen Längen- / Breitenwerten liegen.

Also Beispiel meiner Tabelle:

%Vor%

Proc übergibt ein weiteres lat / long Paar (sowohl float s als auch ein int (miles)

)

Ich fand das Ссылка , um die tatsächliche Formel zu berechnen, aber ich kann es nicht herausfinden Ändere es in proc-Form, um eine ganze Liste von Adressen durchzugehen und gib mir nur die Id der Adressen, die & lt; = die Meilen sind (die ich übergebe), von dem lat / long, das ich passiere in.

Kann ich hier Hilfe bekommen?

Danke!

    
slandau 29.04.2011, 00:00
quelle

3 Antworten

5

SQL Server 2008

Verwendung der räumlichen Funktion STDistance Rückweg in Metern

geography :: Punkt (@ lat1, @ lon1, 4326) .STDistanz (geography :: Point (@ lat2, @ lon2, 4326))

    
tidwall 29.04.2011, 00:32
quelle
2

Ich schrieb tatsächlich eine kurze Blogpost genau zu diesem Zweck zurück. Grundsätzlich habe ich folgende Abfrage:

%Vor%

Geben Sie den mittleren Breitengrad, den mittleren Längengrad und den Suchradius an, und Sie sollten gut sein. (Die Parameter für die äquatorialen und polaren Radien der Erde können natürlich hart codiert sein.)

All diese Mathematik soll die Krümmung der Erde, die Wölbung am Äquator usw. erklären.

    
David 29.04.2011 00:07
quelle
0

Du kannst die Funktion einfach direkt im SP benutzen ... Ich dachte:

%Vor%     
M.R. 29.04.2011 00:10
quelle

Tags und Links