瀏覽代碼

no message

DESKTOP-GBVU60Q\dell 1 年之前
父節點
當前提交
9c4fe8571c

+ 1 - 1
index.html

@@ -4,7 +4,7 @@
 		<meta charset="UTF-8" />
 		<meta charset="UTF-8" />
 		<link rel="icon" href="/favicon.ico" />
 		<link rel="icon" href="/favicon.ico" />
 		<meta name="viewport" content="width=device-width, initial-scale=1.0" />
 		<meta name="viewport" content="width=device-width, initial-scale=1.0" />
-		<title>智慧农业管理平台三维立体一张图系统</title>
+		<title>智慧农业三维平台</title>
 		<style>
 		<style>
 			#app {
 			#app {
 				height: 100vh;
 				height: 100vh;

+ 0 - 0
src/assets/images/layer/mesure.png → src/assets/images/layer/measure.png


+ 1 - 1
src/components/jt-popup/jt-popup.vue

@@ -242,7 +242,7 @@
 			width: 100%;
 			width: 100%;
 			// height: 490rem;
 			// height: 490rem;
 			height: calc(100vh - 200rem);
 			height: calc(100vh - 200rem);
-			padding: 10rem;
+			// padding: 10rem;
 			border: 1rem solid #008aff70 !important;
 			border: 1rem solid #008aff70 !important;
 			background-color: rgba(5, 45, 115, 0.5) !important;
 			background-color: rgba(5, 45, 115, 0.5) !important;
 			box-shadow: 0 4rem 15rem 1rem #02213bb3;
 			box-shadow: 0 4rem 15rem 1rem #02213bb3;

+ 1 - 1
src/views/Login/Login.vue

@@ -22,7 +22,7 @@
 		<div class="logoinTop"></div>
 		<div class="logoinTop"></div>
 		<!-- 页面底部 -->
 		<!-- 页面底部 -->
 		<div class="loginBottom">
 		<div class="loginBottom">
-			<p>技术支持:山东金田集团CIM事业部</p>
+			<p>技术支持:金田集团CIM事业部</p>
 			<!-- <p>地址:济南市历城区唐冶西路888号东八区企业公馆A21楼</p> -->
 			<!-- <p>地址:济南市历城区唐冶西路888号东八区企业公馆A21楼</p> -->
 			<!-- <p>建议使用<a href="downLoad/360csex_setup.exe">360极速浏览器</a>在1920*1080及以上分辨率下查看</p> -->
 			<!-- <p>建议使用<a href="downLoad/360csex_setup.exe">360极速浏览器</a>在1920*1080及以上分辨率下查看</p> -->
 			<p>copyright©2022 金田产业发展(山东)集团有限公司 All Right Reserved</p>
 			<p>copyright©2022 金田产业发展(山东)集团有限公司 All Right Reserved</p>

+ 40 - 17
src/views/Table/Table.vue

@@ -7,7 +7,12 @@
 	import zksb from "./components/zksb.vue"; 
 	import zksb from "./components/zksb.vue"; 
 	import dsnl from "./components/dsnl.vue"; 
 	import dsnl from "./components/dsnl.vue"; 
 	import specialeffects from './components/special-effects.vue';
 	import specialeffects from './components/special-effects.vue';
-
+	import measure from './components/measure.vue';
+	import {
+		inject
+	} from "vue";
+	const getMapInstance = inject("getMapInstance");
+	jt3d = getMapInstance();
 </script>
 </script>
 
 
 <template>
 <template>
@@ -19,7 +24,16 @@
 	
 	
 	</div>
 	</div>
 	
 	
-	<jt-popup width="300rem" height="450rem" title="特效效果" bottom="140rem" right="640rem" v-show="spcialshow"
+	<div class="layerButton3" style="left:1300rem;" @click="measureIsshow">
+	
+	</div>
+	
+	<jt-popup width="320rem" height="450rem" title="图上量算" bottom="140rem" right="400rem" v-show="measureShow"
+		class="layerStyle">
+		<measure></measure>
+	</jt-popup>
+	
+	<jt-popup width="300rem" height="450rem" title="特效效果" bottom="140rem" right="740rem" v-show="spcialshow"
 		class="layerStyle">
 		class="layerStyle">
 		<specialeffects></specialeffects>
 		<specialeffects></specialeffects>
 	</jt-popup>
 	</jt-popup>
@@ -36,19 +50,6 @@
 		<WaterLeveChart></WaterLeveChart>
 		<WaterLeveChart></WaterLeveChart>
 	</jt-popup2>
 	</jt-popup2>
 
 
-
-	<!-- <jt-popup3 title="用水量统计" ref="ysltj">
-
-	</jt-popup3>
-
-	<jt-popup3 title="能耗同比统计" top="calc(calc(100% - 115rem) / 3 + 90rem)" ref="nhtbtj">
-
-	</jt-popup3>
-
-	<jt-popup3 title="智能监控" top="calc(calc(100% - 115rem) / 3 + calc(100% - 115rem) / 3 + 90rem)" ref="znjk"> -->
-	
-
-	
 	<jt-popup3  title="输配电工程" ref="spdgc">
 	<jt-popup3  title="输配电工程" ref="spdgc">
 		<spdgc ref="_spdgc"></spdgc>
 		<spdgc ref="_spdgc"></spdgc>
 	</jt-popup3>
 	</jt-popup3>
@@ -67,6 +68,7 @@
 		Store
 		Store
 	} from '@/store/index'
 	} from '@/store/index'
 	let store = Store()
 	let store = Store()
+	let jt3d = undefined;
 	export default {
 	export default {
 		name: 'Test',
 		name: 'Test',
 
 
@@ -74,6 +76,7 @@
 		data() {
 		data() {
 			return {
 			return {
 				spcialshow:false,//特效效果是否显示
 				spcialshow:false,//特效效果是否显示
+				measureShow:false,//图上量算模块显示
 			}
 			}
 		},
 		},
 
 
@@ -83,10 +86,14 @@
 				this.spcialshow = !this.spcialshow
 				this.spcialshow = !this.spcialshow
 			},
 			},
 			
 			
+			measureIsshow(){
+				this.measureShow = !this.measureShow
+			},
+			
 			rotate() {
 			rotate() {
 				// let jt3d = store.Map
 				// let jt3d = store.Map
-				store.rotate = true
-				// jt3d.setMapSpinByPoint([117.47086573, 36.33604045]);
+				// store.rotate = true
+				jt3d.setMapSpinByPoint([117.47086573, 36.33604045]);
 			}
 			}
 		},
 		},
 		// ?tableName=map_region&sqlWhere=&orderByField=
 		// ?tableName=map_region&sqlWhere=&orderByField=
@@ -129,6 +136,22 @@
 		user-select: none;
 		user-select: none;
 	}
 	}
 	
 	
+	.layerButton3 {
+		background: url('@/assets/images/layer/measure.png') no-repeat;
+		background-size: 100% 100%;
+		font-family: "TTTGB-Medium", sans-serif !important;
+		position: fixed;
+		left: 400rem;
+		bottom: 80rem;
+		width: 150rem;
+		height: 40rem;
+		color: #000;
+		line-height: 40rem;
+		cursor: pointer;
+		z-index: 11;
+		user-select: none;
+	}
+	
 	.layerStyle {
 	.layerStyle {
 
 
 		overflow: hidden;
 		overflow: hidden;

+ 1 - 1
src/views/Table/components/dsnl.vue

@@ -46,7 +46,7 @@
 						<span style="font-size: 10rem;color: rgb(200, 250, 255);">(比上一年)</span>
 						<span style="font-size: 10rem;color: rgb(200, 250, 255);">(比上一年)</span>
 					</div>
 					</div>
 					<div class="shape6">
 					<div class="shape6">
-					<div style="color: rgb(200, 250, 255);margin-left: -73rem;font-size: 25rem;margin-bottom: 6rem;font-weight: 300;">土地价格</div>
+					<div style="color: rgb(200, 250, 255);margin-left: -73rem;font-size: 25rem;margin-bottom: 6rem;font-weight: 300;">流转价格</div>
 					<span style="font-weight: 400;font-size: 30rem;margin-left: -48rem;color: rgb(200, 250, 255);">826</span>
 					<span style="font-weight: 400;font-size: 30rem;margin-left: -48rem;color: rgb(200, 250, 255);">826</span>
 					<span style="font-size: 10rem;color: rgb(200, 250, 255);">元</span>
 					<span style="font-size: 10rem;color: rgb(200, 250, 255);">元</span>
 					<span style="font-size: 10rem;color: rgb(200, 250, 255);">(增长15%)</span>
 					<span style="font-size: 10rem;color: rgb(200, 250, 255);">(增长15%)</span>

+ 247 - 0
src/views/Table/components/measure.vue

@@ -0,0 +1,247 @@
+<script setup>
+	/**
+	 * element-plus组件
+	 */
+	import {
+		ElMessage
+	} from 'element-plus';
+
+	import {
+		inject
+	} from "vue";
+
+	const getMapInstance = inject("getMapInstance");
+	jt3d = getMapInstance();
+</script>
+
+<template>
+	<div class="jt-measure">
+		<el-row :gutter="20" style="margin-left: 0rem; margin-right: 0rem; ">
+			<el-col :span="8" v-for="(item,index) in measure" @click="handleMeasure(item.type,index)">
+				<el-avatar shape="circle" :size="70" :class="currentIndex===index?'selectStyle':'defaultStyle'">
+					<i :class="[item.icon,currentIndex===index?'selectFontStyle':'']" />
+				</el-avatar>
+				<div style="margin-top: 5rem; font-size: 14rem;" :class="currentIndex===index?'selectFontStyle':''">{{item.label}}</div>
+			</el-col>
+		</el-row>
+		<div class="jt-btn" style="margin: 8rem;">
+			<el-button color="rgb(255 100 100)" @click="clearMeasurementData"><span style="color: #fff;width: 270rem;">清空测量数据</span></el-button>
+		</div>
+	</div>
+</template>
+
+<script>
+	let jt3d = undefined;
+	let popup = undefined;
+
+	export default {
+		props: {
+
+		},
+		watch: {
+
+		},
+
+		/* 数据 */
+		data() {
+			return {
+				currentIndex: -1,
+				measure: [{
+						label: '长度测量(贴地)',
+						type: 'measureLength',
+						number: 0,
+						icon: 'iconfont icon-thin-_pencil_rul'
+					},
+					{
+						label: '面积测量(贴地)',
+						type: 'measureArea',
+						number: 1,
+						icon: 'iconfont icon-svgmianjiceliang'
+					},
+					{
+						label: '高度测量',
+						type: 'measureHeight',
+						number: 2,
+						icon: 'iconfont icon-svggaoduceliang'
+					},
+					{
+						label: '空间距离',
+						type: 'measureSpatialLength',
+						number: 3,
+						icon: 'iconfont icon-svgkongjianceliang'
+					},
+					{
+						label: '三角测量',
+						type: 'measureTriangle',
+						number: 4,
+						icon: 'iconfont icon-svgsanjiaoceliang'
+					},
+					{
+						label: '坐标测量',
+						type: 'pickUp',
+						number: 5,
+						icon: 'iconfont icon-svgzuobiaoceliang'
+					},
+				],
+			}
+		},
+
+		/* 方法 */
+		methods: {
+			/**
+			 * 测量事件
+			 * @param {Object} type 测量类型
+			 * @param {Object} index 第几个被选中
+			 */
+			handleMeasure(type, index) {
+				this.currentIndex = index;
+
+				//移除左键单击事件
+				if (jt3d.handlerLeftClick) {
+					jt3d.handlerLeftClick.removeInputAction(Cesium.ScreenSpaceEventType.LEFT_CLICK);
+				}
+
+				jt3d.CommonTools.clear();
+				this.$parent.$parent.measureShow = false
+				switch (type) {
+					case "measureLength": //长度测量(贴地)
+						jt3d.CommonTools.measureLength(function(error) {
+							ElMessage.error(error)
+						});
+						break;
+					case "measureArea": //面积测量(贴地)
+						jt3d.CommonTools.measureArea(function(error) {
+							ElMessage.error(error)
+						});
+						break;
+					case "measureHeight": //高度测量
+						jt3d.CommonTools.measureHeight()
+						break;
+					case "measureSpatialLength": //空间距离
+						jt3d.CommonTools.measureSpatialLength(function(error) {
+							ElMessage.error(error)
+						});
+						break;
+					case "measureTriangle": //三角测量
+						jt3d.CommonTools.measureTriangle()
+						break;
+					case "pickUp": //坐标测量
+						ElMessage("点击位置开始测量");
+						this.pickUp();
+						break;
+				}
+			},
+
+			/**
+			 * 坐标测量
+			 */
+			pickUp() {
+				let _self = this;
+
+				if (popup) {
+					popup.close();
+				}
+
+				jt3d.SketchViewModel.sketchTools('point', {
+					onComplete(cPoint, gPoint) {
+						if (gPoint.lng) {
+							let html = "";
+							html += "<div style='text-align: left;'>";
+							html += "<p>经度:" + gPoint.lng.toFixed(6) + "</p>";
+							html += "<p>纬度:" + gPoint.lat.toFixed(6) + "</p>";
+							html += "<p>高度:" + gPoint.height.toFixed(2) + "米</p>";
+							html += "</div>";
+
+							let position = {
+								x: Number(gPoint.lng),
+								y: Number(gPoint.lat),
+								z: Number(gPoint.height)
+							}
+
+							// popup = new  _self.jt3dSDK.PopupWindow.HtmlWindow(window["viewer"], position, "位置信息", html,40);
+							popup = new _self.jt3dSDK.PopupWindow.HtmlWindow(window["viewer"], cPoint, "位置信息", html, -30);
+						}
+					},
+					onError(message) {
+						// debugger
+					}
+				});
+			},
+
+			/**
+			 * 清空测量数据
+			 */
+			clearMeasurementData() {
+				this.currentIndex = -1;
+				jt3d.CommonTools.clear();
+				if (popup) {
+					popup.close();
+				}
+
+				//还原左键单击事件
+				this.$parent.$parent.$refs.refMap3d.clickEntity(jt3d);
+			},
+		},
+
+		mounted() {
+
+		}
+	};
+</script>
+
+<style lang="scss" scoped>
+	.el-avatar{
+		width: 70rem !important;
+		height: 70rem !important;
+		font-size: 14px !important;
+		cursor: pointer;
+	}
+	
+	.el-button{
+		height: 32rem;
+		font-size: 16rem;
+		padding: 8rem 15rem;
+	}
+	
+	.jt-btn{
+		width: calc(100% - 30rem);
+	}
+	
+	.jt-measure {
+		
+		.el-col {
+			padding: 10rem;
+			// color: rgba(90, 172, 255, 1.0);
+			color: #fff;
+		}
+
+		i {
+			display: inline-block;
+			width: 100%;
+			height: 36rem;
+			line-height: 36rem;
+			text-align: center;
+			border-radius: 5rem;
+			font-size: 40rem;
+			// color: rgba(90, 172, 255, 1.0);
+			color: #fff;
+			transition: all .3s;
+			-webkit-transition: all .3s
+		}
+
+		.selectStyle {
+			// background: rgba(135, 182, 254, 0.5);
+			background: rgb(0 44 126);
+			--el-avatar-size: 70rem !important;
+		}
+
+		.defaultStyle {
+			background: #ffffff00;
+			--el-avatar-size: 70rem !important;
+		}
+
+		.selectFontStyle {
+			color: #fff;
+		}
+	}
+</style>

+ 2 - 1
src/views/Table/components/special-effects.vue

@@ -343,7 +343,8 @@
 
 
 	.jt-weather-effects {
 	.jt-weather-effects {
 		position: relative;
 		position: relative;
-
+		width: calc(100% - 20rem);
+		margin-left: 10rem;
 		.iconfont {
 		.iconfont {
 			padding: 0 10rem;
 			padding: 0 10rem;
 		}
 		}