2015-02-18 2 views
0

У меня есть места, хранящиеся в базе данных (SQL-сервер), их местоположение объявлено как география, а другой столбец объявляет его радиус.
Предоставление географии (или долготы/широты) в качестве параметра я хотел бы получить места с радиусом, пересекающим радиус параметров (постоянное значение) взамен.Используйте sql, чтобы узнать, пересекает ли радиус одной точки радиус другой точки

Любая информация о том, как ее решить, оценивается.

+0

возможно дубликат [Поиск точки географии в пределах диапазона другой - SQL Server] (http://stackoverflow.com/questions/8384893/finding-a-geography-point-within-a-range- из-другого-SQL-сервер) – jpw

ответ

0

Прежде всего, обратите внимание, что радиусы перехватывают друг друга тогда и только тогда, когда сумма радиусов больше расстояния между двумя точками.

Я не знаком с синтаксисом, но вы хотите что-то вроде этого: я использую функцию типа геоданных Transact SQL STDistance.

SELECT * FROM TABLE 
WHERE TABLE.RADIUS + @radius >= @geog.STDistance(TABLE.GEOGRAPHY); 
Смежные вопросы