La classe "\fire\gear\geom\Group" consente di creare e gestire un gruppo di geometrie.
Source code:
include("fxcore.php");
$group = new \fire\gear\geom\Group();
$precisionModel = new \fire\gear\geom\PrecisionModel(3);
echo "precision model maximum significant digits: " . $precisionModel->getMaximumSignificantDigits() . "\n";
$srid = 3003;
$coordinates = array();
$coordinates[0] = new \fire\gear\geom\Coordinate(1.1, 2.2, 3.3);
$point = new \fire\gear\geom\Point($coordinates[0], $precisionModel, $srid);
$group->c_include($point);
$coordinates[1] = new \fire\gear\geom\Coordinate(0, 0);
$coordinates[2] = new \fire\gear\geom\Coordinate(1.1, 1.1);
$coordinates[3] = new \fire\gear\geom\Coordinate(2.2, 2.2, 2.2);
$coordinateSequence = new \fire\gear\geom\CoordinateSequence();
$coordinateSequence->add($coordinates[1]);
$coordinateSequence->add($coordinates[2]);
$coordinateSequence->add($coordinates[3]);
$lineString = new \fire\gear\geom\LineString($coordinateSequence, $precisionModel, $srid);
$group->c_include($lineString);
$coordinates[4] = new \fire\gear\geom\Coordinate(0, 0);
$coordinates[5] = new \fire\gear\geom\Coordinate(1.1, 1.1);
$coordinates[6] = new \fire\gear\geom\Coordinate(2.2, 2.2, 2.2);
$linearRing = new \fire\gear\geom\LinearRing($precisionModel, $srid);
$linearRing->addCoordinate($coordinates[4]);
$linearRing->addCoordinate($coordinates[5]);
$linearRing->addCoordinate($coordinates[6]);
$linearRing->addCoordinate($coordinates[4]);
$group->c_include($linearRing);
$coordinates[7] = new \fire\gear\geom\Coordinate(0, 0);
$coordinates[8] = new \fire\gear\geom\Coordinate(1.1, 1.1);
$coordinates[9] = new \fire\gear\geom\Coordinate(2.2, 2.2, 2.2);
$exteriorRing = new \fire\gear\geom\LinearRing($precisionModel, $srid);
$exteriorRing->addCoordinate($coordinates[7]);
$exteriorRing->addCoordinate($coordinates[8]);
$exteriorRing->addCoordinate($coordinates[9]);
$exteriorRing->addCoordinate($coordinates[7]);
$polygon = new \fire\gear\geom\Polygon($exteriorRing, $precisionModel, $srid);
$group->c_include($polygon);
while ($group->hasNext()) {
$geometry = $group->next();
echo "geometry: " . $geometry->toString() . "\n";
}