【问题标题】:Point in polygon using geoPHP使用geoPHP在多边形中点
【发布时间】:2017-01-04 08:31:30
【问题描述】:

我想检查一个点是否存在于多边形中,或者在 Drupal 中不使用 GEOPHP。我已经创建了多边形并从http://www.birdtheme.org/useful/v3tool.html 获取了坐标。

$userLocation = geoPHP::load("POINT(77.600555 12.965416)","wkt");
$storeServingArea=geoPHP::load("POLYGON((77.569656 12.986159, 77.596779 12.993518, 77.622185 12.973780, 77.623215 12.954710, 77.608109 12.945676, 77.577896 12.945341, 77.565880 12.957386, 77.565193 12.976122, 77.568970 12.985824))","wkt");
var_dump($storeServingArea->contains($userLocation));

此代码给出的结果为NULL

然后我尝试交换纬度和经度的值并像这样测试:

$userLocation = geoPHP::load("POINT(12.965416 77.600555)","wkt");
$storeServingArea=geoPHP::load("POLYGON((12.986159 77.569656, 12.993518 77.596779, 12.973780 77.622185, 12.954710 77.623215, 12.945676 77.608109, 12.945341 77.577896, 12.957386 77.565880, 12.976122 77.565193, 12.985824 77.568970))","wkt");

var_dump($storeServingArea->contains($userLocation));

这也给出了NULL的结果。

我在这里可能犯的错误是什么?我该如何解决?

SOLUTION:

有用的链接:Check if Google Map Point is in polygon from PHP

我通过以下链接解决了我的问题: http://assemblysys.com/php-point-in-polygon-algorithm/

【问题讨论】:

    标签: php drupal geolocation


    【解决方案1】:

    为此,我已经分叉了 geoPHP 并添加了 Polygon->pointInPolygon 和 MultiPolygon->pointInPolygon 方法。看一看:https://github.com/sookoll/geoPHP

    $point = \geoPHP::load('POINT (x y)','wkt');
    $polygon = \geoPHP::load('POLYGON ((x y...))','wkt');
    $point_is_in_polygon = $polygon->pointInPolygon($point);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-19
      • 2018-06-14
      • 1970-01-01
      • 2012-11-13
      相关资源
      最近更新 更多