Mit den folgenden Daten wäre es möglich, und wenn ja, welche wäre die effizienteste Methode zur Bestimmung, ob die Position 'Shurdington' in der ersten Tabelle enthalten ist gegebene Radius von irgendeinem der Orte in der zweiten Tabelle.Ist ein Punkt innerhalb eines geographischen Radius - SQL Server 2008
Die GeoData-Spalte hat den Typ "geography". Daher sind die Verwendung von SQL Server-räumlichen Features eine Option sowie die Verwendung von Längen- und Breitengrad.
Location GeoData Latitude Longitude
===========================================================
Shurdington XXXXXXXXXX 51.8677979 -2.113189
ID Location GeoData Latitude Longitude Radius
==============================================================================
1000 Gloucester XXXXXXXXXX 51.8907127 -2.274598 10
1001 Leafield XXXXXXXXXX 51.8360519 -1.537438 10
1002 Wotherton XXXXXXXXXX 52.5975151 -3.061798 5
1004 Nether Langwith XXXXXXXXXX 53.2275276 -1.212108 20
1005 Bromley XXXXXXXXXX 51.4152069 0.0292294 10
Jede Hilfe wird sehr geschätzt.
Ich liebe dieses Beispiel, obwohl seltsamerweise die Entfernungen um ein gutes Stück zu sein scheinen - vielleicht hat dies mit meinem Mangel an Wissen über die räumlichen Eigenschaften von SQL Server zu tun, aber trotzdem hätte ich angenommen, dass durch Hinzufügen eines Spalte '.STDistance (@p)/1609.34' würde es die Entfernung in Meilen zurückgeben, scheint aber weit weg zu sein - oder bin ich das? – Nathan
Bei der Erstellung eines "POINT" aus "STGeomFromText" ist es erforderlich, dass lat/long anders herum eingegeben wird, z. lang/lat. – Nathan
@Nathan Sie haben recht, ich werde meine Antwort entsprechend aktualisieren – Paddy