Php 使用GeoHP的多边形中的点
我想检查多边形中是否存在点,或者是否在Drupal中使用GEOPHP。我已经创建了多边形并从中获得了坐标 此代码给出的结果为Php 使用GeoHP的多边形中的点,php,drupal,geolocation,Php,Drupal,Geolocation,我想检查多边形中是否存在点,或者是否在Drupal中使用GEOPHP。我已经创建了多边形并从中获得了坐标 此代码给出的结果为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.
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
我在这里可能会犯什么错误?我怎样才能修好它
解决方案:
有用链接:
我通过以下链接修复了我的问题:
为此,我分叉了geoPHP并添加了多边形->点多边形和多多边形->点多边形方法。看一看:
为此,我分叉了GeoHP并添加了多边形->点多边形和多多边形->点多边形方法。看一看:
$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));
$point = \geoPHP::load('POINT (x y)','wkt');
$polygon = \geoPHP::load('POLYGON ((x y...))','wkt');
$point_is_in_polygon = $polygon->pointInPolygon($point);