mirror of
https://github.com/ethan-zf/cesium-plot-js.git
synced 2025-06-23 19:17:29 +00:00
195 lines
6.1 KiB
JavaScript
195 lines
6.1 KiB
JavaScript
window.onload = () => {
|
|
let raster = new Cesium.ArcGisMapServerImageryProvider({
|
|
url: 'https://services.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer',
|
|
});
|
|
|
|
const viewer = new Cesium.Viewer('cesiumContainer', {
|
|
animation: false,
|
|
shouldAnimate: true,
|
|
geocoder: false,
|
|
homeButton: false,
|
|
infoBox: false,
|
|
fullscreenButton: false,
|
|
sceneModePicker: false,
|
|
selectionIndicator: false,
|
|
timeline: false,
|
|
navigationHelpButton: false,
|
|
baseLayerPicker: false,
|
|
imageryProvider: raster,
|
|
contextOptions: {
|
|
requestWebgl2: true,
|
|
},
|
|
});
|
|
|
|
viewer.scene.postProcessStages.fxaa.enabled = true;
|
|
viewer.scene.camera.setView({
|
|
destination: Cesium.Cartesian3.fromDegrees(107.857, 35.594498, 10000),
|
|
});
|
|
// let scene = viewer.scene;
|
|
// viewer.scene.debugShowFramesPerSecond = true;
|
|
|
|
// viewer.camera.flyTo({
|
|
// destination: new Cesium.Cartesian3(-2480561.3182985717, 4681691.324170088, 3539464.2534263907),
|
|
// orientation: {
|
|
// heading: 2.0002851646951996,
|
|
// pitch: -0.25963088874216256,
|
|
// roll: 6.283183024299778,
|
|
// },
|
|
// complete: function () {
|
|
// console.error('fly complete');
|
|
// },
|
|
// });
|
|
|
|
// // let geometry = new CesiumPlot.Polygon(Cesium, viewer);
|
|
// let geometry = new CesiumPlot.FineArrow(Cesium, viewer, {
|
|
// material: Cesium.Color.fromCssColorString('rgba(255, 178, 208, 0.5)'),
|
|
// outlineMaterial: Cesium.Color.fromCssColorString('rgba(59, 178, 208, 1)'),
|
|
// outlineWidth: 3,
|
|
// });
|
|
let geometry;
|
|
const dragStartHandler = () => {
|
|
console.error('start');
|
|
};
|
|
const drawUpdateHandler = (cartesian) => {
|
|
console.error('update', cartesian);
|
|
};
|
|
|
|
const drawEndHandler = (geometryPoints) => {
|
|
console.error('drawEnd', geometryPoints);
|
|
};
|
|
|
|
const editStartHandler = () => {
|
|
console.error('editStart');
|
|
};
|
|
|
|
const editEndHandler = (geometryPoints) => {
|
|
console.error('editEnd', geometryPoints);
|
|
};
|
|
const buttonGroup = document.getElementById('button-group');
|
|
buttonGroup.onclick = (evt) => {
|
|
const targetElement = evt.target;
|
|
switch (targetElement.id) {
|
|
case 'drawCircle':
|
|
geometry = new CesiumPlot.Circle(Cesium, viewer);
|
|
break;
|
|
case 'drawPolygon':
|
|
geometry = new CesiumPlot.Polygon(Cesium, viewer);
|
|
break;
|
|
case 'drawReactangle':
|
|
geometry = new CesiumPlot.Reactangle(Cesium, viewer);
|
|
break;
|
|
case 'drawTriangle':
|
|
geometry = new CesiumPlot.Triangle(Cesium, viewer);
|
|
break;
|
|
case 'drawFineArrow':
|
|
geometry = new CesiumPlot.FineArrow(Cesium, viewer, {
|
|
// material: Cesium.Color.fromCssColorString('rgba(59, 178, 208, 0.5)'),
|
|
// outlineMaterial: Cesium.Color.fromCssColorString('rgba(59, 178, 208, 1)'),
|
|
// outlineWidth: 3,
|
|
});
|
|
break;
|
|
case 'drawAttackArrow':
|
|
geometry = new CesiumPlot.AttackArrow(Cesium, viewer, {
|
|
// outlineMaterial: Cesium.Color.RED,
|
|
});
|
|
break;
|
|
case 'drawSwallowtailAttackArrow':
|
|
geometry = new CesiumPlot.SwallowtailAttackArrow(Cesium, viewer, {
|
|
// outlineMaterial: Cesium.Color.BLUE,
|
|
});
|
|
break;
|
|
case 'drawSquadCombat':
|
|
geometry = new CesiumPlot.SquadCombat(Cesium, viewer, {
|
|
// outlineMaterial: new Cesium.PolylineDashMaterialProperty({
|
|
// color: Cesium.Color.RED,
|
|
// dashLength: 16.0,
|
|
// }),
|
|
});
|
|
break;
|
|
case 'drawSwallowtailSquadCombat':
|
|
geometry = new CesiumPlot.SwallowtailSquadCombat(Cesium, viewer);
|
|
break;
|
|
case 'drawStraightArrow':
|
|
geometry = new CesiumPlot.StraightArrow(Cesium, viewer, {
|
|
// material: Cesium.Color.RED,
|
|
});
|
|
break;
|
|
case 'drawAssaultDirection':
|
|
geometry = new CesiumPlot.AssaultDirection(Cesium, viewer);
|
|
break;
|
|
case 'drawCurvedArrow':
|
|
geometry = new CesiumPlot.CurvedArrow(Cesium, viewer, {
|
|
// material: Cesium.Color.BLUE,
|
|
});
|
|
break;
|
|
case 'drawDoubleArrow':
|
|
geometry = new CesiumPlot.DoubleArrow(Cesium, viewer, {
|
|
// outlineMaterial: Cesium.Color.GREEN,
|
|
});
|
|
break;
|
|
case 'drawFreehandLine':
|
|
geometry = new CesiumPlot.FreehandLine(Cesium, viewer);
|
|
break;
|
|
case 'drawCurve':
|
|
geometry = new CesiumPlot.Curve(Cesium, viewer);
|
|
break;
|
|
case 'drawEllipse':
|
|
geometry = new CesiumPlot.Ellipse(Cesium, viewer);
|
|
break;
|
|
case 'drawLune':
|
|
geometry = new CesiumPlot.Lune(Cesium, viewer);
|
|
break;
|
|
case 'drawFreehandPolygon':
|
|
geometry = new CesiumPlot.FreehandPolygon(Cesium, viewer, {
|
|
// material: Cesium.Color.GREEN,
|
|
// outlineMaterial: Cesium.Color.fromCssColorString('rgba(59, 178, 208, 1)'),
|
|
// outlineWidth: 2,
|
|
});
|
|
break;
|
|
case 'hide':
|
|
geometry &&
|
|
geometry.hide({
|
|
deration: 2000,
|
|
});
|
|
break;
|
|
case 'show':
|
|
geometry &&
|
|
geometry.show({
|
|
deration: 2000,
|
|
});
|
|
break;
|
|
case 'remove':
|
|
geometry && geometry.remove();
|
|
geometry = null;
|
|
break;
|
|
case 'addEvent':
|
|
if (geometry) {
|
|
geometry.on('drawStart', dragStartHandler);
|
|
geometry.on('drawUpdate', drawUpdateHandler);
|
|
geometry.on('drawEnd', drawEndHandler);
|
|
geometry.on('editStart', editStartHandler);
|
|
geometry.on('editEnd', editEndHandler);
|
|
}
|
|
break;
|
|
case 'removeEvent':
|
|
if (geometry) {
|
|
geometry.off('drawStart', dragStartHandler);
|
|
geometry.off('drawUpdate', drawUpdateHandler);
|
|
geometry.off('drawEnd', drawEndHandler);
|
|
geometry.off('editStart', editStartHandler);
|
|
geometry.off('editEnd', editEndHandler);
|
|
}
|
|
break;
|
|
case 'startGrowthAnimation':
|
|
if (geometry) {
|
|
geometry.startGrowthAnimation({
|
|
duration: 2000,
|
|
});
|
|
}
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
};
|
|
};
|