import { List } from "../dataType/List";
import { Geometry } from "./Geometry";

/**
 *  Geometry
 * @class Geometry.MultiPolygon
 * @since gve.Geometry
 */
export class MultiPolygon extends Geometry {
  /**
   * 多个坐标点构造多个多边形Geometry
   * @hideconstructor
   * @param {List<Geometry>| List<List<List<List<Number>>>> | List<Number>} coords 给定坐标系下的多个点构成的坐标序列
   * @param {String} [proj] 可选参数,待转换的投影坐标
   * @return Geometry.MultiPolygon
   */
  constructor(coords: List<Geometry> | number[] | number[][][][] | number[][][], proj?: string) {
    let geojson = {
      type: "MultiPolygon",
      coordinates: coords,
    };
    super(geojson);
    if (!(this instanceof MultiPolygon)) {
      return new MultiPolygon(coords);
    }
  }
}