/** * Constructor. * * @param float[][][]|LinearRing[] $linearRings * @param CoordinateResolutionSystem|BoundingBox $arg,... */ public function __construct(array $linearRings) { $this->coordinates = array_map(function ($linearRing) { if (!$linearRing instanceof LinearRing) { $linearRing = new LinearRing($linearRing); } return $linearRing->getCoordinates(); }, $linearRings); if (func_num_args() > 1) { $this->setOptionalConstructorArgs(array_slice(func_get_args(), 1)); } }
/** * Constructor. * * @param float[][][]|LinearRing[] $linearRings * @param CoordinateResolutionSystem|BoundingBox $arg,... */ public function __construct(array $linearRings) { foreach ($linearRings as $linearRing) { if (!$linearRing instanceof LinearRing) { $linearRing = new LinearRing($linearRing); } $this->coordinates[] = $linearRing->getCoordinates(); } if (func_num_args() > 1) { $this->setOptionalConstructorArgs(array_slice(func_get_args(), 1)); } }
public static function from_array($point_sets, $srid = null, $with_z = false, $with_m = false) { $poly = new self($srid, $with_z, $with_m); foreach ($point_sets as $set) { $poly->rings[] = LinearRing::from_array($set, $srid, $with_z, $with_m); } return $poly; }
function test_LinearRing_addComponent() { $ring = new LinearRing(); $point = new Point(0, 0); $ring->addComponents($point); $this->assertTrue(count($ring->components), 2); $this->assertEqual($ring->components[0]->x, $point->x); $this->assertEqual($ring->components[0]->y, $point->y); $this->assertEqual($ring->components[0]->x, $ring->components[1]->x); $this->assertEqual($ring->components[0]->y, $ring->components[1]->y); $newPoint = new Point(10, 10); $ring->addComponents($newPoint); $this->assertTrue(count($ring->components), 3); $this->assertEqual($ring->components[1]->x, $newPoint->x); $this->assertEqual($ring->components[1]->y, $newPoint->y); $this->assertEqual($ring->components[0]->x, $ring->components[2]->x); $this->assertEqual($ring->components[0]->y, $ring->components[2]->y); }