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

Мой сервер получает 4 точки на карте (a, b, c, d), которые представляют прямоугольник на карте.
в моей базе данных у меня есть эта бизнес-таблица:

bussId | longitude | latitude
=============================
..       ..          ..

Как я могу получить предприятия, которые размещены внутри прямоугольника?

0

Решение

Пусть точка будет р. p находится внутри прямоугольника с вершинами (a, b, c, d) [по порядку] тогда и только тогда, когда скалярное произведение векторов ab.ap, bc.bp, cd.cp и da.dp имеет одинаковый знак ( т.е. либо все они положительные или все отрицательные). Это только приблизительно, если вы говорите о долготе и широте, потому что поверхность Земли — это криволинейная поверхность, а не плоский прямоугольник.

1

Другие решения

Других решений пока нет …