2
我很難使這個doctrine2擴展工作。 這是https://github.com/djlambert/doctrine2-spatial和theres沒有很多doc如何創建一個多邊形。我得到了配置文件的工作和所有,但我掙扎着創建實際的多邊形。主義2空間數據
array:564 [
0 => array:2 [
0 => -73.698313
1 => 45.546876
]
1 => array:2 [
0 => -73.69813
1 => 45.546916
]
2 => array:2 [
0 => -73.697656
1 => 45.546899
]
3 => array:2 [
0 => -73.697413
1 => 45.546899
]
$poly = new Polygon($array);
[CrEOF\Spatial\Exception\InvalidValueException]
Invalid Polygon Point value of type "double"
這是我得到的實際錯誤。我試圖創造點,因爲它顯然不喜歡雙打。
$p = new Point($coord);
$temp[] = $p;
$poly = new Polygon($temp);
[CrEOF\Spatial\Exception\InvalidValueException]
Invalid Polygon LineString value of type "CrEOF\Spatial\PHP\Types\Geometry\Point"
之後,我就好,讓我們創建一個線串對象並傳遞它。
$line = new LineString($points);
$poly - new Polygon($line);
[Symfony\Component\Debug\Exception\ContextErrorException]
Catchable Fatal Error: Argument 1 passed to CrEOF\Spatial\PHP\Types\AbstractPolygon::__construct() must be of the type array, object given, called in /Library/Web Server/Documents/mg/src/Momoa/ImmobilierBundle/Entity/geography/Quartier.php on line 131 and defined
我只是失去了現在,我想的唯一的事情就是存儲在數據庫中的多邊形和調用空間功能,如CONTAINS
。你有任何建議或其他的東西來完成所有這些工作。
通過源代碼挖後,我發現這似乎是問題
case (is_array($point) && count($point) == 2 && is_numeric($point[0]) && is_numeric($point[1])):
return array_values($point);
break;
default:
throw InvalidValueException::invalidType($this, GeometryInterface::POINT, $point);
}
我理解這是一個擴展不接受有十進制值?點方式這驗證功能!呃,這是否意味着我需要將我的座標轉換爲2個整數?!