【问题标题】:How to find out the given latitude and longitude are coming under specified area?如何找出给定的纬度和经度在指定区域内?
【发布时间】:2012-09-23 01:43:04
【问题描述】:

我正在使用此代码http://gmaps-utility-library-dev.googlecode.com/svn/trunk/geometrycontrols/examples/test.html 用于在谷歌地图上选择区域。选择后,我将获得所选区域的所有纬度和经度列表。问题是我有一个点的纬度和经度,我想知道那个点是在选定的区域下还是没有使用 PHP。

谢谢你的回复。 我在这里得到了完美的答案 Find Point in polygon PHP

【问题讨论】:

  • 一个纬度/经度对定义了一个点,那么你能定义你所说的“the纬度和经度......在指定区域下”的意思吗?

标签: php google-maps


【解决方案1】:

如果我没有被误解,您正试图找到选定的点(纬度,经度)在其他 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);
}

【讨论】:

猜你喜欢
  • 2016-11-21
  • 2012-03-21
  • 1970-01-01
  • 2023-03-05
  • 1970-01-01
  • 1970-01-01
  • 2010-11-10
  • 1970-01-01
  • 2013-06-06
相关资源
最近更新 更多