|
@@ -72,7 +72,10 @@ import comModelDialog from "@/components/comModelDialog.vue";
|
|
|
import windView from "./windView.vue";
|
|
|
import menuCom from "../menuCom.vue";
|
|
|
|
|
|
-import bw from "@/assets/windimgs/fanSvg/bw.svg"
|
|
|
+// import bw from "@/assets/windimgs/fanSvg/bw.svg"
|
|
|
+import dj from "@/assets/windimgs/fanSvg/dj.svg"
|
|
|
+import bwzhu from "@/assets/windimgs/fanSvg/bwzhu.svg"
|
|
|
+import bwshan from "@/assets/windimgs/fanSvg/bwshan.png"
|
|
|
|
|
|
import windHome from "@/components/windHome/index.vue";
|
|
|
import windPro from "@/components/windProDetail/windProblem.vue";
|
|
@@ -154,30 +157,67 @@ export default {
|
|
|
selectionIndicator: false,
|
|
|
shouldAnimate: true,
|
|
|
});
|
|
|
- viewer.scene.globe.enableLighting = false;
|
|
|
- viewer.scene.sun.show = false;
|
|
|
- viewer.scene.moon.show = false;
|
|
|
- viewer.shadows = false;
|
|
|
- viewer.scene.skyAtmosphere.show = true;
|
|
|
- viewer._cesiumWidget._creditContainer.style.display = "none";
|
|
|
- viewer.terrainProvider = await Cesium.createWorldTerrainAsync({
|
|
|
- requestWaterMask: true,
|
|
|
- requestVertexNormals: true,
|
|
|
+
|
|
|
+ const imageryProvider = new Cesium.UrlTemplateImageryProvider({
|
|
|
+ // url: "https://webst02.is.autonavi.com/appmaptile?style=6&x={x}&y={y}&z={z}",
|
|
|
+ url: "http://192.168.2.180:3007/tiles/map/{z}/{x}/{y}",
|
|
|
+ credit: "影像地图",
|
|
|
});
|
|
|
- this.csceneElliposid(viewer)
|
|
|
+ imageryProvider.alpha = 0.55; // 透明度
|
|
|
+ imageryProvider.brightness = 1; // 亮度
|
|
|
+ imageryProvider.contrast = 1; // 对比度
|
|
|
+
|
|
|
+ viewer.imageryLayers.addImageryProvider(imageryProvider);
|
|
|
+ // viewer.scene.globe.enableLighting = false;
|
|
|
+ // viewer.scene.sun.show = false;
|
|
|
+ // viewer.scene.moon.show = false;
|
|
|
+ // viewer.shadows = false;
|
|
|
+ // viewer.scene.skyAtmosphere.show = true;
|
|
|
+ viewer._cesiumWidget._creditContainer.style.display = "none";
|
|
|
+ // viewer.terrainProvider = await Cesium.createWorldTerrainAsync({
|
|
|
+ // requestWaterMask: true,
|
|
|
+ // requestVertexNormals: true,
|
|
|
+ // });
|
|
|
+ // this.csceneElliposid(viewer)
|
|
|
|
|
|
// 添加一些3D风机模型
|
|
|
fjLonLatJson.data.forEach((e) => {
|
|
|
- this.addSvg(
|
|
|
- viewer,
|
|
|
- // "./static/model/fjSolo/model.glb",
|
|
|
- bw,
|
|
|
- "风机",
|
|
|
- e.longitude,
|
|
|
- e.latitude,
|
|
|
- 0.5,
|
|
|
- e
|
|
|
- );
|
|
|
+ if (e.status) {
|
|
|
+ if (e.status === 1) {
|
|
|
+ this.addSvg(
|
|
|
+ viewer,
|
|
|
+ // "./static/model/fjSolo/model.glb",
|
|
|
+ dj,
|
|
|
+ "风机",
|
|
|
+ e.longitude,
|
|
|
+ e.latitude,
|
|
|
+ 0.5,
|
|
|
+ e
|
|
|
+ );
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ this.addSvg(
|
|
|
+ viewer,
|
|
|
+ // "./static/model/fjSolo/model.glb",
|
|
|
+ bwzhu,
|
|
|
+ "风机",
|
|
|
+ e.longitude,
|
|
|
+ e.latitude,
|
|
|
+ 0.5,
|
|
|
+ e
|
|
|
+ );
|
|
|
+ this.addSvgs(
|
|
|
+ viewer,
|
|
|
+ // "./static/model/fjSolo/model.glb",
|
|
|
+ bwshan,
|
|
|
+ "风机",
|
|
|
+ e.longitude,
|
|
|
+ e.latitude,
|
|
|
+ 0.5,
|
|
|
+ e
|
|
|
+ );
|
|
|
+ }
|
|
|
+
|
|
|
});
|
|
|
//添加3D光伏模型
|
|
|
// this.addModel(
|
|
@@ -356,6 +396,31 @@ export default {
|
|
|
}
|
|
|
}, Cesium.ScreenSpaceEventType.RIGHT_CLICK);
|
|
|
},
|
|
|
+ addSvgs(viewer, uri, name, lon, lat, scale, val) {
|
|
|
+ const position = Cesium.Cartesian3.fromDegrees(lon, lat);
|
|
|
+ const entity = viewer.entities.add({
|
|
|
+ position, // 模型位置
|
|
|
+ billboard: {
|
|
|
+ image: uri, // 也可以是 SVG 路径,如 'icon.svg'
|
|
|
+ scale: 0.5,
|
|
|
+ pixelOffset: new Cesium.Cartesian2(0, -10),
|
|
|
+ verticalOrigin: Cesium.VerticalOrigin.BOTTOM,
|
|
|
+ horizontalOrigin: Cesium.HorizontalOrigin.CENTER,
|
|
|
+ // 模型贴地
|
|
|
+ heightReference: Cesium.HeightReference.CLAMP_TO_GROUND,
|
|
|
+ // 核心:使用 CallbackProperty 实现旋转动画
|
|
|
+ rotation: new Cesium.CallbackProperty(function(time) {
|
|
|
+ // 每 3 秒转一圈(可调速度)
|
|
|
+ const seconds = time.secondsOfDay;
|
|
|
+ const angle = Cesium.Math.toRadians((seconds % 3) * 360 / 3); // 每3秒一圈
|
|
|
+ return angle;
|
|
|
+ }, false),
|
|
|
+ // 确保绕中心旋转
|
|
|
+ rotationAlignment: Cesium.HeightReference.CENTER,
|
|
|
+ alignedAxis: Cesium.Cartesian3.UNIT_Z
|
|
|
+ }
|
|
|
+ });
|
|
|
+ },
|
|
|
showRightClickPopup(screenPosition, viewer, val) {
|
|
|
// 创建或获取弹框元素
|
|
|
var popup = document.getElementById("rightClickPopup");
|