Выбор географических точек в пределах области - PullRequest
2 голосов
/ 15 февраля 2009

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

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

Ответы [ 2 ]

5 голосов
/ 15 февраля 2009

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

Или метод ST с помощью: http://msdn.microsoft.com/en-us/library/bb933991.aspx

1 голос
/ 15 февраля 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
...