/** * {@inheritdoc} */ public function coordinateSystem() { if ($this->proxyGeometry === null) { $this->load(); } return $this->proxyGeometry->coordinateSystem(); }
/** * Creates a non-empty CurvePolygon composed of the given rings. * * @param Curve $exteriorRing The exterior ring. * @param Curve ...$interiorRings The interior rings, if any. * * @return CurvePolygon * * @throws CoordinateSystemException If the rings use different coordinate systems. */ public static function of(Curve $exteriorRing, Curve ...$interiorRings) { return new static($exteriorRing->coordinateSystem(), $exteriorRing, ...$interiorRings); }
/** * Creates a non-empty CompoundCurve composed of the given curves. * * @param Curve $curve1 The first curve. * @param Curve ...$curveN The subsequent curves, if any. * * @return CompoundCurve * * @throws EmptyGeometryException If any of the input curves is empty. * @throws InvalidGeometryException If the compound curve is not continuous. * @throws CoordinateSystemException If the curves use different coordinate systems. */ public static function of(Curve $curve1, Curve ...$curveN) { return new CompoundCurve($curve1->coordinateSystem(), $curve1, ...$curveN); }