From 0b700614e2f3e41df4655ba5469217e009c246ac Mon Sep 17 00:00:00 2001 From: riku <risaku@163.com> Date: 星期一, 24 二月 2025 17:09:13 +0800 Subject: [PATCH] 1. 初步完成走航融合相关功能 --- src/views/satellitetelemetry/SatelliteTelemetry.vue | 110 +++++++++++++++++++++++++++++++++--------------------- 1 files changed, 67 insertions(+), 43 deletions(-) diff --git a/src/views/satellitetelemetry/SatelliteTelemetry.vue b/src/views/satellitetelemetry/SatelliteTelemetry.vue index fc74865..d268ece 100644 --- a/src/views/satellitetelemetry/SatelliteTelemetry.vue +++ b/src/views/satellitetelemetry/SatelliteTelemetry.vue @@ -12,6 +12,7 @@ @show-rank="handleRankClick" @show-data="handleDataClick" @change-color="handleColorClick" + @change-opacity="handleOpacityClick" ></SatelliteManage> </el-row> </el-col> @@ -27,6 +28,8 @@ </el-row> <SatelliteDataMix class="data-mix" @mix-data="handleMixDataClick"> </SatelliteDataMix> + <SatelliteMixTool :group-id="3"></SatelliteMixTool> + <!-- <el-row class="historical" justify="center"> <SatelliteAnimation :loading="animaLoading" @@ -45,40 +48,15 @@ import gridApi from '@/api/gridApi'; import SatelliteManage from './component/SatelliteManage.vue'; import SatelliteDataMix from './component/SatelliteDataMix.vue'; +import SatelliteMixTool from './component/SatelliteMixTool.vue'; import SatelliteProxy from './SatelliteProxy'; import { useFetchData } from '@/composables/fetchData'; import { useSatelliteGridStore } from '@/stores/satellite-grid'; - -// 鏌ヨ闀垮畞鍖鸿鏀垮尯鍒� -onMapMounted(()=>{ - // eslint-disable-next-line no-undef - var district = new AMap.DistrictSearch({ - extensions: "all", //杩斿洖琛屾斂鍖鸿竟鐣屽潗鏍囩瓑鍏蜂綋淇℃伅 - level: "district", //璁剧疆鏌ヨ琛屾斂鍖虹骇鍒负鍖� - }); - district.search("闀垮畞鍖�", function (status, result) { - var bounds = result.districtList[0].boundaries; //鑾峰彇鏈濋槼鍖虹殑杈圭晫淇℃伅 - if (bounds) { - for (var i = 0; i < bounds.length; i++) { - //鐢熸垚琛屾斂鍖哄垝 polygon - // eslint-disable-next-line no-undef - var polygon = new AMap.Polygon({ - map: map, //鏄剧ず璇ヨ鐩栫墿鐨勫湴鍥惧璞� - strokeWeight: 3, //杞粨绾垮搴� - path: bounds[i], //澶氳竟褰㈣疆寤撶嚎鐨勮妭鐐瑰潗鏍囨暟缁� - fillOpacity: 0.1, //澶氳竟褰㈠~鍏呴�忔槑搴� - fillColor: "#CCF3FF", //澶氳竟褰㈠~鍏呴鑹� - // strokeColor: "#CC66CC", //绾挎潯棰滆壊 - strokeColor: "#0066ff", //绾挎潯棰滆壊 - }); - } - map.setFitView(); //灏嗚鐩栫墿璋冩暣鍒板悎閫傝閲� - } - }); -}) +import { useSceneStore } from '@/stores/scene'; const satelliteGridStore = useSatelliteGridStore(); const { loading, fetchData } = useFetchData(10000); +const sceneStore = useSceneStore(); const animaLoading = ref(true); const show = ref(true); @@ -94,10 +72,12 @@ function onSearch(options) { satelliteGridStore.fetchGridCell(options.id).then(() => { drawGrid(satelliteGridStore.gridInfo); + // initDistrict(); + SatelliteProxy.drawDistrict('闀垮畞鍖�'); }); - satelliteGridStore.fetchGridData(options.id).then(()=>{ - max = satelliteGridStore.gridDataList.length - fetchGridDataDetail(satelliteGridStore.gridDataList) + satelliteGridStore.fetchGridData(options.id).then(() => { + max = satelliteGridStore.gridDataList.length; + // fetchGridDataDetail(satelliteGridStore.gridDataList); }); } @@ -130,16 +110,46 @@ function drawGrid(gridInfo) { SatelliteProxy.clearAll(mapViews); - mapViews = SatelliteProxy.drawPolyline(gridInfo); + mapViews = SatelliteProxy.drawPolyline(gridInfo, (polygon) => { + //榧犳爣绉诲叆浜嬩欢 + polygon.on('mouseover', () => { + polygon.setOptions({ + //淇敼澶氳竟褰㈠睘鎬х殑鏂规硶 + strokeWeight: 2, + strokeColor: 'red' + }); + }); + //榧犳爣绉诲嚭浜嬩欢 + polygon.on('mouseout', () => { + polygon.setOptions({ + strokeWeight: 1, + strokeColor: 'white' + }); + }); + //榧犳爣鐐瑰嚮浜嬩欢 + polygon.on('click', () => { + const [lng, lat] = polygon.getExtData(); + sceneStore.radius = 0.5; + sceneStore.searchScene(lng, lat); + }); + }); } // 缁樺埗缃戞牸閬ユ劅鏁版嵁鍊煎拰缃戞牸棰滆壊 function drawTextAndColor(gridData) { // SatelliteProxy.clearText(mapViews); + const { resGridViews, pointsRes } = SatelliteProxy.drawColor({ + gridViews: mapViews.gridViews, + points: mapViews.points, + gridDataDetail: gridData, + lastGridViews: mapViews.lastGridViews + }); + mapViews.lastGridViews = resGridViews; + mapViews.lastPoints = pointsRes; // 鏂囨湰鏍囪 const { textViews: dataTxt, labelsLayer: dataLayer } = SatelliteProxy.drawDataText( - mapViews.points, + mapViews.lastPoints, gridData, mapViews.dataTxt, mapViews.dataLayer @@ -148,14 +158,13 @@ mapViews.dataLayer = dataLayer; const { textViews: rankTxt, labelsLayer: rankLayer } = SatelliteProxy.drawRankText( - mapViews.points, + mapViews.lastPoints, gridData, mapViews.rankTxt, mapViews.rankLayer ); mapViews.rankTxt = rankTxt; mapViews.rankLayer = rankLayer; - SatelliteProxy.drawColor(mapViews.gridViews, gridData); } let selectedGridData; @@ -175,19 +184,33 @@ } function handleRankClick(rankVisible) { - rankVisible ? map.add(mapViews.rankLayer) : map.remove(mapViews.rankLayer); + // rankVisible ? map.add(mapViews.rankLayer) : map.remove(mapViews.rankLayer); + rankVisible ? map.add(mapViews.rankTxt) : map.remove(mapViews.rankTxt); } function handleDataClick(dataVisible) { - dataVisible ? map.add(mapViews.dataLayer) : map.remove(mapViews.dataLayer); + // dataVisible ? map.add(mapViews.dataLayer) : map.remove(mapViews.dataLayer); + dataVisible ? map.add(mapViews.dataTxt) : map.remove(mapViews.dataTxt); } function handleColorClick(isStandardColor) { - SatelliteProxy.drawColor( - mapViews.gridViews, - selectedGridData, - !isStandardColor - ); + const { resGridViews, pointsRes } = SatelliteProxy.drawColor({ + gridViews: mapViews.gridViews, + points: mapViews.points, + gridDataDetail: selectedGridData, + lastGridViews: mapViews.lastGridViews, + customColor: !isStandardColor + }); + mapViews.lastGridViews = resGridViews; + mapViews.lastPoints = pointsRes; +} + +function handleOpacityClick(isOpacity) { + mapViews.lastGridViews.forEach((e) => { + e.setOptions({ + fillOpacity: isOpacity ? 0.1 : 0.7 + }); + }); } function handleMixDataClick(gridData) { @@ -203,12 +226,13 @@ bottom: 10px; left: 0; right: 0; - color: #0066ff; + color: #0077ff; } .data-mix { position: absolute; right: 0; top: 60px; + /* color: #0552f7; */ } </style> -- Gitblit v1.9.3