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

时间:2014-10-13 08:54:32

标签: php mysql algorithm map

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

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

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

1 个答案:

答案 0 :(得分:1)

让点为p。 p在具有顶点(a,b,c,d)的矩形内部[按顺序]当且仅当向量ab.ap,bc.bp,cd.cp和da.dp具有相同符号的点积时(即要么他们都是积极的,要么都是消极的。如果您在谈论经度和纬度,这只是一个近似值,因为地球表面是曲面而不是扁平矩形。