import { List } from "../dataType/List";
import { Geometry } from "../models/Geometry";
import { Guid } from "@gvol-org/geovis-brain-core";
/**
* @class Map.GeometryLayer
* @since ui.Map
*/
export class GeometryLayer {
_geometries: any=[];
name: string;
color: string;
shown: boolean=true;
locked: boolean;
id:string;
geometryType:string="Geometry";//Geometry、Feature、FeatureCollection三种类型
properties:object={};
/**
* @hideconstructor
* 通过地图工具绘制的矢量图形数据图层
* @param {List<Geometry>} geometries 矢量图形数据列表
* @param {string} name 图层名称
* @param {string} color 图层颜色
* @param {boolean} shown 是否显示图层,默认为true
* @param {boolean} locked 是否锁定图层编辑,默认为false
* @return ui.Map.GeometryLayer
*/
constructor(geometries?: List<Geometry>, name?: string, color?: string, shown?: boolean, locked?: boolean) {
if (!(this instanceof GeometryLayer)) {
return new GeometryLayer(geometries, name, color, shown, locked);
}
if (geometries) {
this._geometries=geometries;
}
this.name=name;
this.color=color;
this.shown=shown;
this.locked=locked;
this.id=Guid.newGuid();
}
/**
* Geometry转为GeometryLayer
* @return ui.Map.GeometryLayer
*/
fromGeometry(geometry: Geometry) {
//Geometry转为GeometryLayer
return this;
}
/**
* 返回矢量图形列表
* @return List<Geometry>
*/
geometries() {
return this._geometries;
}
/**
* 返回图层颜色
* @return string
*/
getColor() {
return this.color;
}
/**
* 返回图层是否锁定
* @return boolean
*/
getLocked() {
return this.locked;
}
/**
* 返回图层名称
* @returns string
*/
getName() {
return this.name;
}
/**
* 返回图层是否显示
* @returns boolean
*/
getShown() {
return this.shown;
}
/**
* 设置图层颜色
* @param {string} color 颜色
* @return ui.Map.GeometryLayer
*/
setColor(color: string) {
this.color = color;
return this;
}
/**
* 设置图层是否锁定
* @param {boolean} locked 是否锁定
* @returns ui.Map.GeometryLayer
*/
setLocked(locked: boolean) {
this.locked = locked;
return this;
}
/**
* 设置图层名称
* @param {string} name 图层名称
* @returns ui.Map.GeometryLayer
*/
setName(name: string) {
this.name = name;
return this;
}
/**
* 设置图层是否显示
* @param {boolean} shown 是否显示
* @returns ui.Map.GeometryLayer
*/
setShown(shown: boolean) {
this.shown = shown;
return this;
}
/**
* 返回Geometry
* @returns Geometry
*/
toGeometry() {
//返回Geometry
return new Geometry();
}
}