| | |
| | | |
| | | <script setup> |
| | | import { ref, onMounted, watch, nextTick, onUnmounted, watchEffect } from "vue"; |
| | | import { createPoint, removeEntities, addTileset } from "@/utils/map"; |
| | | import { |
| | | createPoint, |
| | | removeEntities, |
| | | addTileset, |
| | | clearAllPoints, |
| | | } from "@/utils/map"; |
| | | import { deviceDictList, getDictName } from "@/constant/dict.js"; |
| | | import { useRoute } from "vue-router"; |
| | | import { |
| | |
| | | try { |
| | | TerrainLayer = await earthCtrl.factory.createTerrainLayer({ |
| | | sourceType: "ctb", |
| | | url: "http://106.120.22.26:9103/gisserver/ctsserver/sunhugoudem84", |
| | | url: "http://106.120.22.26:9103/gisserver/ctsserver/sunhugoudem", |
| | | requestVertexNormals: true, |
| | | }); |
| | | treeMap.set("地形数据", TerrainLayer); |
| | |
| | | const list = treeMap.get(layerName); |
| | | if (list && Array.isArray(list)) { |
| | | list.forEach((entity) => { |
| | | if (viewer.entities.contains(entity)) { |
| | | viewer.entities.remove(entity); |
| | | } |
| | | clearAllPoints(); |
| | | }); |
| | | } |
| | | treeMap.delete(layerName); |
| | |
| | | if (simStore.DeviceShowSwitch) { |
| | | const deviceList = simStore.devices |
| | | .filter((item) => item.deviceName?.includes("孙胡沟")) |
| | | .map((item) => { |
| | | const entity = createPoint({ |
| | | ...item, |
| | | type: getDictName(deviceDictList, item.dictDeviceType), |
| | | name: item.deviceName.split("孙胡沟")[1], |
| | | id: item.deviceId, |
| | | className: "device", |
| | | showLabel: true, |
| | | }); |
| | | entity.show = true; |
| | | return entity; |
| | | .map(async (item) => { |
| | | const entity = viewer.entities.getById(item.deviceId); |
| | | item.type = getDictName(deviceDictList, item.dictDeviceType); |
| | | item.name = item.deviceName.split("孙胡沟")[1]; |
| | | item.id = item.deviceId; |
| | | item.className = "device"; |
| | | item.showLabel = true; |
| | | await createPoint(item); |
| | | }); |
| | | |
| | | if (deviceList.length) { |
| | |
| | | if (simStore.DangerShowSwitch) { |
| | | const dangerPoints = simStore.DangerPoint.filter((item) => |
| | | item.position?.includes("孙胡沟") |
| | | ).map((item) => { |
| | | const entity = createPoint({ |
| | | id: item.hdId, |
| | | name: item.hdName, |
| | | latitude: item.lat, |
| | | longitude: item.lon, |
| | | showBillboard: true, |
| | | type: item.disasterType, |
| | | className: "district", |
| | | }); |
| | | entity.show = true; |
| | | return entity; |
| | | ).map(async (item) => { |
| | | const entity = viewer.entities.getById(item.hdId); |
| | | item.id = item.hdId; |
| | | item.name = item.hdName; |
| | | item.latitude = item.lat; |
| | | item.longitude = item.lon; |
| | | item.showBillboard = true; |
| | | item.type = item.disasterType; |
| | | item.className = "district"; |
| | | await createPoint(item); |
| | | }); |
| | | |
| | | if (dangerPoints.length) { |
| | |
| | | */ |
| | | function addTetrahedron() { |
| | | getSafePoint().then((res) => { |
| | | console.log(res,'resresresres') |
| | | const geoJsonData = convertToGeoJson(res.data); // 转换为 GeoJSON |
| | | // 加载 GeoJSON 数据到地图 |
| | | loadAreaPolygon(geoJsonData, true).then((entities) => { |