| | |
| | | </div>--> |
| | | <div class="inquireContent_input_right" v-show="!chartIsshow"> |
| | | <div class="label">范围框内最大像素值</div> |
| | | <el-select |
| | | v-model="ScopeBox.pixel" |
| | | class="m-2" |
| | | placeholder="像素值" |
| | | size="small" |
| | | @change="pixelChange" |
| | | > |
| | | <el-option |
| | | v-for="item in pixeloptions" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value" |
| | | /> |
| | | <el-select v-model="ScopeBox.pixel" class="m-2" placeholder="像素值" size="small" @change="pixelChange"> |
| | | <el-option v-for="item in pixeloptions" :key="item.value" :label="item.label" :value="item.value" /> |
| | | </el-select> |
| | | </div> |
| | | <div class="inquireContent_input_right" v-show="chartIsshow"> |
| | | <div class="label">节点数</div> |
| | | <el-select |
| | | v-model="ScopeBox.nodes" |
| | | class="m-2" |
| | | placeholder="像素值" |
| | | size="small" |
| | | @change="nodesChange" |
| | | > |
| | | <el-option |
| | | v-for="item in nodesoptions" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value" |
| | | /> |
| | | <el-select v-model="ScopeBox.nodes" class="m-2" placeholder="像素值" size="small" @change="nodesChange"> |
| | | <el-option v-for="item in nodesoptions" :key="item.value" :label="item.label" :value="item.value" /> |
| | | </el-select> |
| | | </div> |
| | | </div> |
| | |
| | | <div class="chart_btn"> |
| | | <el-button :icon="Search" link class="linkBtn" @click="openDialog(e)"></el-button> |
| | | |
| | | <el-button |
| | | :icon="Download" |
| | | link |
| | | class="linkBtn" |
| | | @click="downloadChart(layerData)" |
| | | ></el-button> |
| | | <el-button :icon="Download" link class="linkBtn" @click="downloadChart(layerData)"></el-button> |
| | | <!-- 暂时不用删除 --> |
| | | <!-- <el-button |
| | | :icon="Delete" |
| | |
| | | </div> |
| | | <Bar-graph :width="'100%'" :height="'260px'" :layerData="layerData"></Bar-graph> |
| | | <div class="select"> |
| | | <el-select |
| | | v-model="layerValue" |
| | | class="m-2" |
| | | placeholder="选择图层" |
| | | size="small" |
| | | @change="layerChange" |
| | | > |
| | | <el-option |
| | | v-for="(item, i) in layeroptions" |
| | | :key="i" |
| | | :label="item.layerName" |
| | | :value="item.layerName" |
| | | /> |
| | | <el-select v-model="layerValue" class="m-2" placeholder="选择图层" size="small" @change="layerChange"> |
| | | <el-option v-for="(item, i) in layeroptions" :key="i" :label="item.layerName" |
| | | :value="item.layerName" /> |
| | | </el-select> |
| | | </div> |
| | | </div> |
| | |
| | | <div class="table_head_td">序号</div> |
| | | <div class="table_head_td"> |
| | | <span>图层名</span> |
| | | <span>最大值</span> |
| | | <span>最小值</span> |
| | | <span>分析结果</span> |
| | | </div> |
| | | </div> |
| | |
| | | <div class="table_tr" v-for="(e, i) in resultList" :key="i"> |
| | | <div class="table_td">{{ i + 1 }}</div> |
| | | <div class="table_td"> |
| | | <span>{{ e.layerName }}</span> |
| | | |
| | | <span>{{ e.layerName }} <label v-show="e.unit"> [{{ e.unit }}]</label></span> |
| | | <span>{{ e.max }}</span> |
| | | <span>{{ e.min }}</span> |
| | | <span>{{ e.avg }}</span> |
| | | </div> |
| | | </div> |
| | |
| | | let layerNameNum = 0; |
| | | let geoWkt = ref(null); |
| | | let geoWktFlag = ref(false); |
| | | let ws = ref(null); |
| | | let wktType = ref(null); |
| | | //新增图表 |
| | | const addCharts = () => { |
| | | layerArr.value.push({ layerName: `null${layerNameNum}`, points: [] }); |
| | |
| | | // if (store.state.plottingInquireData.entitiesData.icon == "d.png") { |
| | | |
| | | // } |
| | | selectPoint({ |
| | | pixel: val, |
| | | wkt: store.state.plottingInquireData.entitiesData.wkt, |
| | | }); |
| | | // selectPoint({ |
| | | // pixel: val, |
| | | // wkt: store.state.plottingInquireData.entitiesData.wkt, |
| | | // }); |
| | | setOptionStart(); |
| | | setWebScoKet("Point", store.state.plottingInquireData.entitiesData.wkt, val); |
| | | }; |
| | | //节点选择 |
| | | const nodesChange = (val) => { |
| | | selectPolyline({ |
| | | nodes: val, |
| | | wkt: store.state.plottingInquireData.entitiesData.wkt, |
| | | }); |
| | | setOptionStart(); |
| | | setWebScoKet( |
| | | "PolyLine", |
| | | store.state.plottingInquireData.entitiesData.wkt, |
| | | val |
| | | ); |
| | | // selectPolyline({ |
| | | // nodes: val, |
| | | // wkt: store.state.plottingInquireData.entitiesData.wkt, |
| | | // }); |
| | | }; |
| | | |
| | | //图层选择 |
| | |
| | | e.min = e.minList.toString(); |
| | | e.lng = store.state.plottingInquireData.entitiesData.lng; |
| | | e.lat = store.state.plottingInquireData.entitiesData.lat; |
| | | |
| | | resultList.value.push(e); |
| | | }); |
| | | |
| | | console.log(resultList.value); |
| | | }; |
| | | //面查询接口 |
| | | const selectPolygon = async (res) => { |
| | |
| | | }); |
| | | }); |
| | | }); |
| | | |
| | | console.log(dt.result); |
| | | layeroptions.value = dt.result; |
| | | |
| | | layerValue.value = layeroptions.value[0].layerName; |
| | | layerArr.value.push(dt.result[0]); |
| | | chartIsshow.value = true; |
| | | |
| | | layerData.value = dt.result[0]; |
| | | |
| | | // dt.result.forEach((e) => { |
| | |
| | | }; |
| | | // store.commit("SET_plotting", obj); |
| | | store.state.plottingInquireData = obj; |
| | | |
| | | setCloseWebSocket(); |
| | | inquireData.value = { |
| | | name: "path #9", |
| | | icon: "q.png", |
| | | }; |
| | | isShow.value = false; |
| | | break; |
| | | } |
| | | } |
| | | }; |
| | | const handleClick = (tab: TabsPaneContext, event: Event) => {}; |
| | | const handleClick = (tab: TabsPaneContext, event: Event) => { }; |
| | | // const setCloseplotting = () => { |
| | | // emits("setCloseplotting", false); |
| | | // }; |
| | | let chartIsshow = ref(false); |
| | | const setMenuClose = ()=>{ |
| | | const setMenuClose = () => { |
| | | isShow.value = false; |
| | | setCloseWebSocket(); |
| | | isShow.value=false; |
| | | } |
| | | const setCloseWebSocket = () => { |
| | | if( Window.ws){ |
| | | Window.ws.close(); |
| | | Window.ws.onclose = () => { |
| | | console.log("服务器关闭"); |
| | | store.state.plottingInquireData = null; |
| | | inquireData.value = { |
| | | name: "path #9", |
| | | icon: "q.png", |
| | | }; |
| | | Window.ws = null; |
| | | }; |
| | | const setCloseWebSocket = () => { |
| | | if (Window.ws) { |
| | | Window.ws.close(); |
| | | Window.ws.onclose = () => { |
| | | console.log("服务器关闭"); |
| | | }; |
| | | Window.ws = null; |
| | | } |
| | | |
| | | }; |
| | | const setWebScoKet = async (type, wkt, node) => { |
| | | const data = await rasterAnalysis_selectByWktForPost({ |
| | | wkt: wkt, |
| | | size: node, |
| | | }); |
| | | console.log(data) |
| | | |
| | | if (data) { |
| | | return; |
| | | } else { |
| | | |
| | | Window.ws.option = () => {}; |
| | | Window.ws.onmessage = (msg) => { |
| | | // console.log('来自服务器端的数据:' + msg.data); //监听接受来自服务端的信息 |
| | | if (msg.data != "连接成功") { |
| | | var val = JSON.parse(msg.data); |
| | | console.log(val); |
| | | |
| | | if (val.analysisForPost) { |
| | | console.log(val); |
| | | } |
| | | } else { |
| | | console.log(msg.data); |
| | | } |
| | | }; |
| | | } |
| | | }; |
| | | const setOptionStart = () => { |
| | | |
| | | resultList.value = []; |
| | | layerArr.value = []; |
| | | layeroptions.value = []; |
| | | layerValue.value = ''; |
| | | }; |
| | | const setWebSocketStart = () => { |
| | | // if (Window.ws) { |
| | | // setCloseWebSocket(); |
| | | // } |
| | | setOptionStart(); |
| | | var token = getToken(); |
| | | var url = socketUrl + "?token=" + token; |
| | | Window.ws = new WebSocket(url); |
| | | Window.ws.option = () => { }; |
| | | Window.ws.onmessage = (msg) => { |
| | | // console.log('来自服务器端的数据:' + msg.data); //监听接受来自服务端的信息 |
| | | if (msg.data != "连接成功") { |
| | | var val = JSON.parse(msg.data); |
| | | |
| | | if (val.analysisForPost && val.analysisForPost.token == token) { |
| | | var data = val.analysisForPost; |
| | | console.log(data) |
| | | switch (wktType.value) { |
| | | case "Point": |
| | | setWebSocketPoint(data); |
| | | break; |
| | | case "Polygon": |
| | | setWebSocketPoint(data); |
| | | break; |
| | | case "LineString": |
| | | setWebSocketPLine(data); |
| | | break; |
| | | } |
| | | } |
| | | } |
| | | }; |
| | | }; |
| | | const setWebSocketPoint = (res) => { |
| | | var obj = { |
| | | avg: res.avgList.length <= 0 ? "--" : res.avgList.toString(), |
| | | layerName: res.layerName, |
| | | max: res.maxList.length <= 0 ? "--" : res.maxList.toString(), |
| | | min: res.minList.length <= 0 ? "--" : res.minList.toString(), |
| | | lng: store.state.plottingInquireData.entitiesData.lng, |
| | | lat: store.state.plottingInquireData.entitiesData.lat, |
| | | unit: res.unit |
| | | }; |
| | | resultList.value.push(obj); |
| | | }; |
| | | const setWebSocketPLine = (res) => { |
| | | res.points.forEach((element) => { |
| | | element.vals.forEach((v) => { |
| | | v = keepThreeNum(v); |
| | | }); |
| | | }); |
| | | layeroptions.value.push(res); |
| | | var data = layeroptions.value[0]; |
| | | layerValue.value = data.layerName; |
| | | layerArr.value.push(data); |
| | | layerData.value = data; |
| | | }; |
| | | watch( |
| | | () => store.state.plottingInquireData, |
| | | (nVal, oVal) => { |
| | | if (Window.ws) { |
| | | setCloseWebSocket(); |
| | | } |
| | | var url = socketUrl+"?token=" + getToken(); |
| | | Window.ws = new WebSocket(url); |
| | | isShow.value = nVal.isshow; |
| | | inquireData.value = nVal.entitiesData; |
| | | geoWktFlag.value = false; |
| | | if (inquireData.value.wkt) { |
| | | var wkt = WKT.parse(inquireData.value.wkt); |
| | | setOptionStart(); |
| | | setCloseWebSocket(); |
| | | if (!nVal) return; |
| | | if (nVal.entitiesData.name != inquireData.value.name) { |
| | | isShow.value = nVal.isshow; |
| | | inquireData.value = nVal.entitiesData; |
| | | geoWktFlag.value = false; |
| | | if (inquireData.value.wkt) { |
| | | var wkt = WKT.parse(inquireData.value.wkt); |
| | | wktType.value = wkt.type; |
| | | if (wkt.type == "Point") { |
| | | geoWkt.value = |
| | | wkt.coordinates[0].toFixed(6) + " " + wkt.coordinates[1].toFixed(6); |
| | | geoWktFlag.value = true; |
| | | } |
| | | if (wkt.type == "Polygon") { |
| | | var Polygon = turf.multiPolygon([wkt.coordinates]); |
| | | var center = turf.center(Polygon); |
| | | geoWkt.value = |
| | | center.geometry.coordinates[0].toFixed(6) + |
| | | " " + |
| | | center.geometry.coordinates[1].toFixed(6); |
| | | geoWktFlag.value = true; |
| | | } |
| | | } |
| | | setWebSocketStart(); |
| | | |
| | | if (wkt.type == "Point") { |
| | | geoWkt.value = |
| | | wkt.coordinates[0].toFixed(6) + " " + wkt.coordinates[1].toFixed(6); |
| | | geoWktFlag.value = true; |
| | | if (nVal.entitiesData.icon == "x.png") { |
| | | pixelIsShow.value = true; |
| | | chartIsshow.value = true; |
| | | setWebScoKet("pline", nVal.entitiesData.wkt, ScopeBox.value.nodes); |
| | | // selectPolyline({ |
| | | // nodes: ScopeBox.value.nodes, |
| | | // wkt: nVal.entitiesData.wkt, |
| | | // }); |
| | | } |
| | | if (wkt.type == "Polygon") { |
| | | var Polygon = turf.multiPolygon([wkt.coordinates]); |
| | | var center = turf.center(Polygon); |
| | | geoWkt.value = |
| | | center.geometry.coordinates[0].toFixed(6) + |
| | | " " + |
| | | center.geometry.coordinates[1].toFixed(6); |
| | | geoWktFlag.value = true; |
| | | if (nVal.entitiesData.icon == "m.png") { |
| | | chartIsshow.value = false; |
| | | // if (nVal.entitiesData.name == oVal.entitiesData.name) { |
| | | // return; |
| | | // } |
| | | pixelIsShow.value = false; |
| | | // selectPolygon({ wkt: nVal.entitiesData.wkt }); |
| | | setWebScoKet("polygon", nVal.entitiesData.wkt, 0); |
| | | } |
| | | } |
| | | |
| | | if (nVal.entitiesData.icon == "x.png") { |
| | | pixelIsShow.value = true; |
| | | setWebScoKet("pline", nVal.entitiesData.wkt, ScopeBox.value.nodes); |
| | | // selectPolyline({ |
| | | // nodes: ScopeBox.value.nodes, |
| | | // wkt: nVal.entitiesData.wkt, |
| | | // }); |
| | | } |
| | | if (nVal.entitiesData.icon == "m.png") { |
| | | chartIsshow.value = false; |
| | | if (nVal.entitiesData.name == oVal.entitiesData.name) { |
| | | return; |
| | | if (nVal && nVal.entitiesData.icon == "d.png") { |
| | | chartIsshow.value = false; |
| | | pixelIsShow.value = true; |
| | | // selectPoint({ |
| | | // pixel: ScopeBox.value.pixel, |
| | | // wkt: nVal.entitiesData.wkt, |
| | | // }); |
| | | setWebScoKet("polygon", nVal.entitiesData.wkt, ScopeBox.value.pixel); |
| | | } |
| | | pixelIsShow.value = false; |
| | | // selectPolygon({ wkt: nVal.entitiesData.wkt }); |
| | | setWebScoKet("polygon", nVal.entitiesData.wkt, 0); |
| | | } |
| | | if (nVal && nVal.entitiesData.icon == "d.png") { |
| | | chartIsshow.value = false; |
| | | pixelIsShow.value = true; |
| | | // selectPoint({ |
| | | // pixel: ScopeBox.value.pixel, |
| | | // wkt: nVal.entitiesData.wkt, |
| | | // }); |
| | | setWebScoKet("polygon", nVal.entitiesData.wkt, ScopeBox.value.pixel); |
| | | } |
| | | }, |
| | | { deep: true } |
| | |
| | | position: absolute; |
| | | right: 26px; |
| | | top: 80px; |
| | | width: 320px; |
| | | width: 400px; |
| | | background: rgba(7, 8, 14, 0.8); |
| | | z-index: 100; |
| | | |
| | |
| | | } |
| | | |
| | | .table_head_td:nth-child(2) { |
| | | width: 237px; |
| | | width: 16.34375vw; |
| | | display: flex; |
| | | justify-content: space-between; |
| | | align-items: center; |
| | |
| | | border-right: 1px solid rgba(214, 228, 255, 0.4); |
| | | box-sizing: border-box; |
| | | |
| | | div { |
| | | width: 100%; |
| | | background: skyblue; |
| | | height: 100%; |
| | | } |
| | | |
| | | // padding: 5px; |
| | | // white-space: nowrap; |
| | | span { |
| | | |
| | | display: block; |
| | | width: 50%; |
| | | width: 17%; |
| | | word-wrap: break-word; |
| | | // white-space: pre; |
| | | text-align: left; |
| | |
| | | // justify-content: flex-end; |
| | | // margin-left: 5%; |
| | | // float: right; |
| | | width: 40%; |
| | | text-align: right; |
| | | // width:16.34375vw; |
| | | text-align: center; |
| | | // background: skyblue; |
| | | } |
| | | } |
| | | |
| | | .table_td:nth-child(2) { |
| | | width: 237px; |
| | | width: 16.34375vw; |
| | | display: flex; |
| | | justify-content: space-between; |
| | | align-items: center; |
| | | // padding: 0 10px; |
| | | padding-left: 10px; |
| | | padding-right: 10px; |
| | | padding-top: 5px; |
| | | padding-bottom: 5px; |
| | | padding: 0 10px; |
| | | border-right: 0; |
| | | } |
| | | } |