Search code examples
sql-server-2008geography

Selecting geographical points within area


I have a SQL Server 2008 table with a column of the geography datatype. The value is a point (latitude and longitude).

How do I query the table to return all rows where the location is within a 10 kilometer radius of a given coordinate?


Solution

  • This query eventually solved my problem:

    DECLARE @geoMyPoint geography
    SET @geoMyPoint = geography::STGeomFromText('POINT(56.5667 9.0333)', 4326);
    
    SELECT vchZipCode, nvcCity, vchLat, vchLong,
      (geography::STGeomFromText('POINT(' + vchLat + ' ' + vchLong + ')', 4326)).STDistance(@geoMyPoint) 
    FROM MyTable