SQL Geography & (ST)Distance

In diesem Artikel möchte ich ein bisschen näher auf das Potential der SQL-Funktionen geography::STPointFromText()

Ziel ist eine Umkreissuche von einem Startpunkt aus.

Wenn man in seiner Datenbank Adressdaten, von z.B. Kunden hat, also Straße mit Hausnummer, PLZ und Stadtname, kann Längen & Breitengrade (Longitude & Latitude) erzeugen. Dafür gibt es zahlreiche Tools & API´s mit denen man die auch automatisiert generieren lassen kann. Jede Adresse stellt später einen Marker auf der Karte dar. Die Längen & Breitengrade kann man dann der Funktion übergeben übergeben:

set GEO = geography::STPointFromText('POINT('+Longitude+' '+Latitude+')'
, 4326)

Dadurch werden Binärdaten generiert, die wir nun weiterverwenden & damit rechnen werden.
Wir definieren eine Adresse als Startpunkt

set Distance = GEO.STDistance(GEO_START);

Die Methode nimmt die Binärdaten, die wir vorher berechnet haben & gibt die Distanz zum Startpunkt in Metern zurück.

Cheers,

Christian Brenner

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Captcha * Time limit is exhausted. Please reload CAPTCHA.