/**
* 多边形自定义编辑类
* author zk
* date 2022-12-13
*/
class EditPolygon {
constructor(options) {
this.viewer = null;
// this.handler = new Cesium.ScreenSpaceEventHandler(xtdearth.czm.viewer.scene.canvas);
this.options = options || {
polygonColor: "#30dd1042", //编辑面颜色rgba
pointColor: "#ff0000ee", //正式点面颜色rgba
pointSize: 10, //正式点大小
tmpPointColor: "#ffff0088", //临时点面颜色rgba
tmpPointSize: 7, //临时点大小,
};
this.currentEntity = null;
this.editCurrentEntity = null;
this.isedit = false;
this.editPolygons = null;
this.editPoint = null;
this.positions = null;
this.editPointIndex = [];
}
/**
* 启动编辑功能
* currentEntity 当前编辑的entity面对象 callback 回调返回数据
* ************************/
startEditEntity(currentEntity, callback) {
var that = this;
that.handler = new Cesium.ScreenSpaceEventHandler(xtdearth.czm.viewer.scene.canvas);
that.viewer = xtdearth.czm.viewer
that.editCurrentEntity = currentEntity;
that.editCurrentEntity.show = false;
that.positions = that.editCurrentEntity.polyline.positions._value;
that.cleanEntityCollection("editTbEntityCollection");
let entityCollection = new Cesium.CustomDataSource(
"editTbEntityCollection"
);
entityCollection.key = that.editCurrentEntity.id;
entityCollection.label = "图斑编辑";
entityCollection.show = true;
that.viewer.dataSources.add(entityCollection);
//添加编辑点
that.addPointByData(that.positions);
//添加临时中点
that.addTmpPoint(that.positions);
var options = {
id: "edit-tb-polygon",
name: "edit-tb-polygon",
polyline: {
width: 10,
positions: [],
material: Cesium.Color.fromCssColorString(that.options.polygonColor),
clampToGround: true
},
};
<