/**
  * Constructor.
  *
  * @param float[][][][]|Polygon[] $polygons
  * @param CoordinateResolutionSystem|BoundingBox $arg,...
  */
 public function __construct(array $polygons)
 {
     $this->coordinates = array_map(function ($polygon) {
         if (!$polygon instanceof Polygon) {
             $polygon = new Polygon($polygon);
         }
         return $polygon->getCoordinates();
     }, $polygons);
     if (func_num_args() > 1) {
         $this->setOptionalConstructorArgs(array_slice(func_get_args(), 1));
     }
 }
 public function addPolygon(Polygon $polygon)
 {
     $this->coordinates[] = $polygon->getCoordinates();
     return $this;
 }