add createGeometryFromData

This commit is contained in:
ethan 2024-05-17 09:44:41 +08:00
parent 2f5e3a50a0
commit 85f2111f45
2 changed files with 37 additions and 3 deletions

View File

@ -173,9 +173,15 @@ buttonGroup.onclick = (evt) => {
case 'createGeometryFromData': case 'createGeometryFromData':
if (geometry) { if (geometry) {
const points = geometry.getPoints(); const points = geometry.getPoints();
debugger; // debugger;
CesiumPlot.createGeometryFromData(points); // CesiumPlot.createGeometryFromData(points);
CesiumPlot.createGeometryFromData(Cesium, viewer, {
type: 'FineArrow',
cartesianPoints: points,
});
} }
break; break;
case 'cancelDraw': case 'cancelDraw':
if (geometry) { if (geometry) {

View File

@ -18,7 +18,10 @@ import Polygon from './polygon/polygon';
import Circle from './polygon/circle'; import Circle from './polygon/circle';
import Sector from './polygon/sector'; import Sector from './polygon/sector';
const CesiumPlot = { import { GeometryStyle } from './interface';
import * as CesiumTypeOnly from 'cesium';
const CesiumPlot: any = {
FineArrow, FineArrow,
AttackArrow, AttackArrow,
SwallowtailAttackArrow, SwallowtailAttackArrow,
@ -40,4 +43,29 @@ const CesiumPlot = {
Sector, Sector,
}; };
type CreateGeometryFromDataOpts = {
type: string;
cartesianPoints: CesiumTypeOnly.Cartesian3[];
style: GeometryStyle;
};
/**
*
* @param points
*/
CesiumPlot.createGeometryFromData = (cesium: any, viewer: any, opts: CreateGeometryFromDataOpts) => {
const { type, style, cartesianPoints } = opts;
const geometry = new CesiumPlot[type](cesium, viewer, style);
geometry.points = cartesianPoints;
const geometryPoints = geometry.createGraphic(cartesianPoints);
geometry.setGeometryPoints(geometryPoints);
if (geometry.type == 'polygon') {
geometry.drawPolygon();
} else {
geometry.drawLine();
}
geometry.finishDrawing();
geometry.onClick();
};
export default CesiumPlot; export default CesiumPlot;