Php 获取坐标是否位于多段线内

Php 获取坐标是否位于多段线内,php,maps,coordinates,Php,Maps,Coordinates,给定地图中坐标的多段线,如何知道坐标是否在该多段线内 例如,在此图像中: 我如何知道40.744818,-73.989701(每个示例)是否在内部 PHP中的最佳if:p 谢谢大家! 这个问题已经解决(使用javascript),请阅读: 以下是数学描述: ,这里是一些不同的算法,您可以使用。我建议您使用光线投射算法(RCA): 有一个可以在php中实现的伪代码;) 要解决数学问题,建议浏览此项目: 希望您能找到一个针对您的问题的php解决方案;) 如果您需要更高的性能,您可以在2D中处理

给定地图中坐标的多段线,如何知道坐标是否在该多段线内

例如,在此图像中:

我如何知道40.744818,-73.989701(每个示例)是否在内部

PHP中的最佳if:p


谢谢大家!

这个问题已经解决(使用javascript),请阅读:

以下是数学描述: ,这里是一些不同的算法,您可以使用。我建议您使用
光线投射算法(
RCA
):

有一个可以在php中实现的伪代码;)

要解决数学问题,建议浏览此项目: 希望您能找到一个针对您的问题的php解决方案;)

如果您需要更高的性能,您可以在2D中处理
共谋检测。
第一步:围绕多边形创建外部矩形,请参见矩形中的insde点。如果在内部,则有可能您的点位于多边形内部,然后运行
光线投射算法
。见:

$px //the x coordinate of your point
$py //the y coordinate of your point
$ppy //the y coordinates of points of your polygon (in the correct order)
$ppx //the x coordinates of points of your polygon (in the correct order)

$isInside = 
    (max($ppy)>$py && min($ppy)<$px && max($ppx)>$px && min($ppy)<$px)?
    RCA($px,$py,$ppx,$ppy): 
    false;    
}

/**
 * @description decide, is a point in poligon
 * @param float $px the x coordinate of your point
 * @param float $py the y coordinate of your point
 * @param array(float) $ppx the x coordinates of the points of polygon
 *             array(x1,x2,...) 
 * @param array(float) $ppy the y coordinates of the points of polygon
 *             array(y1,y2,...) 
 *             points of polygon: [x1,y1],[x2,y2],...
 * @return boolean : Is the point inside the polygon?
 */
function RCA($px,$py,array $ppx,array $ppy){
      //the implementation
}
$px//点的x坐标
$py//点的y坐标
$ppy//多边形点的y坐标(按正确顺序)
$ppx//多边形点的x坐标(按正确顺序)
$isInside=

(max($ppy)>$py&&min($ppy)$px&&min($ppy)你是想重新发明算法还是想找一个库(在这种情况下,用谷歌搜索一些,那里有很多)?我会寻找你的“维基”URL…我不想使用谷歌地图(因为它在服务器端)。谢谢!;)干得好;)我将此添加到答案中,以帮助其他有相同问题的人;)