| | |
| | | <el-form-item label="传感器类型"> |
| | | <el-select |
| | | style="width: 100%" |
| | | v-model="form.region" |
| | | v-model="form.sensorType" |
| | | placeholder="" |
| | | > |
| | | <el-option |
| | | v-for="(e, i) in stretchOptions" |
| | | :label="e.label" |
| | | v-for="(e, i) in sensorOption" |
| | | :label="e.name" |
| | | :value="e.value" |
| | | :key="i" |
| | | /> |
| | |
| | | <el-form-item label="数据类型"> |
| | | <el-select |
| | | style="width: 100%" |
| | | v-model="form.region" |
| | | v-model="form.mataType" |
| | | placeholder="" |
| | | > |
| | | <el-option |
| | | v-for="(e, i) in stretchOptions" |
| | | :label="e.label" |
| | | v-for="(e, i) in metaOption" |
| | | :label="e.name" |
| | | :value="e.value" |
| | | :key="i" |
| | | /> |
| | |
| | | <el-form-item label="时间范围"> |
| | | <el-date-picker |
| | | style="width: 100%" |
| | | v-model="form.time" |
| | | v-model="form.acqTime" |
| | | type="datetimerange" |
| | | range-separator="至" |
| | | start-placeholder="开始日期" |
| | |
| | | > |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item> |
| | | <!-- <div class="btnstyle editBtn"> |
| | | <el-button type="primary" @click="onSubmit">确定</el-button> |
| | | <el-button class="delbtn">取消</el-button> |
| | | </div> --> |
| | | </el-form-item> |
| | | |
| | | </el-form> |
| | | <div class="KJCX"> |
| | | <div class="KJCX_title">空间查询</div> |
| | |
| | | <span>多边形</span> |
| | | <div class="btn_bg db"></div> |
| | | </div> |
| | | <div |
| | | class="KJCX_btn" |
| | | @click="setDrawMenu(5)" |
| | | > |
| | | <span>清除</span> |
| | | <div class="btn_bg db"></div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | |
| | | <el-button |
| | | type="primary" |
| | | class="btnbox" |
| | | @click="setQueryRetrieval" |
| | | >检索</el-button> |
| | | </div> |
| | | <div> |
| | | <el-button |
| | | type="primary" |
| | | class="btnbox delbtn" |
| | | @click="setQueryRestRetrieval" |
| | | >重置</el-button> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div v-show="listDialog"> |
| | | |
| | | </div> |
| | | <!-- <div class="pagination"> |
| | | <div |
| | | class="pagination" |
| | | v-show="listDialog" |
| | | > |
| | | <el-pagination |
| | | small |
| | | @size-change="handleSizeChange" |
| | | @current-change="handleCurrentChange" |
| | | :current-page="currentPage4" |
| | | :current-page="form.pageIndex" |
| | | :page-sizes="[100, 200, 300, 400]" |
| | | :page-size="100" |
| | | :page-size="form.pageSize" |
| | | layout="sizes, prev, pager, next, jumper" |
| | | :total="400" |
| | | :total="form.count" |
| | | > |
| | | </el-pagination> |
| | | </div> --> |
| | | <!-- <div class="list_box"> |
| | | </div> |
| | | <div |
| | | class="list_box" |
| | | v-show="listDialog" |
| | | > |
| | | <div |
| | | class="list" |
| | | v-for="(e, i) in list" |
| | |
| | | <i class="el-icon-more"></i> |
| | | </div> |
| | | </div> |
| | | </div> --> |
| | | <!-- <div class="bottom_box"> |
| | | <span class="msg_box">显示第{{ paginationData.pageNo }}到{{ |
| | | paginationData.pageSize |
| | | </div> |
| | | <div |
| | | class="bottom_box" |
| | | v-show="listDialog" |
| | | > |
| | | <span class="msg_box">显示第{{ (( (form.pageIndex - 1)*form.pageSize)+1 )}}到{{(form.pageIndex*form.pageSize) |
| | | |
| | | }}条,共{{ list.length }}条记录,已选择{{ |
| | | listChecked.length |
| | | }}条</span> |
| | |
| | | <el-button |
| | | type="primary" |
| | | class="btnbox" |
| | | @click="setListCheckAll" |
| | | >全选</el-button> |
| | | <el-button |
| | | type="primary" |
| | | class="btnbox delbtn" |
| | | @click="setListRemoveCheckAll" |
| | | >取消</el-button> |
| | | </div> |
| | | </div> --> |
| | | </div> |
| | | </div> |
| | | <div |
| | | class="details_box" |
| | | v-show="detailsBox" |
| | | v-drag="true" |
| | | > |
| | | <div class="details_t"> |
| | | <i |
| | |
| | | <div class="table_td">属性</div> |
| | | <div class="table_td">属性值</div> |
| | | </div> |
| | | <div |
| | | class="table_tr" |
| | | v-for="(e, i) in tableList" |
| | | :key="i" |
| | | > |
| | | <div class="table_td">{{ e.name }}</div> |
| | | <div class="table_td">{{ e.value }}</div> |
| | | <div style="height: 430px;overflow: auto;"> |
| | | <div |
| | | class="table_tr" |
| | | v-for="(e,key, i) in tableList" |
| | | :key="i" |
| | | > |
| | | <div class="table_td">{{ key}}</div> |
| | | <div class="table_td">{{ e }}</div> |
| | | </div> |
| | | </div> |
| | | |
| | | </div> |
| | | </div> |
| | | <el-dialog |
| | |
| | | <script> |
| | | import * as turf from "@turf/turf" |
| | | import moonMap from "../../components/MapView/moonMap.vue"; //地图 |
| | | import { meta_type, sensor_type } from "../datamanage/js/layerManage"; |
| | | import { select_meta_ByPageAndCount, encr } from '../../api/api' |
| | | export default { |
| | | components: { |
| | | moonMap, |
| | |
| | | pageSize: 10, |
| | | }, |
| | | tableList: [ |
| | | { |
| | | name: "dataid", |
| | | value: "LC81350352022001LGN00", |
| | | }, |
| | | { |
| | | name: "satellite", |
| | | value: "LANDSAT8", |
| | | }, |
| | | { |
| | | name: "datatype", |
| | | value: "OLLTIRS", |
| | | }, |
| | | { |
| | | name: "ines samples", |
| | | value: "7931.0", |
| | | }, |
| | | { |
| | | name: "sensor", |
| | | value: "7811.0", |
| | | }, |
| | | |
| | | ], |
| | | listChecked: [], |
| | | list: [ |
| | | { |
| | | name: "名称", |
| | | CQWZ: "位置", |
| | | time: "时间", |
| | | data: "大小", |
| | | checked: false, |
| | | }, |
| | | { |
| | | name: "名称", |
| | | CQWZ: "位置", |
| | | time: "时间", |
| | | data: "大小", |
| | | checked: false, |
| | | }, |
| | | { |
| | | name: "名称", |
| | | CQWZ: "位置", |
| | | time: "时间", |
| | | data: "大小", |
| | | checked: false, |
| | | }, |
| | | { |
| | | name: "名称", |
| | | CQWZ: "位置", |
| | | time: "时间", |
| | | data: "大小", |
| | | checked: false, |
| | | }, |
| | | |
| | | ], |
| | | currentPage4: 4, |
| | | form: { |
| | | name: "", |
| | | region: "", |
| | | selectName: "", |
| | | layerUrl: "", |
| | | children: [], |
| | | value1: "", |
| | | sensorType: 0, |
| | | mataType: 0, |
| | | acqTime: null, |
| | | wkt: null, |
| | | pageIndex: 1, |
| | | pageSize: 100, |
| | | count: 0, |
| | | }, |
| | | stretchOptions: [ |
| | | { |
| | | value: "目录", |
| | | label: "目录", |
| | | }, |
| | | ], |
| | | sensorOption: [], |
| | | metaOption: [], |
| | | detailsBox: false, |
| | | listDialog: false, |
| | | leftDialog: true, |
| | | drawType: null, |
| | | dialogVisible: false, |
| | | bufferNumber: 100, |
| | | geoWkt: null, |
| | | wktEntity: null |
| | | }; |
| | | }, |
| | | methods: { |
| | | details(val) { |
| | | this.detailsBox = true; |
| | | setListCheckAll() { |
| | | for (var i in this.list) { |
| | | var checked = this.list[i].checked |
| | | if (!checked) { |
| | | this.list[i].checked = true; |
| | | this.listChecked.push(this.list[i]); |
| | | } |
| | | } |
| | | }, |
| | | setListRemoveCheckAll() { |
| | | for (var i in this.list) { |
| | | this.list[i].checked = false; |
| | | } |
| | | this.listChecked = []; |
| | | }, |
| | | details(e) { |
| | | this.detailsBox = true; |
| | | this.tableList = e; |
| | | }, |
| | | setQueryRestRetrieval() { |
| | | this.listDialog = false; |
| | | this.setFromStart(); |
| | | this.setDrawMenu(5); |
| | | this.listChecked = []; |
| | | }, |
| | | async setQueryRetrieval() { |
| | | if (this.geoWkt) { |
| | | this.form.wkt = encr(this.geoWkt) |
| | | } else { |
| | | this.form.wkt = null; |
| | | } |
| | | const data = await select_meta_ByPageAndCount(this.form); |
| | | if (data.code != 200) return; |
| | | this.form.count = data.count; |
| | | this.list = data.result; |
| | | this.listDialog = true; |
| | | }, |
| | | |
| | | handleSizeChange(val) { |
| | | console.log(`每页 ${val} 条`); |
| | | this.form.pageIndex = 1; |
| | | this.form.pageSize = val; |
| | | this.setQueryRetrieval(); |
| | | |
| | | }, |
| | | handleCurrentChange(val) { |
| | | this.form.pageIndex = val; |
| | | this.setQueryRetrieval(); |
| | | |
| | | console.log(`当前页: ${val}`); |
| | | }, |
| | | checkedList(val) { |
| | |
| | | if (this.listChecked.length > 0) { |
| | | if (!val.checked) { |
| | | this.listChecked.forEach((e, i) => { |
| | | if (e.name == val.name) { |
| | | if (e.id == val.id) { |
| | | this.listChecked.splice(i, 1); |
| | | } |
| | | }); |
| | |
| | | this.drawType = 'polygon'; |
| | | this.setDrawEntity(); |
| | | break |
| | | case 5: |
| | | this.setClearWktGeom(); |
| | | break |
| | | } |
| | | }, |
| | | handleClose() { |
| | |
| | | var config = {} |
| | | if (this.drawType != 'point') { |
| | | config = { showSize: false } |
| | | } |
| | | if (this.wktEntity) { |
| | | this.setClearWktGeom(); |
| | | } |
| | | var that = this; |
| | | sgworld.Creator.createSimpleGraphic(this.drawType, config, (entity) => { |
| | |
| | | res_val = res.polygon.hierarchy.getValue().positions; |
| | | break; |
| | | } |
| | | var val = this.getEntityGeometry(res_val, this.drawType) |
| | | debugger |
| | | this.geoWkt = this.getEntityGeometry(res_val, this.drawType) |
| | | if (this.geoWkt) { |
| | | |
| | | this.setAddWktEntity(this.geoWkt) |
| | | } |
| | | |
| | | }, |
| | | setAddWktEntity(res) { |
| | | var wkt = this.$wkt.parse(res).coordinates[0]; |
| | | var geom = []; |
| | | for (var i in wkt) { |
| | | |
| | | geom.push(Cesium.Cartesian3.fromDegrees(wkt[i][0], wkt[i][1], wkt[i][2] ?? 0)) |
| | | } |
| | | this.wktEntity = Viewer.entities.add({ |
| | | name: '资源查询', |
| | | polygon: { |
| | | hierarchy: geom, |
| | | material: Cesium.Color.BLUE.withAlpha(0), |
| | | heightReference: Cesium.HeightReference.CLAMP_TO_GROUND, |
| | | outline: true, |
| | | outlineColor: Cesium.Color.GREEN, |
| | | outlineWidth: 5, |
| | | classificationType: Cesium.ClassificationType.BOTH,//贴地形和3dtile |
| | | clampToGround: true,//开启贴地 |
| | | height: 0, |
| | | }, |
| | | |
| | | }); |
| | | }, |
| | | setClearWktGeom() { |
| | | if (this.wktEntity) { |
| | | Viewer.entities.remove(this.wktEntity) |
| | | this.wktEntity = null; |
| | | this.geoWkt = null; |
| | | } |
| | | |
| | | }, |
| | | getEntityGeometry(res, type) { |
| | | var res_val; |
| | |
| | | std.lng = Cesium.Math.toDegrees(cartographic.longitude) |
| | | std.alt = cartographic.height |
| | | return std |
| | | }, |
| | | getSensorMeta() { |
| | | this.metaOption = meta_type; |
| | | this.sensorOption = sensor_type; |
| | | }, |
| | | setFromStart() { |
| | | this.form = { |
| | | name: "", |
| | | sensorType: 0, |
| | | mataType: 0, |
| | | acqTime: null, |
| | | wkt: null, |
| | | pageIndex: 1, |
| | | pageSize: 100, |
| | | count: 0, |
| | | } |
| | | } |
| | | }, |
| | | created() { }, |
| | | mounted() { |
| | | this.getSensorMeta(); |
| | | this.setFromStart(); |
| | | } |
| | | }; |
| | | </script> |
| | | |
| | |
| | | background-size: 100% 100%; |
| | | } |
| | | .left_box { |
| | | width: 427px; |
| | | min-width: 427px; |
| | | height: auto; |
| | | left: 10px; |
| | | top: 10px; |
| | |
| | | } |
| | | .list_box { |
| | | overflow: auto; |
| | | // height: 350px; |
| | | height: 42%; |
| | | height: 350px; |
| | | //height: 42%; |
| | | |
| | | .list { |
| | | padding: 10px; |
| | | background: #0d131d; |
| | |
| | | .details_box { |
| | | width: 533px; |
| | | // height: 430px; |
| | | overflow: auto; |
| | | background: rgba(7, 8, 14, 0.8); |
| | | padding: 10px; |
| | | position: absolute; |