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

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

  // /**
  //  * @function
  //  */
  // addPolygon() {}
  // /**
  //  * @function
  //  */
  // removePolygon() {}
}