mirror of
https://github.com/ethan-zf/cesium-plot-js.git
synced 2025-06-23 19:17:29 +00:00
add createGeometryFromData
This commit is contained in:
parent
2f5e3a50a0
commit
85f2111f45
@ -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) {
|
||||||
|
30
src/index.ts
30
src/index.ts
@ -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;
|
||||||
|
Loading…
Reference in New Issue
Block a user