DESKTOP-CRQ4N2U\jintian 1 年之前
父節點
當前提交
8b700e83c6

+ 6 - 27
public/jt3dSDK/jt3d.es.js

@@ -2705,13 +2705,6 @@ Object.assign(LoadMapData.prototype, {
     };
     if (options2.parameters) {
       _ConstructorOptions.parameters = options2.parameters;
-    } else {
-      _ConstructorOptions.parameters = {
-        service: "WMS",
-        transparent: true,
-        request: "GetMap",
-        format: "image/png"
-      };
     }
     if (options2.minimumLevel) {
       _ConstructorOptions.minimumLevel = options2.minimumLevel;
@@ -3879,9 +3872,6 @@ Object.assign(LocateUtil.prototype, {
       let pointsArray = points2.map((point2) => {
         return Cesium.Cartesian3.fromDegrees(point2[0], point2[1], point2[2] || 0);
       });
-      if (_self._locationEntity) {
-        _self._viewer.entities.remove(_self._locationEntity);
-      }
       switch (type2) {
         case "point":
           _self._locationEntity = _self._viewer.entities.add({
@@ -3937,9 +3927,7 @@ Object.assign(LocateUtil.prototype, {
         }
       });
       flyPromise.then(function(flag) {
-        if (flag) {
-          resolve2(_self._locationEntity);
-        }
+        resolve2(flag);
       });
     });
   },
@@ -3947,15 +3935,11 @@ Object.assign(LocateUtil.prototype, {
     return new Promise((resolve2, reject2) => {
       let _self = this;
       options2 = options2 || {};
-      if (_self._locationEntity) {
-        _self._viewer.entities.remove(_self._locationEntity);
-      }
-      _self._locationEntity = entity;
       options2.duration = Cesium.defaultValue(options2.duration, 3);
       options2.heading = Cesium.defaultValue(options2.heading, 0);
       options2.pitch = Cesium.defaultValue(options2.pitch, -90);
       options2.range = Cesium.defaultValue(options2.range, 0);
-      let flyPromise = _self._viewer.flyTo(_self._locationEntity, {
+      let flyPromise = _self._viewer.flyTo(entity, {
         duration: options2.duration,
         offset: {
           heading: Cesium.Math.toRadians(options2.heading),
@@ -3964,9 +3948,7 @@ Object.assign(LocateUtil.prototype, {
         }
       });
       flyPromise.then(function(flag) {
-        if (flag) {
-          resolve2(_self._locationEntity);
-        }
+        resolve2(flag);
       });
     });
   },
@@ -4015,9 +3997,7 @@ Object.assign(LocateUtil.prototype, {
         }
       });
       flyPromise.then(function(flag) {
-        if (flag) {
-          resolve2(true);
-        }
+        resolve2(flag);
       });
     });
   }
@@ -11140,7 +11120,7 @@ class CircleObject {
 Object.assign(CircleObject.prototype, {
   drawCircle: function(centerPoint, radius, options2) {
     return new Promise((resolve2, reject2) => {
-      let viewer2 = this._viewer;
+      this._viewer;
       if (!Cesium.defined(centerPoint)) {
         throw new Cesium.DeveloperError("centerPoint is required.");
       }
@@ -11205,8 +11185,7 @@ Object.assign(CircleObject.prototype, {
           outlineWidth: options2.outlineWidth
         }
       });
-      let flyEntity = viewer2.entities.add(entity);
-      resolve2(entity, flyEntity);
+      resolve2(entity);
     });
   }
 });

文件差異過大導致無法顯示
+ 11229 - 0
public/jt3dSDK/jt3d.es2.js


文件差異過大導致無法顯示
+ 11228 - 0
public/jt3dSDK/jt3d.es3.js


二進制
src/assets/images/no_img.png


+ 6 - 9
src/views/Map3d/components/basicLayer.vue

@@ -15,6 +15,8 @@
 	store = Store()
 	let getMapInstance = inject("getMapInstance");
 	jt3d = getMapInstance();
+	
+	import no_img from '@/assets/images/no_img.png';
 </script>
 
 <template>
@@ -243,18 +245,13 @@
 						if (item.datasource && item.datasource != '#' && item.layertype != '地形' && item.layertype != '标注') {
 							if (parameterset) {
 								if (parameterset.imgurl) {
-									_self.layerList.push({
-										title: item.layername,
-										url: item.datasource,
-										imageurl: parameterset.imgurl,
-										layerorder: item.layerorder
-									})
+									item.imageurl = parameterset.imgurl;
 								} else {
+									item.imageurl =no_img;
 									ElMessage("请检查底图图层表parameterset字段是否设置imgurl");
 								}
-							} else {
-								ElMessage("请检查底图图层表parameterset字段是否设置");
-							}
+								_self.layerList.push(item);
+							} 
 						}
 					});
 

+ 10 - 13
src/views/Map3d/components/query-graphics.vue

@@ -124,7 +124,7 @@
 							_self.initQuery({
 								spatialType: '点',
 								coordinate: Number(points[0]) + " " + Number(points[1]),
-								buffer: ''
+								buffer: 1
 							});
 
 						});
@@ -147,7 +147,7 @@
 							_self.initQuery({
 								spatialType: '线',
 								coordinate: pointsArray.join(','),
-								buffer: ''
+								buffer: 1
 							});
 						});
 						break;
@@ -230,10 +230,6 @@
 							jt3d._dataSources.remove(res)
 						})
 
-						//清除定位样式
-						if (jt3d.LocateUtil._locationEntity) {
-							window["viewer"].entities.remove(jt3d.LocateUtil._locationEntity);
-						}
 						break;
 				}
 			},
@@ -257,9 +253,9 @@
 				}
 
 				const getData = () => {
-					console.log(123666)
+
 					if (store.queryMapTables.length > 0) {
-						console.log(123677)
+
 						//查询等待框
 						loading = ElLoading.service({
 							lock: true,
@@ -272,7 +268,8 @@
 							let result = getAxios(itemTable, options);
 							data.push(result);
 						})
-						console.log('点查询列表',data)
+
+						console.log('点查询列表', data)
 						Promise.all(data).then(itemList => {
 
 							console.log("itemList", itemList) //itemList返回的数据是按顺序的
@@ -324,12 +321,12 @@
 										};
 
 										switch (tableName) {
-											//==============规划管理数据-重要控制线=========================
+											//==============采油系统=========================
 											case "yy_yj": //油井
-												childNode.label = itemData.properties["dwmc"] + "(" + itemData.properties["jh"] + ")"
+												childNode.label = itemData.properties["jh"];
 												break;
-											case "yjtz": //永久基本农田调整
-												childNode.label = itemData.properties["zldwmc"] + "(" + itemData.properties["dlmc"] + ")"
+											case "yy_djygx": //单井油管线
+												childNode.label = itemData.properties["gxmc"];
 												break;
 											case "bnrgdbh": //不纳入耕地保护目标
 												childNode.label = itemData.properties["zldwmc"] + "(" + itemData.properties["dlmc"] + ")"

+ 403 - 0
src/views/Map3d/components/queryResult - 副本.vue

@@ -0,0 +1,403 @@
+<script setup>
+	import {
+		formattingTime
+	} from '@/assets/js/localtime.js';
+
+	import {
+		inject
+	} from "vue";
+	const getMapInstance = inject("getMapInstance");
+	jt3d = getMapInstance();
+</script>
+<template>
+	<div class="jt-queryResult">
+		<div class="_left">
+			<el-tree class="tree-line queryResultTree" ref="tree" node-key="id" :data="treeData" :default-expanded-keys="expandedKeys" :current-node-key="currentKey" @node-click="handleNodeClick" highlight-current />
+		</div>
+		<div class="_right">
+			<div id="detailDiv"></div>
+		</div>
+	</div>
+</template>
+
+<script>
+	let jt3d = undefined;
+
+	export default {
+		props: {
+			tree: {
+				type: Object,
+				default () {
+					return []
+				}
+			}
+		},
+		data() {
+			return {
+				treeData: this.tree,
+				currentKey: "",
+				expandedKeys: [], //对应要展开的节点id
+			}
+		},
+		methods: {
+			/**
+			 * 树单击事件
+			 */
+			handleNodeClick(treeNode) {
+
+				let _self = this;
+
+				return new Promise((resolve, reject) => {
+
+					if (treeNode.parentid != 'CIM') {
+
+						//清除高亮显示
+						let list = jt3d._dataSources.getByName("单击高亮显示")
+						list.forEach(res => {
+							jt3d._dataSources.remove(res)
+						})
+
+						//高亮显示并定位显示详细信息
+						if (treeNode.data.geometry.type == 'Point') {
+							let strHtml = "";
+							strHtml += "<table style='z-index:100;width:98%';border:2px solid #fff;>";
+							strHtml += "<thead>";
+							strHtml += "<tr>";
+							strHtml += "<th>属性名</th>";
+							strHtml += "<th>属性值</th>";
+							strHtml += "</tr> ";
+							strHtml += " </thead>";
+							strHtml += "<tbody>";
+
+							var field = treeNode.field;
+							var properties = treeNode.data.properties
+							field.forEach(itemField => {
+								if (itemField.isDisplay === 1) {
+									var fieldDesc = itemField.fieldDescription || itemField
+										.fieldName;
+									var fieldVals = properties[itemField.fieldName];
+
+									//日期格式
+									if (itemField.fieldType === 1) {
+										let time = new Date(fieldVals).getTime();
+										fieldVals = formattingTime(time);
+									}
+
+									if (fieldVals != null && fieldVals != "" && fieldVals !=
+										undefined) {
+										strHtml += "<tr>";
+										strHtml += "<td>" + fieldDesc + "</td>";
+										strHtml += "<td>" + fieldVals + "</td>";
+										strHtml += "</tr>";
+									}
+								}
+							});
+							strHtml += "</tbody>";
+							strHtml += "</table>";
+							let divb = document.getElementById('detailDiv')
+							divb.innerHTML = strHtml; //设置显示的数据,可以是标签.
+						} else if (treeNode.data.geometry.type == "MultiPolygon") {
+							this.polygon(treeNode)
+						} else if (treeNode.data.geometry.type == "MultiLineString") {
+							debugger
+							this.polygon(treeNode)
+						}
+					}
+
+					resolve(1)
+				})
+			},
+
+			polygon(treeNode) {
+				jt3d.PolygonObject.generatePolygonByPoints(treeNode.data.geometry.coordinates[0][0], {
+					color: [255, 0, 255, 0],
+					outline: true,
+					outlineWidth: 5,
+					outlineColor: [0, 255, 180, 1]
+				}).then((locationEntity) => {
+					// 初始化定位参数
+					let options = {};
+					options.duration = Cesium.defaultValue(options.duration, 2);
+					options.heading = Cesium.defaultValue(options.heading, 0);
+					options.pitch = Cesium.defaultValue(options.pitch, -60);
+					options.range = Cesium.defaultValue(options.range, 800.0);
+
+					let flyToEntity = jt3d.LocateUtil.flyToEntity(locationEntity, options);
+					flyToEntity.then(function(flag) {
+						//详细信息
+						let strHtml = "";
+						strHtml += "<table>";
+						strHtml += "<thead>";
+						strHtml += "<tr>";
+						strHtml += "<th>属性名</th>";
+						strHtml += "<th>属性值</th>";
+						strHtml += "</tr> ";
+						strHtml += " </thead>";
+						strHtml += "<tbody>";
+
+						var field = treeNode.field;
+						var properties = treeNode.data.properties
+						field.forEach(itemField => {
+							if (itemField.isDisplay === 1) {
+								var fieldDesc = itemField.fieldDescription || itemField
+									.fieldName;
+								var fieldVals = properties[itemField.fieldName];
+
+								//日期格式
+								if (itemField.fieldType === 1) {
+									let time = new Date(fieldVals).getTime();
+									fieldVals = formattingTime(time);
+								}
+
+								if (fieldVals != null && fieldVals != "" && fieldVals !=
+									undefined) {
+									strHtml += "<tr>";
+									strHtml += "<td>" + fieldDesc + "</td>";
+									strHtml += "<td>" + fieldVals + "</td>";
+									strHtml += "</tr>";
+								}
+							}
+						});
+
+						strHtml += "</tbody>";
+						strHtml += "</table>";
+
+						let divb = document.getElementById('detailDiv')
+						divb.innerHTML = strHtml; //设置显示的数据,可以是标签.
+
+					});
+				});
+			},
+
+			//信息展示
+			createContent(treeNode) {
+				let strHtml = "";
+				strHtml += "<table style='z-index:100;width:98%';border:2px solid #fff;>";
+				strHtml += "<thead>";
+				strHtml += "<tr>";
+				strHtml += "<th>属性名</th>";
+				strHtml += "<th>属性值</th>";
+				strHtml += "</tr> ";
+				strHtml += " </thead>";
+				strHtml += "<tbody>";
+
+				var field = treeNode.field;
+				var properties = treeNode.data.properties
+				field.forEach(itemField => {
+					if (itemField.isDisplay === 1) {
+						var fieldDesc = itemField.fieldDescription || itemField.fieldName;
+						var fieldVals = properties[itemField.fieldName];
+
+						//日期格式
+						if (itemField.fieldType === 1) {
+							let time = new Date(fieldVals).getTime();
+							fieldVals = formattingTime(time);
+						}
+
+						if (fieldVals != null && fieldVals != "" && fieldVals != undefined) {
+							strHtml += "<tr>";
+							strHtml += "<td>" + fieldDesc + "</td>";
+							strHtml += "<td>" + fieldVals + "</td>";
+							strHtml += "</tr>";
+						}
+					}
+				});
+				strHtml += "</tbody>";
+				strHtml += "</table>";
+				let divb = document.getElementById('detailDiv')
+				divb.innerHTML = strHtml; //设置显示的数据,可以是标签.
+			}
+
+		},
+		mounted() {}
+	}
+</script>
+
+<style lang="scss">
+	.jt-queryResult {
+		position: relative;
+		width: 100%;
+		height: 100%;
+		overflow: hidden;
+		z-index: 100000;
+
+		// overflow-y: hidden;
+		._right {
+			// overflow-y: hidden;
+		}
+
+		//左侧树
+		&>div:nth-child(1) {
+			position: absolute;
+			left: 0;
+			top: 0;
+			width: 220rem;
+			height: 380rem;
+			float: left;
+			overflow: auto !important;
+			border-right: 5rem solid #ddd;
+
+			.el-tree {
+				background: rgb(28 59 112 / 0%);
+				height: calc(100% - 2rem);
+				color: #fff;
+				--el-tree-node-hover-bg-color: #2a67c3;
+				--el-font-size-base: 14rem;
+
+				.overflowtext {
+					width: auto !important;
+					padding: 0;
+				}
+			}
+
+
+
+			.tree-line {
+				.el-tree-node {
+					position: relative;
+				}
+
+				.el-tree-node__children {
+					padding-left: 16rem !important; // 缩进量
+
+					.el-tree-node__content {
+						padding-left: 18rem !important;
+					}
+				}
+
+				//高亮显示选中样式
+				.el-tree-node.is-current>.el-tree-node__content {
+					background: #2a67c3;
+				}
+
+				// 竖线
+				.el-tree-node::before {
+					content: "";
+					height: 100%;
+					width: 1rem;
+					position: absolute;
+					left: -3rem;
+					top: -26rem;
+					border-width: 1rem;
+					border-left: 1rem dashed rgba(255, 255, 255, .8);
+				}
+
+				// 当前层最后一个节点的竖线高度固定
+				.el-tree-node:last-child::before {
+					height: 38rem; // 可以自己调节到合适数值
+				}
+
+				// 横线
+				.el-tree-node::after {
+					content: "";
+					width: 24rem;
+					height: 20rem;
+					position: absolute;
+					left: -3rem;
+					top: 12rem;
+					border-width: 1rem;
+					border-top: 1rem dashed rgba(255, 255, 255, .8);
+				}
+
+				// 去掉最顶层的虚线,放最下面样式才不会被上面的覆盖了
+				&>.el-tree-node::after {
+					border-top: none;
+				}
+
+				&>.el-tree-node::before {
+					border-left: none;
+				}
+
+				// 展开关闭的icon
+				.el-tree-node__expand-icon {
+					font-size: 16rem;
+
+					// 叶子节点(无子节点)
+					&.is-leaf {
+						color: transparent;
+						display: none; // 也可以去掉
+					}
+				}
+			}
+
+		}
+
+		//右侧基本信息
+		&>div:nth-child(2) {
+			position: absolute;
+			left: 220rem;
+			top: 0;
+			width: calc(100% - 240rem);
+			height: calc(100% - 0rem);
+			float: left;
+			margin-left: 10rem;
+			font-size: 14rem;
+			padding-top: 5rem;
+			overflow: auto;
+
+			table {
+				border-collapse: collapse;
+				margin: 0 auto;
+				text-align: center;
+				width: 100%;
+				height: 100%;
+				border-right: 2px solid rgb(221, 221, 221);
+			}
+
+			table td,
+			table th {
+				// border: 1rem solid #ddd;
+				color: #fff;
+				height: 30rem;
+			}
+
+			table thead th {
+				background-color: rgb(28 59 112 / 100%);
+				border: 2rem solid #ddd;
+			}
+
+			table tr:nth-child(odd) {
+				background: rgb(40 89 172 / 60%);
+				border-left: 2rem solid #ddd;
+				border-right: 2rem solid #ddd;
+				border-bottom: 1rem solid #ddd;
+			}
+
+			table tr:nth-child(even) {
+				background: rgb(28 59 112 / 60%);
+				border-left: 2rem solid #ddd;
+				border-right: 2rem solid #ddd;
+				border-bottom: 1rem solid #ddd;
+			}
+
+			// thead 表头固定,tbody 滚动
+			table>thead>tr {
+				display: table;
+				width: 100%;
+				table-layout: fixed;
+			}
+
+			table>tbody {
+				display: block;
+				height: 340rem;
+				/* 隐藏水平溢出内容 */
+				overflow-x: hidden;
+				/* 当垂直内容超出显示高度时以滚动条形式展示 */
+				overflow-y: auto;
+			}
+
+			table>tbody>tr {
+				/* 将tr设置为table元素,以此达到内容沾满table的效果 */
+				display: table;
+				/* 将tr宽度设置为100%,以此达到内容沾满table的效果 */
+				width: 100%;
+				/* 设置table-layout为fixed以达到首行和内容行对其的效果 */
+				table-layout: fixed;
+			}
+
+			table>tbody>tr>td {
+				border-right: 2rem solid #ddd;
+			}
+		}
+	}
+</style>

+ 166 - 138
src/views/Map3d/components/queryResult.vue

@@ -44,128 +44,156 @@
 			 * 树单击事件
 			 */
 			handleNodeClick(treeNode) {
+				if (treeNode.parentid != 'CIM') {
 
-				let _self = this;
+					//清除高亮显示
+					let list = jt3d._dataSources.getByName("单击高亮显示")
+					list.forEach(res => {
+						jt3d._dataSources.remove(res)
+					})
+
+					var field = treeNode.field;
+					var properties = treeNode.data.properties;
+					let geometry = treeNode.data.geometry;
+
+					//详细信息
+					this.createContent(field, properties);
+					//定位
+					this.location(geometry);
+
+				}
+			},
 
-				return new Promise((resolve, reject) => {
+			//信息展示
+			createContent(field, properties) {
+				let strHtml = "";
+				strHtml += "<table style='z-index:100;width:98%';border:2px solid #fff;>";
+				strHtml += "<thead>";
+				strHtml += "<tr>";
+				strHtml += "<th>属性名</th>";
+				strHtml += "<th>属性值</th>";
+				strHtml += "</tr> ";
+				strHtml += " </thead>";
+				strHtml += "<tbody>";
 
-					if (treeNode.parentid != 'CIM') {
+				field.forEach(itemField => {
+					if (itemField.isDisplay === 1) {
+						var fieldDesc = itemField.fieldDescription || itemField.fieldName;
+						var fieldVals = properties[itemField.fieldName];
 
-						//清除高亮显示
-						let list = jt3d._dataSources.getByName("单击高亮显示")
-						list.forEach(res => {
-							jt3d._dataSources.remove(res)
-						})
+						//日期格式
+						if (itemField.fieldType === 1) {
+							let time = new Date(fieldVals).getTime();
+							fieldVals = formattingTime(time);
+						}
 
-						//高亮显示并定位显示详细信息
-						if(treeNode.data.geometry.type == 'Point'){
-							let strHtml = "";
-							strHtml += "<table style='z-index:100;width:98%';border:2px solid #fff;>";
-							strHtml += "<thead>";
+						if (fieldVals != null && fieldVals != "" && fieldVals != undefined) {
 							strHtml += "<tr>";
-							strHtml += "<th>属性名</th>";
-							strHtml += "<th>属性值</th>";
-							strHtml += "</tr> ";
-							strHtml += " </thead>";
-							strHtml += "<tbody>";
-											
-							var field = treeNode.field;
-							var properties = treeNode.data.properties
-							field.forEach(itemField => {
-								if (itemField.isDisplay === 1) {
-									var fieldDesc = itemField.fieldDescription || itemField
-										.fieldName;
-									var fieldVals = properties[itemField.fieldName];
-											
-									//日期格式
-									if (itemField.fieldType === 1) {
-										let time = new Date(fieldVals).getTime();
-										fieldVals = formattingTime(time);
-									}
-											
-									if (fieldVals != null && fieldVals != "" && fieldVals !=
-										undefined) {
-										strHtml += "<tr>";
-										strHtml += "<td>" + fieldDesc + "</td>";
-										strHtml += "<td>" + fieldVals + "</td>";
-										strHtml += "</tr>";
-									}
-								}
-							});
-							strHtml += "</tbody>";
-							strHtml += "</table>";
-							let divb = document.getElementById('detailDiv')
-							divb.innerHTML = strHtml; //设置显示的数据,可以是标签.
-						}else if(treeNode.data.geometry.type == "MultiPolygon"){
-							this.polygon(treeNode)
+							strHtml += "<td>" + fieldDesc + "</td>";
+							strHtml += "<td>" + fieldVals + "</td>";
+							strHtml += "</tr>";
 						}
 					}
-
-					resolve(1)
-				})
+				});
+				strHtml += "</tbody>";
+				strHtml += "</table>";
+				let divb = document.getElementById('detailDiv')
+				divb.innerHTML = strHtml; //设置显示的数据,可以是标签.
 			},
-			
-			polygon(treeNode){
-				jt3d.PolygonObject.generatePolygonByPoints(treeNode.data.geometry.coordinates[0][0], {
-					color: [255, 0, 255, 0],
-					outline: true,
-					outlineWidth: 5,
-					outlineColor: [0, 255, 180, 1]
-				}).then((locationEntity) => {
-					// 初始化定位参数
-					let options = {};
-					options.duration = Cesium.defaultValue(options.duration, 2);
-					options.heading = Cesium.defaultValue(options.heading, 0);
-					options.pitch = Cesium.defaultValue(options.pitch, -60);
-					options.range = Cesium.defaultValue(options.range, 800.0);
-				
-					let flyToEntity = jt3d.LocateUtil.flyToEntity(locationEntity, options);
-					flyToEntity.then(function(flag) {
-						//详细信息
-						let strHtml = "";
-						strHtml += "<table>";
-						strHtml += "<thead>";
-						strHtml += "<tr>";
-						strHtml += "<th>属性名</th>";
-						strHtml += "<th>属性值</th>";
-						strHtml += "</tr> ";
-						strHtml += " </thead>";
-						strHtml += "<tbody>";
-				
-						var field = treeNode.field;
-						var properties = treeNode.data.properties
-						field.forEach(itemField => {
-							if (itemField.isDisplay === 1) {
-								var fieldDesc = itemField.fieldDescription || itemField
-									.fieldName;
-								var fieldVals = properties[itemField.fieldName];
-				
-								//日期格式
-								if (itemField.fieldType === 1) {
-									let time = new Date(fieldVals).getTime();
-									fieldVals = formattingTime(time);
-								}
-				
-								if (fieldVals != null && fieldVals != "" && fieldVals !=
-									undefined) {
-									strHtml += "<tr>";
-									strHtml += "<td>" + fieldDesc + "</td>";
-									strHtml += "<td>" + fieldVals + "</td>";
-									strHtml += "</tr>";
-								}
-							}
+
+			//定位
+			location(geometry) {
+				let _self = this;
+				//先创建一个CustomDataSource源,然后把entity存入这里面
+				let dataSources = new Cesium.CustomDataSource("单击高亮显示");
+				jt3d._dataSources.add(dataSources);
+
+				//高亮显示并定位
+				if (geometry.type == 'Point') {
+					let coordinates = geometry.coordinates;
+
+					//点
+					let position = Cesium.Cartesian3.fromDegrees(coordinates[0], coordinates[1], coordinates[2] || 0);
+					// let point = jt3d.PointObject.addBillboard(position).then(function(entity) {
+					// 	dataSources.entities.add(entity);
+
+					// 	//定位
+					// 	_self.flyToEntity(entity, {
+					// 		duration: 3,
+					// 		heading: 200,
+					// 		pitch: -80,
+					// 		range: 1000
+					// 	});
+					// });
+
+					//动态圆
+					let circleObject = new this.jt3dSDK.CircleObject(jt3d._viewer);
+					circleObject.drawCircle([coordinates[0], coordinates[1], coordinates[2] || 0], 10, {
+						color: [255, 0, 0, 1],
+						outline: true,
+						outlineColor: [255, 255, 255, 1],
+						outlineWidth: 1,
+						CircleType: 'DynamicCircle',
+						count: 2,
+						duration: 4000
+					}).then(function(entity) {
+
+						dataSources.entities.add(entity);
+						
+						//定位到点
+						jt3d.LocateUtil.flyToPoint({
+							longitude: coordinates[0],
+							latitude:coordinates[1],
+							height: coordinates[2],
+							duration: 3,
+							heading: 100,
+							pitch: -80,
+							range: 300,
+						}).then(function(flag) {
+							
 						});
-				
-						strHtml += "</tbody>";
-						strHtml += "</table>";
-				
-						let divb = document.getElementById('detailDiv')
-						divb.innerHTML = strHtml; //设置显示的数据,可以是标签.
-				
 					});
-				});
-			}
 
+				} else if (geometry.type == 'MultiPoint') {
+
+				} else if (geometry.type == "MultiPolygon") {
+
+				} else if (geometry.type == "MultiLineString") {
+
+					let coordinatesList = geometry.coordinates;
+					for (var j = 0; j < coordinatesList.length; j++) {
+						let coordinates = coordinatesList[j];
+						let positions = coordinates.map(point => {
+							return Cesium.Cartesian3.fromDegrees(point[0], point[1], point[2] || 0);
+						});
+
+						let line = jt3d.PolylineObject.addPolyline(positions, {
+							color: [255, 255, 0, 0.8]
+						}).then(function(entity) {
+							dataSources.entities.add(entity);
+
+							//定位
+							_self.flyToEntity(entity, {
+								duration: 3,
+								heading: 200,
+								pitch: -80,
+								range: 1000
+							})
+
+						});
+					}
+				}
+			},
+
+			//定位飞行飞行
+			flyToEntity(entity, options) {
+				let flyToEntity = jt3d.LocateUtil.flyToEntity(entity, options);
+				flyToEntity.then(function(entity) {
+					if (entity.point) {
+						jt3d._viewer.entities.remove(entity);
+					}
+				});
+			},
 		},
 		mounted() {}
 	}
@@ -178,12 +206,12 @@
 		height: 100%;
 		overflow: hidden;
 		z-index: 100000;
-	
+
 		// overflow-y: hidden;
 		._right {
 			// overflow-y: hidden;
 		}
-	
+
 		//左侧树
 		&>div:nth-child(1) {
 			position: absolute;
@@ -194,40 +222,40 @@
 			float: left;
 			overflow: auto !important;
 			border-right: 5rem solid #ddd;
-	
+
 			.el-tree {
 				background: rgb(28 59 112 / 0%);
 				height: calc(100% - 2rem);
 				color: #fff;
 				--el-tree-node-hover-bg-color: #2a67c3;
 				--el-font-size-base: 14rem;
-	
+
 				.overflowtext {
 					width: auto !important;
 					padding: 0;
 				}
 			}
-	
-	
-	
+
+
+
 			.tree-line {
 				.el-tree-node {
 					position: relative;
 				}
-	
+
 				.el-tree-node__children {
 					padding-left: 16rem !important; // 缩进量
-	
+
 					.el-tree-node__content {
 						padding-left: 18rem !important;
 					}
 				}
-	
+
 				//高亮显示选中样式
 				.el-tree-node.is-current>.el-tree-node__content {
 					background: #2a67c3;
 				}
-	
+
 				// 竖线
 				.el-tree-node::before {
 					content: "";
@@ -239,12 +267,12 @@
 					border-width: 1rem;
 					border-left: 1rem dashed rgba(255, 255, 255, .8);
 				}
-	
+
 				// 当前层最后一个节点的竖线高度固定
 				.el-tree-node:last-child::before {
 					height: 38rem; // 可以自己调节到合适数值
 				}
-	
+
 				// 横线
 				.el-tree-node::after {
 					content: "";
@@ -256,20 +284,20 @@
 					border-width: 1rem;
 					border-top: 1rem dashed rgba(255, 255, 255, .8);
 				}
-	
+
 				// 去掉最顶层的虚线,放最下面样式才不会被上面的覆盖了
 				&>.el-tree-node::after {
 					border-top: none;
 				}
-	
+
 				&>.el-tree-node::before {
 					border-left: none;
 				}
-	
+
 				// 展开关闭的icon
 				.el-tree-node__expand-icon {
 					font-size: 16rem;
-	
+
 					// 叶子节点(无子节点)
 					&.is-leaf {
 						color: transparent;
@@ -277,9 +305,9 @@
 					}
 				}
 			}
-	
+
 		}
-	
+
 		//右侧基本信息
 		&>div:nth-child(2) {
 			position: absolute;
@@ -292,7 +320,7 @@
 			font-size: 14rem;
 			padding-top: 5rem;
 			overflow: auto;
-	
+
 			table {
 				border-collapse: collapse;
 				margin: 0 auto;
@@ -301,40 +329,40 @@
 				height: 100%;
 				border-right: 2px solid rgb(221, 221, 221);
 			}
-	
+
 			table td,
 			table th {
 				// border: 1rem solid #ddd;
 				color: #fff;
 				height: 30rem;
 			}
-	
+
 			table thead th {
 				background-color: rgb(28 59 112 / 100%);
 				border: 2rem solid #ddd;
 			}
-	
+
 			table tr:nth-child(odd) {
 				background: rgb(40 89 172 / 60%);
 				border-left: 2rem solid #ddd;
 				border-right: 2rem solid #ddd;
 				border-bottom: 1rem solid #ddd;
 			}
-	
+
 			table tr:nth-child(even) {
 				background: rgb(28 59 112 / 60%);
 				border-left: 2rem solid #ddd;
 				border-right: 2rem solid #ddd;
 				border-bottom: 1rem solid #ddd;
 			}
-	
+
 			// thead 表头固定,tbody 滚动
 			table>thead>tr {
 				display: table;
 				width: 100%;
 				table-layout: fixed;
 			}
-	
+
 			table>tbody {
 				display: block;
 				height: 340rem;
@@ -343,7 +371,7 @@
 				/* 当垂直内容超出显示高度时以滚动条形式展示 */
 				overflow-y: auto;
 			}
-	
+
 			table>tbody>tr {
 				/* 将tr设置为table元素,以此达到内容沾满table的效果 */
 				display: table;
@@ -352,7 +380,7 @@
 				/* 设置table-layout为fixed以达到首行和内容行对其的效果 */
 				table-layout: fixed;
 			}
-	
+
 			table>tbody>tr>td {
 				border-right: 2rem solid #ddd;
 			}

部分文件因文件數量過多而無法顯示