SQL Сервер - Найти места внутри географического c окна - PullRequest
0 голосов
/ 05 марта 2020

У меня есть список из 50 местоположений и их широты и долготы в таблице sql сервера. Мне нужно выяснить, сколько из них находится внутри коробки, определяемой 4 улицами в Нью-Йорке (42-я улица, 57-я, 3-я авеню и 8-я авеню). Я нашел координаты широты и долготы каждого угла, но не могу понять, как определить квадрат, а затем отфильтровать, попадают ли 50 точек внутрь квадрата.

Есть предложения?

-- 42nd & 3rd -      -73.97445  40.750767
-- 42nd & 8th -      -73.98979  40.757236
-- 57th & 8th -     -73.98288  40.766716
-- 57th & 3rd -     -73.96754  40.760254

1 Ответ

0 голосов
/ 06 марта 2020

Если «достаточно близко, достаточно хорошо», тогда просто сработает проверка верхней и нижней границ:

where latitude >= -73.98979 and latitude <= -73.96754
and longitude >= 40.750767 and longitude <= 40.766716

В противном случае рассмотрим различные методы определения «точки внутри многоугольника», описанные в https://en.wikipedia.org/wiki/Point_in_polygon

...