我正在使用此代码http://gmaps-utility-library-dev.googlecode.com/svn/trunk/geometrycontrols/examples/test.html 来选择谷歌地图上的区域。选择后,我将获得所选区域的所有纬度和经度列表。问题是我有一个点的纬度和经度,我想找出那个点是在所选区域下还是不使用 PHP。
谢谢你的回复。我在这里得到了完美的答案 Find Point in polygon PHP
我正在使用此代码http://gmaps-utility-library-dev.googlecode.com/svn/trunk/geometrycontrols/examples/test.html 来选择谷歌地图上的区域。选择后,我将获得所选区域的所有纬度和经度列表。问题是我有一个点的纬度和经度,我想找出那个点是在所选区域下还是不使用 PHP。
谢谢你的回复。我在这里得到了完美的答案 Find Point in polygon PHP
如果我没有被误解,您正在尝试查找选定点(纬度,经度)位于其他 4 个点(纬度,经度)的区域内,类似于这种情况;
Ax,Ay Bx,按 A(10,20) B(20,20) +-----------------+ | 像素, py | | (15,15) | | 磷 | | | | | +-----------------+ Cx,Cy Dx,Dy C(10,10) D(20,10)
您可以通过数学方式找到此信息 A、B、C、D 是矩形的角点,P 是您要查找的单个点。这是可以帮助您找到 P 是否为正方形的代码片段。
PS:代码不是用编辑器编写的,因此可能包含拼写错误或错误。请仔细检查。
function isInsideSquare($Ax, $Ay, $Bx, $By, $Cx, $Cy, $Px, $Py) {
if (triangleArea($Ax,$Ay,$Bx,$By,$Px,$Py)>0 || triangleArea($Bx,$By,$Cx,$Cy,$Px,$Py)>0 || triangleArea($Cx,$Cy,$Dx,$Dy,$Px,$Py)>0 || triangleArea($Dx,$Dy,$Ax,$Ay,$Px,$Py)>0) {
return false;
}
return true;
}
function triangleArea($Ax, $Ay, $Bx, $By, $Cx, $Cy){
return ($Cx*$By-$Bx*$Cy)-($Cx*$Ay-$Ax*$Cy)+($Bx*$Ay-$Ax*$By);
}