2023-08-16 08:17:33 +00:00
|
|
|
import CesiumPlot from '../src';
|
2023-08-14 09:47:59 +00:00
|
|
|
// import CesiumPlot from "../dist/CesiumPlot";
|
2023-08-16 08:17:33 +00:00
|
|
|
import * as Cesium from './cesium/index';
|
2023-08-08 07:41:52 +00:00
|
|
|
|
2023-08-14 09:47:59 +00:00
|
|
|
// let raster = new Cesium.ArcGisMapServerImageryProvider({
|
2023-08-23 09:53:39 +00:00
|
|
|
// url: 'https://services.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer',
|
2023-08-14 09:47:59 +00:00
|
|
|
// });
|
|
|
|
|
2023-08-23 09:53:39 +00:00
|
|
|
let raster = new Cesium.UrlTemplateImageryProvider({
|
2023-08-16 08:17:33 +00:00
|
|
|
url: 'https://10.68.8.41:9043/kmap-server/gridMap/tile/{z}/{y}/{x}',
|
2023-08-14 09:47:59 +00:00
|
|
|
// url: 'http://10.68.8.58:8080/3d/dom2/{z}/{x}/{y}.png'
|
2023-08-08 11:45:54 +00:00
|
|
|
});
|
2023-08-16 08:17:33 +00:00
|
|
|
const viewer = new Cesium.Viewer('cesiumContainer', {
|
2023-08-08 11:45:54 +00:00
|
|
|
animation: false,
|
|
|
|
shouldAnimate: true,
|
|
|
|
geocoder: false,
|
|
|
|
homeButton: false,
|
|
|
|
infoBox: false,
|
|
|
|
fullscreenButton: false,
|
|
|
|
sceneModePicker: false,
|
|
|
|
selectionIndicator: false,
|
|
|
|
timeline: false,
|
|
|
|
navigationHelpButton: false,
|
|
|
|
baseLayerPicker: false,
|
2023-08-23 09:53:39 +00:00
|
|
|
imageryProvider: raster,
|
2023-08-14 09:47:59 +00:00
|
|
|
// imageryProvider: raster,
|
2023-08-08 11:45:54 +00:00
|
|
|
contextOptions: {
|
|
|
|
requestWebgl2: true,
|
|
|
|
},
|
2023-08-21 05:47:28 +00:00
|
|
|
// msaaSamples: 4,
|
2023-08-08 11:45:54 +00:00
|
|
|
});
|
2023-08-08 07:41:52 +00:00
|
|
|
|
2023-08-09 09:55:29 +00:00
|
|
|
viewer.scene.postProcessStages.fxaa.enabled = true;
|
2023-08-08 11:45:54 +00:00
|
|
|
viewer.scene.camera.setView({
|
2023-08-22 06:19:21 +00:00
|
|
|
destination: Cesium.Cartesian3.fromDegrees(107.857, 35.594498, 7000000),
|
2023-08-08 11:45:54 +00:00
|
|
|
});
|
|
|
|
|
2023-08-23 09:53:39 +00:00
|
|
|
const getCameraInfo = () => {
|
|
|
|
var position = viewer.camera.position;
|
|
|
|
var ellipsoid = viewer.scene.globe.ellipsoid;
|
|
|
|
var cartographic = ellipsoid.cartesianToCartographic(position);
|
|
|
|
var longitude = Cesium.Math.toDegrees(cartographic.longitude);
|
|
|
|
var latitude = Cesium.Math.toDegrees(cartographic.latitude);
|
|
|
|
console.error('camera position:', longitude, latitude);
|
|
|
|
var position = viewer.camera.position;
|
|
|
|
var ellipsoid = viewer.scene.globe.ellipsoid;
|
|
|
|
var cartographic = ellipsoid.cartesianToCartographic(position);
|
|
|
|
var height = cartographic.height;
|
|
|
|
console.error('camera height:', height);
|
|
|
|
};
|
|
|
|
|
|
|
|
let geometry: any;
|
2023-08-22 06:19:21 +00:00
|
|
|
const buttonGroup = document.getElementById('button-group') as HTMLElement;
|
|
|
|
buttonGroup.onclick = (evt) => {
|
|
|
|
const targetElement = evt.target as HTMLElement;
|
|
|
|
switch (targetElement.id) {
|
|
|
|
case 'drawFineArrow':
|
2023-08-23 09:53:39 +00:00
|
|
|
geometry = new CesiumPlot.FineArrow(Cesium, viewer, {
|
2023-08-23 03:49:11 +00:00
|
|
|
fillColor: Cesium.Color.fromCssColorString('rgba(59, 178, 208, 0.5)'),
|
|
|
|
});
|
2023-08-22 06:19:21 +00:00
|
|
|
break;
|
|
|
|
case 'drawAttackArrow':
|
2023-08-23 09:53:39 +00:00
|
|
|
geometry = new CesiumPlot.AttackArrow(Cesium, viewer, {
|
2023-08-23 03:49:11 +00:00
|
|
|
outlineColor: Cesium.Color.RED,
|
|
|
|
});
|
2023-08-22 06:19:21 +00:00
|
|
|
break;
|
|
|
|
case 'drawSwallowtailAttackArrow':
|
2023-08-23 09:53:39 +00:00
|
|
|
geometry = new CesiumPlot.SwallowtailAttackArrow(Cesium, viewer, {
|
2023-08-23 03:49:11 +00:00
|
|
|
outlineColor: Cesium.Color.BLUE,
|
|
|
|
});
|
2023-08-22 06:19:21 +00:00
|
|
|
break;
|
|
|
|
case 'drawSquadCombat':
|
2023-08-23 09:53:39 +00:00
|
|
|
geometry = new CesiumPlot.SquadCombat(Cesium, viewer);
|
2023-08-22 06:19:21 +00:00
|
|
|
break;
|
|
|
|
case 'drawSwallowtailSquadCombat':
|
2023-08-23 09:53:39 +00:00
|
|
|
geometry = new CesiumPlot.SwallowtailSquadCombat(Cesium, viewer);
|
2023-08-22 06:19:21 +00:00
|
|
|
break;
|
|
|
|
case 'drawStraightArrow':
|
2023-08-23 09:53:39 +00:00
|
|
|
geometry = new CesiumPlot.StraightArrow(Cesium, viewer, {
|
2023-08-23 03:49:11 +00:00
|
|
|
lineColor: Cesium.Color.RED,
|
|
|
|
});
|
2023-08-22 06:19:21 +00:00
|
|
|
break;
|
|
|
|
case 'drawAssaultDirection':
|
2023-08-23 09:53:39 +00:00
|
|
|
geometry = new CesiumPlot.AssaultDirection(Cesium, viewer);
|
2023-08-22 06:19:21 +00:00
|
|
|
break;
|
|
|
|
case 'drawCurvedArrow':
|
2023-08-23 09:53:39 +00:00
|
|
|
geometry = new CesiumPlot.CurvedArrow(Cesium, viewer, {
|
2023-08-23 03:49:11 +00:00
|
|
|
lineColor: Cesium.Color.BLUE,
|
|
|
|
});
|
2023-08-22 06:19:21 +00:00
|
|
|
break;
|
2023-08-22 07:21:28 +00:00
|
|
|
case 'drawDoubleArrow':
|
2023-08-23 09:53:39 +00:00
|
|
|
geometry = new CesiumPlot.DoubleArrow(Cesium, viewer, {
|
2023-08-23 03:49:11 +00:00
|
|
|
outlineColor: Cesium.Color.GREEN,
|
|
|
|
});
|
2023-08-22 07:21:28 +00:00
|
|
|
break;
|
|
|
|
case 'drawFreehandLine':
|
2023-08-23 09:53:39 +00:00
|
|
|
geometry = new CesiumPlot.FreehandLine(Cesium, viewer);
|
2023-08-22 07:21:28 +00:00
|
|
|
break;
|
2023-08-22 07:40:58 +00:00
|
|
|
case 'drawFreehandPolygon':
|
2023-08-23 09:53:39 +00:00
|
|
|
geometry = new CesiumPlot.FreehandPolygon(Cesium, viewer);
|
|
|
|
break;
|
|
|
|
case 'hide':
|
|
|
|
geometry && geometry.hide();
|
|
|
|
// setTimeout(getCameraInfo, 2000);
|
|
|
|
break;
|
|
|
|
case 'show':
|
|
|
|
geometry && geometry.show();
|
|
|
|
break;
|
|
|
|
case 'remove':
|
|
|
|
geometry && geometry.remove();
|
|
|
|
geometry = null;
|
2023-08-22 07:40:58 +00:00
|
|
|
break;
|
2023-08-22 06:19:21 +00:00
|
|
|
default:
|
|
|
|
break;
|
|
|
|
}
|
2023-08-21 10:02:00 +00:00
|
|
|
};
|