/** * @param LineString $lineString * * @throws \InvalidArgumentException */ public function add($lineString) { if (!$lineString instanceof LineString) { throw new \InvalidArgumentException('Only LineString objects may be added to a MultiLineString', self::INVALID_ARGUMENT_CODE); } if (!$lineString->isLinearRing()) { throw new \InvalidArgumentException('The LineString instance passed is not a LinearRing (at least 4 points, first and last must be equal)', self::NON_LINEARRING_CODE); } $this->addGeometry([$lineString]); }
public function testLineIsALinearRing() { $sut = new LineString(new Point(13.9, 10.3), [14.2, 15]); $sut->add([[15.2, 12], [35.2, 12], new Point(13.9, 10.3)]); $this->assertTrue($sut->isLinearRing()); }