gpt4 book ai didi

php - 谷歌地图 : is a lat/lng within a polygon?

转载 作者:可可西里 更新时间:2023-10-31 22:42:37 25 4
gpt4 key购买 nike

给定一对纬度/经度值,如何确定该对是否在多边形内?我需要在 PHP 中执行此操作。我看到 Google Maps API 有一个 containsLocation 方法:https://developers.google.com/maps/documentation/javascript/reference .有没有办法从 PHP 中利用它?

最佳答案

查找点是否在多边形中的一种方法是计算从该点(在任何方向)绘制的线与多边形边界相交的次数。如果它们相交的次数为偶数次,则点在外面。

我已经实现了这个 Point in Polygon 的 C 代码php 中的文章,并使用下面的多边形进行说明。

polygon

<?php
//Point-In-Polygon Algorithm
$polySides = 4; //how many corners the polygon has
$polyX = array(4,9,11,2);//horizontal coordinates of corners
$polyY = array(10,7,2,2);//vertical coordinates of corners
$x = 3.5;
$y = 13.5;//Outside
//$y = 3.5;//Inside

function pointInPolygon($polySides,$polyX,$polyY,$x,$y) {
$j = $polySides-1 ;
$oddNodes = 0;
for ($i=0; $i<$polySides; $i++) {
if ($polyY[$i]<$y && $polyY[$j]>=$y
|| $polyY[$j]<$y && $polyY[$i]>=$y) {
if ($polyX[$i]+($y-$polyY[$i])/($polyY[$j]-$polyY[$i])*($polyX[$j]-$polyX[$i])<$x) {
$oddNodes=!$oddNodes; }}
$j=$i; }

return $oddNodes; }


if (pointInPolygon($polySides,$polyX,$polyY,$x,$y)){
echo "Is in polygon!";
}
else echo "Is not in polygon";
?>

关于php - 谷歌地图 : is a lat/lng within a polygon?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13318812/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com