Выбор географических точек в пределах области

У меня есть таблица SQL Server 2008 со столбцом типа данных geography. Значение представляет собой точку (широту и долготу).

Как мне запросить таблицу, чтобы вернуть все строки, где местоположение находится в радиусе 10 километров от заданной координаты?


person Jakob Gade    schedule 15.02.2009    source источник


Ответы (2)


Вероятно, вам нужен метод STDistance: http://msdn.microsoft.com/en-us/library/bb933952.aspx

Или метод STWithin: http://msdn.microsoft.com/en-us/library/bb933991.aspx

person pawstrong    schedule 15.02.2009
comment
Да, я возвращался в SO, чтобы снова удалить вопрос: использование метода STDistance делает свое дело, довольно просто. Спасибо за быстрый ответ. :) Я выложу здесь свое решение через несколько минут ... - person Jakob Gade; 15.02.2009

Этот запрос в конечном итоге решил мою проблему:

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
person Jakob Gade    schedule 15.02.2009