2014-10-13 2 views
0

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

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

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

ответ

1

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

Смежные вопросы