Мой сервер получает 4 точки на карте (a, b, c, d), которые представляют прямоугольник на карте.
в моей базе данных у меня есть эта бизнес-таблица:
bussId | longitude | latitude
=============================
.. .. ..
Как я могу получить предприятия, которые размещены внутри прямоугольника?
Пусть точка будет р. p находится внутри прямоугольника с вершинами (a, b, c, d) [по порядку] тогда и только тогда, когда скалярное произведение векторов ab.ap, bc.bp, cd.cp и da.dp имеет одинаковый знак ( т.е. либо все они положительные или все отрицательные). Это только приблизительно, если вы говорите о долготе и широте, потому что поверхность Земли — это криволинейная поверхность, а не плоский прямоугольник.
Других решений пока нет …