La classe "\fire\gear\geom\GeometryCollection" consente di creare e gestire una collezione di geometrie.
Source code:
include("fxcore.php");
$precisionModel = new \fire\gear\geom\PrecisionModel(6);
echo "precision model maximum significant digits: " . $precisionModel->getMaximumSignificantDigits() . "\n";
$srid = 3003;
$coordinate0 = new \fire\gear\geom\Coordinate(0, 0);
$coordinate1 = new \fire\gear\geom\Coordinate(1.1, 1.1);
$coordinate2 = new \fire\gear\geom\Coordinate(2.2, 2.2, 2.2);
$coordinateSequence = new \fire\gear\geom\CoordinateSequence();
$coordinateSequence->add($coordinate0);
$coordinateSequence->add($coordinate1);
$coordinateSequence->add($coordinate2);
$point = new \fire\gear\geom\Point(1.1, 2.2, 3.3, $precisionModel, $srid);
$lineString = new \fire\gear\geom\LineString($coordinateSequence, $precisionModel, $srid);
$linearRing = new \fire\gear\geom\LinearRing($precisionModel, $srid);
$linearRing->addCoordinate($coordinate0);
$linearRing->addCoordinate($coordinate1);
$linearRing->addCoordinate($coordinate2);
$linearRing->addCoordinate($coordinate0);
$polygon = new \fire\gear\geom\Polygon($linearRing, $precisionModel, $srid);
$geometryCollection = new \fire\gear\geom\GeometryCollection($precisionModel, $srid);
$geometryCollection->addGeometry($point);
$geometryCollection->addGeometry($lineString);
$geometryCollection->addGeometry($polygon);
echo "geometry collection: " . $geometryCollection->toString() . "\n";