From f685ae67d7c40bbf5994e3fe2e793928a24483df Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=BB=95=E5=B5=A9?= <17854119262@163.com> Date: Tue, 10 Dec 2024 13:35:19 +0800 Subject: [PATCH] =?UTF-8?q?=E5=BD=B1=E5=83=8F=E5=91=A8=E6=95=B0-=E5=88=87?= =?UTF-8?q?=E5=89=B2=E7=BC=A9=E7=95=A5=E5=9B=BE=E6=8F=90=E5=8D=87=E6=B8=85?= =?UTF-8?q?=E6=99=B0=E5=BA=A6=EF=BC=8C=E5=9C=A8=E5=8F=A0=E5=8A=A0=E5=88=B0?= =?UTF-8?q?=E5=9C=B0=E5=9B=BE=E4=B8=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/demo/system.ts | 2 +- .../GeoTiffManager/chooseUpdate.vue | 69 +++++++++++++++ .../achievement/GeoTiffManager/index.vue | 39 ++++++--- .../system/achievement/GeoTiffManager/util.ts | 8 ++ .../clound/mapComponent.vue | 83 ++++++++++--------- 5 files changed, 151 insertions(+), 50 deletions(-) create mode 100644 src/views/demo/system/achievement/GeoTiffManager/chooseUpdate.vue diff --git a/src/api/demo/system.ts b/src/api/demo/system.ts index 336b98ba..50226eca 100644 --- a/src/api/demo/system.ts +++ b/src/api/demo/system.ts @@ -494,7 +494,7 @@ export const GeoTiffManagerDeleteTifStore = (params) => defHttp.post({ url: Api.DeleteTifStore + '?stores=' + params.stores }); // 删除tiff影像 export const GeoTiffManagerUpdateLayerGroupThumb = (params) => - defHttp.post({ url: Api.UpdateLayerGroupThumb + '?layerGroups=' + params.layerGroups }); + defHttp.post({ url: Api.UpdateLayerGroupThumb + '?layerGroups=' + params.layerGroups + "&num=" + params.num }); // 成果管理-航飞图片 // 添加成果 diff --git a/src/views/demo/system/achievement/GeoTiffManager/chooseUpdate.vue b/src/views/demo/system/achievement/GeoTiffManager/chooseUpdate.vue new file mode 100644 index 00000000..e8298071 --- /dev/null +++ b/src/views/demo/system/achievement/GeoTiffManager/chooseUpdate.vue @@ -0,0 +1,69 @@ + + + diff --git a/src/views/demo/system/achievement/GeoTiffManager/index.vue b/src/views/demo/system/achievement/GeoTiffManager/index.vue index fb910be8..0f792d41 100644 --- a/src/views/demo/system/achievement/GeoTiffManager/index.vue +++ b/src/views/demo/system/achievement/GeoTiffManager/index.vue @@ -69,6 +69,17 @@ > + + + + @@ -85,6 +96,7 @@ import { columns, searchFormSchema } from './util'; import MapComponent from '@/views/demo/system/geoservermanagement/clound/mapComponent.vue'; import FailYingxiang from './failYingxiang.vue'; + import ChooseUpdate from './chooseUpdate.vue'; // api import { GeoTiffManagerUpdateGeoTiff, @@ -144,7 +156,6 @@ reload(); } else { failYingxiangData.value = getFailYingxiangData(res); - // console.log(failYingxiangData.value); failOpen.value = true; reload(); } @@ -219,6 +230,14 @@ } // 在本地路径生成缩略图------------------------------------------------------------------------------- + // 选择生成缩略图的影像open + const chooseUpdateOpen = ref(false); + const chooseUpdateData: any = ref([]); + // 选择更新的周数影像弹窗关闭 + function chooseUpdateClose() { + chooseUpdateOpen.value = false; + } + // 在本地路径生成缩略图 async function updateYearWeekThumbnail() { GeoTiffManagerLoadPage({ page: 1, @@ -229,15 +248,14 @@ // 转换时间数组(年份-周数) uniqueKeysArray = [...new Set(uniqueKeysArray.map(convertToYearWeek))]; // 生成对应年份-周数的缩略图 - let layerNames: any = ''; + chooseUpdateData.value = []; uniqueKeysArray.forEach((item, index) => { - if (index == 0) { - layerNames = item; - } else { - layerNames = layerNames.concat(',' + item); - } + chooseUpdateData.value.push({ + yearWeek: item, + }); }); - // 更换全部缩略图 + chooseUpdateOpen.value = true; + // 更换全部影像的缩略图 // res.items.forEach((item, index) => { // if (layerNames === '') { // layerNames = item.layerName; @@ -245,16 +263,15 @@ // layerNames = layerNames.concat(',' + item.layerName); // } // }); - // 生成缩略图 - generateThumbnail(layerNames); }); } // 生成缩略图 async function generateThumbnail(layerNames) { - GeoTiffManagerUpdateLayerGroupThumb({ layerGroups: layerNames }).then((res) => { + GeoTiffManagerUpdateLayerGroupThumb({ layerGroups: layerNames, num: 10 }).then((res) => { if (res) { createMessage.success('生成新的缩略图成功!'); + chooseUpdateOpen.value = false; } else { createMessage.error('生成新的缩略图失败!'); } diff --git a/src/views/demo/system/achievement/GeoTiffManager/util.ts b/src/views/demo/system/achievement/GeoTiffManager/util.ts index b4671e17..6d3befd5 100644 --- a/src/views/demo/system/achievement/GeoTiffManager/util.ts +++ b/src/views/demo/system/achievement/GeoTiffManager/util.ts @@ -73,4 +73,12 @@ export const failColumns = [ dataIndex: 'action', width: 100, } +]; + +export const chooseUpdateColumns = [ + { + title: '年份周数', + dataIndex: 'yearWeek', + width: 200, + }, ]; \ No newline at end of file diff --git a/src/views/demo/system/geoservermanagement/clound/mapComponent.vue b/src/views/demo/system/geoservermanagement/clound/mapComponent.vue index 9d5a1191..a7dc612a 100644 --- a/src/views/demo/system/geoservermanagement/clound/mapComponent.vue +++ b/src/views/demo/system/geoservermanagement/clound/mapComponent.vue @@ -346,34 +346,38 @@ ) { // 周数的 // 提前准备好的缩略图 - let fourpoint = [ - [117.34046403513817, 36.263686454243626], - [119.27763051149853, 36.263686454243626], - [119.27763051149853, 34.331716698906675], - [117.34046403513817, 34.331716698906675], - ]; - map.addSource(chooseRow.layerName + '-image', { - type: 'image', - url: '/geoserver/group/' + chooseRow.layerName + '.png', - coordinates: fourpoint, - }); - map.addLayer({ - id: chooseRow.layerName + '-image', - type: 'raster', - source: chooseRow.layerName + '-image', - }); - if (map.getLayer('streetLayer')) { - map.moveLayer(chooseRow.layerName + '-image', 'streetLayer'); + const NUM = 10; + const LNG = Number(((119.27763051149853 - 117.34046403513817) / NUM).toFixed(5)); + const LAT = Number(((36.263686454243626 - 34.331716698906675) / NUM).toFixed(5)); + + for (let x = 0; x < NUM; x++) { + for (let y = 0; y < NUM; y++) { + let fourpoint = [ + [Number(117.34046403513817 + x * LNG), Number(34.331716698906675 + (y + 1) * LAT)], + [ + Number(117.34046403513817 + (x + 1) * LNG), + Number(34.331716698906675 + (y + 1) * LAT), + ], + [Number(117.34046403513817 + (x + 1) * LNG), Number(34.331716698906675 + y * LAT)], + [Number(117.34046403513817 + x * LNG), Number(34.331716698906675 + y * LAT)], + ]; + map.addSource(chooseRow.layerName + '-image-' + x + '-' + y, { + type: 'image', + url: '/geoserver/group/' + chooseRow.layerName + '-' + x + '-' + y + '.png', + coordinates: fourpoint, + }); + map.addLayer({ + id: chooseRow.layerName + '-image-' + x + '-' + y, + type: 'raster', + source: chooseRow.layerName + '-image-' + x + '-' + y, + minzoom: 0, + maxzoom: 15, + }); + if (map.getLayer('streetLayer')) { + map.moveLayer(chooseRow.layerName + '-image-' + x + '-' + y, 'streetLayer'); + } + } } - setTimeout(() => { - // 等加载好真正的周图层后,删除提前准备好的缩略图 - if (map.getLayer(chooseRow.layerName + '-image')) { - map.removeLayer(chooseRow.layerName + '-image'); - } - if (map.getSource(chooseRow.layerName + '-image')) { - map.removeSource(chooseRow.layerName + '-image'); - } - }, 25000); } // geoserver @@ -386,14 +390,12 @@ titeUrl = 'http://192.168.10.141:8080/geoserver/my_workspace/wms?service=WMS&version=1.1.0&request=GetMap&layers=my_workspace:'; } - let tile = titeUrl + chooseRow.layerName + '&styles=&bbox={bbox-epsg-3857}&width=256&height=256&srs=EPSG:3857' + '&format=image/png&TRANSPARENT=TRUE'; tiles.push(tile); - map.addSource(chooseRow.layerName, { type: 'raster', tiles: tiles, @@ -403,9 +405,7 @@ id: chooseRow.layerName, type: 'raster', source: chooseRow.layerName, - layout: { - visibility: 'visible', - }, + minzoom: 14, }); if (map.getLayer('streetLayer')) { map.moveLayer(chooseRow.layerName, 'streetLayer'); @@ -555,12 +555,17 @@ // 删除图片 map.removeImage('diagonal-stripe'); } - // 删除提前准备好的缩略图 - if (map.getLayer(layerName + '-image')) { - map.removeLayer(layerName + '-image'); - } - if (map.getSource(layerName + '-image')) { - map.removeSource(layerName + '-image'); + // 删除准备好的缩略图 + const NUM = 10; + for (let x = 0; x < NUM; x++) { + for (let y = 0; y < NUM; y++) { + if (map.getLayer(layerName + '-image-' + x + '-' + y)) { + map.removeLayer(layerName + '-image-' + x + '-' + y); + } + if (map.getSource(layerName + '-image-' + x + '-' + y)) { + map.removeSource(layerName + '-image-' + x + '-' + y); + } + } } } @@ -602,6 +607,8 @@ handlerDealCountry(null); // map.on('click', function (e) { + // const zoom = map.getZoom(); + // console.log('地图缩放级别更新为:', zoom); // console.log('点击位置的坐标:', e.lngLat.lng, e.lngLat.lat); // }); });