如何检查点是否在指定区域内


How to check if a point is inside specified area?

我的服务器在地图上接收4个点(a、b、c、d),表示地图上的矩形。在我的数据库中,我有一个业务表:

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

我如何才能获得放置在矩形内的业务?

设点为p。p在具有顶点(a、b、c、d)的矩形内[按顺序]当且仅当向量ab.ap、bc.bp、cd.cp和da.dp的点积具有相同的符号(即它们都是正的或都是负的)。如果你谈论的是经度和纬度,这只是一个近似值,因为地球表面是弯曲的表面,而不是平坦的矩形。