zqq:遥感影像获取
This commit is contained in:
parent
ee30abff14
commit
1a3f0779b7
|
@ -13,6 +13,7 @@
|
||||||
"@element-plus/icons-vue": "^2.1.0",
|
"@element-plus/icons-vue": "^2.1.0",
|
||||||
"axios": "^1.3.4",
|
"axios": "^1.3.4",
|
||||||
"echarts": "^5.4.2",
|
"echarts": "^5.4.2",
|
||||||
|
"leaflet": "^1.9.3",
|
||||||
"element-plus": "^2.3.1",
|
"element-plus": "^2.3.1",
|
||||||
"js-cookie": "^3.0.1",
|
"js-cookie": "^3.0.1",
|
||||||
"mitt": "^3.0.0",
|
"mitt": "^3.0.0",
|
||||||
|
|
|
@ -0,0 +1,29 @@
|
||||||
|
<template>
|
||||||
|
<div ref="map" class="container"></div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup>
|
||||||
|
import { ref, onMounted } from 'vue';
|
||||||
|
import L from "leaflet";
|
||||||
|
import "leaflet/dist/leaflet.css";
|
||||||
|
|
||||||
|
const map = ref()
|
||||||
|
|
||||||
|
onMounted(() => {
|
||||||
|
const homeMap = L.map(map.value, {
|
||||||
|
preferCanvas: true,
|
||||||
|
crs: L.CRS.EPSG4326,
|
||||||
|
center: [29.563761, 106.550464],
|
||||||
|
zoom: 3,
|
||||||
|
minZoom: 1,
|
||||||
|
maxZoom: 18,
|
||||||
|
attributionControl: false, // 移除右下角leaflet标识
|
||||||
|
zoomControl: false
|
||||||
|
});
|
||||||
|
const IMG_C = "http://t0.tianditu.com/img_c/wmts?layer=img&style=default&tilematrixset=c&Service=WMTS&Request=GetTile&Version=1.0.0&Format=tiles&TileMatrix={z}&TileCol={x}&TileRow={y}&tk=";
|
||||||
|
// const CIA_C = "http://t0.tianditu.com/cia_c/wmts?layer=cia&style=default&tilematrixset=c&Service=WMTS&Request=GetTile&Version=1.0.0&Format=tiles&TileMatrix={z}&TileCol={x}&TileRow={y}&tk=";
|
||||||
|
const TK_KEY = "dc8182ebeca998e22154d404aa3c0c17";
|
||||||
|
L.tileLayer(IMG_C + TK_KEY, { maxZoom: 20, tileSize: 256, zoomOffset: 1 }).addTo(homeMap);
|
||||||
|
})
|
||||||
|
|
||||||
|
</script>
|
|
@ -1,5 +1,315 @@
|
||||||
<template>
|
<template>
|
||||||
<div>
|
<div class="container">
|
||||||
remoteSensingData
|
<div class="rsSelect">
|
||||||
|
<el-tabs v-model="activeName"
|
||||||
|
@tab-click="handleClick">
|
||||||
|
<el-tab-pane label="Search condition"
|
||||||
|
name="first">
|
||||||
|
|
||||||
|
<el-card class="box-card">
|
||||||
|
<span>Select time range</span>
|
||||||
|
<div class="block">
|
||||||
|
<span class="demonstration">Start time</span>
|
||||||
|
<el-date-picker style="width: 70%;"
|
||||||
|
v-model="startTime"
|
||||||
|
type="datetime"
|
||||||
|
placeholder="Select start time"
|
||||||
|
:shortcuts="shortcuts" />
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="block">
|
||||||
|
<span class="demonstration">End time</span>
|
||||||
|
<el-date-picker style="width: 70%;"
|
||||||
|
v-model="endTime"
|
||||||
|
type="datetime"
|
||||||
|
placeholder="Select end time"
|
||||||
|
:shortcuts="shortcuts" />
|
||||||
|
</div>
|
||||||
|
</el-card>
|
||||||
|
|
||||||
|
<el-card class="box-card"
|
||||||
|
style="margin-top: 3%;">
|
||||||
|
<span>Select a region</span>
|
||||||
|
<el-scrollbar wrap-class="list"
|
||||||
|
view-class="view-box"
|
||||||
|
:native="false">
|
||||||
|
<div class="coordinateContainer"
|
||||||
|
v-for="(coordinate, i) in coordinateList">{{
|
||||||
|
// coordinate
|
||||||
|
'Lat:' + coordinate.lat.toFixed("3") + ', Lng:' + coordinate.lng.toFixed("3")
|
||||||
|
}}
|
||||||
|
|
||||||
|
<el-button class="el-icon-edit"
|
||||||
|
size="small"></el-button>
|
||||||
|
<el-button class="el-icon-close"
|
||||||
|
size="small"></el-button>
|
||||||
|
</div>
|
||||||
|
</el-scrollbar>
|
||||||
|
<el-button @click="addCoordinate">Add coordinates</el-button>
|
||||||
|
<el-button @click="clearCoordinate">Clear coordinates</el-button>
|
||||||
|
</el-card>
|
||||||
|
|
||||||
|
<el-card class="box-card"
|
||||||
|
style="margin-top: 3%;">
|
||||||
|
<span>Select satellite type</span>
|
||||||
|
<el-scrollbar wrap-class="sensor_list"
|
||||||
|
view-class="view-box"
|
||||||
|
:native="false">
|
||||||
|
<el-tree-select class="satelliteSelect"
|
||||||
|
v-model="satelliteSelected"
|
||||||
|
:data="sensor"
|
||||||
|
multiple
|
||||||
|
:render-after-expand="false"
|
||||||
|
show-checkbox
|
||||||
|
placeholder="Select satellite type" />
|
||||||
|
</el-scrollbar>
|
||||||
|
</el-card>
|
||||||
|
|
||||||
|
<el-button @click="startCrawl">Start Crawl</el-button>
|
||||||
|
<el-button>Cancel</el-button>
|
||||||
|
|
||||||
|
</el-tab-pane>
|
||||||
|
</el-tabs>
|
||||||
|
</div>
|
||||||
|
<Map id="map"></Map>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
<script setup>
|
||||||
|
import { ref, reactive } from 'vue';
|
||||||
|
import Map from "/@/components/Map.vue";
|
||||||
|
|
||||||
|
const activeName = ref('first')
|
||||||
|
|
||||||
|
const startTime = ref('')
|
||||||
|
const endTime = ref('')
|
||||||
|
const addCoord = ref(false)
|
||||||
|
const satelliteSelected = ref([])
|
||||||
|
|
||||||
|
const coordinateList = ref([])
|
||||||
|
const sensor = ref([
|
||||||
|
{
|
||||||
|
value: 'landsat',
|
||||||
|
label: 'landsat',
|
||||||
|
// children: [{
|
||||||
|
// value: 1 - 1,
|
||||||
|
// label: 'LANDSAT_8_C1'
|
||||||
|
// },
|
||||||
|
// {
|
||||||
|
// value: 1 - 2,
|
||||||
|
// label: 'LANDSAT_ETM_C1'
|
||||||
|
// },
|
||||||
|
// {
|
||||||
|
// value: 1 - 3,
|
||||||
|
// label: 'LANDSAT_TM_C1'
|
||||||
|
// }
|
||||||
|
// ]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
value: 'Sentinel',
|
||||||
|
label: 'Sentinel',
|
||||||
|
// children: [{
|
||||||
|
// value: 2 - 1,
|
||||||
|
// label: 'Sentinel - 2',
|
||||||
|
// children: [{
|
||||||
|
// value: 2 - 1 - 1,
|
||||||
|
// label: 'S2MSI2A'
|
||||||
|
// }]
|
||||||
|
// },
|
||||||
|
// {
|
||||||
|
// value: 2 - 2,
|
||||||
|
// label: 'Sentinel - 1',
|
||||||
|
// children: [{
|
||||||
|
// value: 2 - 2 - 1,
|
||||||
|
// label: 'SLC'
|
||||||
|
// }]
|
||||||
|
// }
|
||||||
|
// ]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
value: '国产系列卫星',
|
||||||
|
label: '国产系列卫星',
|
||||||
|
children: [
|
||||||
|
{
|
||||||
|
value: 'GF - 1',
|
||||||
|
label: 'GF - 1',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
value: 'GF - 2',
|
||||||
|
label: 'GF - 2',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
value: 'GF - 3',
|
||||||
|
label: 'GF - 3',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
value: 'GF - 4',
|
||||||
|
label: 'GF - 4',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
value: 'GF - 6',
|
||||||
|
label: 'GF - 6',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
value: 'ZY - 3',
|
||||||
|
label: 'ZY - 3',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
value: 'ZY - 302',
|
||||||
|
label: 'ZY - 302',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
value: 'ZY - 02C',
|
||||||
|
label: 'ZY - 02C',
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
value: '欧比特珠海一号系列卫星',
|
||||||
|
label: '欧比特珠海一号系列卫星',
|
||||||
|
children: [
|
||||||
|
{
|
||||||
|
value: 'OVS - 2A',
|
||||||
|
label: 'OVS - 2A',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
value: 'OVS - 3A',
|
||||||
|
label: 'OVS - 3A',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
value: 'OVS - 1A',
|
||||||
|
label: 'OVS - 1A',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
value: 'OVS - 1B',
|
||||||
|
label: 'OVS - 1B',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
value: 'OHS - 2A',
|
||||||
|
label: 'OHS - 2A',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
value: 'OHS - 2B',
|
||||||
|
label: 'OHS - 2B',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
value: 'OHS - 2C',
|
||||||
|
label: 'OHS - 2C',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
value: 'OHS - 2D',
|
||||||
|
label: 'OHS - 2D',
|
||||||
|
},
|
||||||
|
],
|
||||||
|
}
|
||||||
|
])
|
||||||
|
|
||||||
|
const shortcuts = [
|
||||||
|
{
|
||||||
|
text: '1 month ago',
|
||||||
|
value: () => {
|
||||||
|
const date = new Date()
|
||||||
|
date.setTime(date.getTime() - 3600 * 1000 * 24 * 30)
|
||||||
|
return date
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: '3 months ago',
|
||||||
|
value: () => {
|
||||||
|
const date = new Date()
|
||||||
|
date.setTime(date.getTime() - 3600 * 1000 * 24 * 90)
|
||||||
|
return date
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: '6 months ago',
|
||||||
|
value: () => {
|
||||||
|
const date = new Date()
|
||||||
|
date.setTime(date.getTime() - 3600 * 1000 * 24 * 180)
|
||||||
|
return date
|
||||||
|
},
|
||||||
|
},
|
||||||
|
]
|
||||||
|
|
||||||
|
// 添加坐标点
|
||||||
|
const addCoordinate = () => {
|
||||||
|
addCoord = !addCoord;
|
||||||
|
coordinateList = [
|
||||||
|
// '43.538', '111.530', '36.195', '120.761'
|
||||||
|
{
|
||||||
|
Lat: '43.538'
|
||||||
|
,
|
||||||
|
Lng: '111.530'
|
||||||
|
}, {
|
||||||
|
Lat: '36.195'
|
||||||
|
,
|
||||||
|
Lng: '120.761'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
// 清空坐标点
|
||||||
|
const clearCoordinate = () => {
|
||||||
|
coordinateList = [];
|
||||||
|
startTime = '';
|
||||||
|
endTime = '';
|
||||||
|
}
|
||||||
|
|
||||||
|
const startCrawl = () => {
|
||||||
|
console.log("start time:", startTime.value)
|
||||||
|
console.log("end time:", endTime.value)
|
||||||
|
console.log("addCoord:", addCoord.value)
|
||||||
|
console.log("satelliteSelected:", satelliteSelected.value)
|
||||||
|
}
|
||||||
|
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped lang="scss">
|
||||||
|
.container {
|
||||||
|
padding: 2% 1%;
|
||||||
|
.rsSelect {
|
||||||
|
float: left;
|
||||||
|
border: 1px solid blue;
|
||||||
|
width: 30%;
|
||||||
|
height: 53rem;
|
||||||
|
span {
|
||||||
|
display: block;
|
||||||
|
margin-bottom: 3%;
|
||||||
|
}
|
||||||
|
.satelliteSelect {
|
||||||
|
width: 75%;
|
||||||
|
margin: 10px 0 10px 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.el-tree {
|
||||||
|
margin: 10px 0 0 0;
|
||||||
|
color: black;
|
||||||
|
border-radius: 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.el-tree-node__label {
|
||||||
|
font-size: 12px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.block {
|
||||||
|
margin: 2% 0;
|
||||||
|
.demonstration {
|
||||||
|
float: left;
|
||||||
|
height: 20px;
|
||||||
|
line-height: 40px;
|
||||||
|
margin: 0 3%;
|
||||||
|
width: 20%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.coordinateContainer {
|
||||||
|
width: 200px;
|
||||||
|
height: 200px;
|
||||||
|
border: 1px solid red;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#map {
|
||||||
|
width: 70%;
|
||||||
|
height: 53rem;
|
||||||
|
float: left;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
Loading…
Reference in New Issue