| 
					
				 | 
			
			
				@@ -1,16 +1,18 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 <template> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    <el-tabs class="multi_level_query_table" v-model="activeName" @tab-click="handleClick" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    <el-tabs class="multi_level_query_table" v-model="activeName" @tab-click="handleClick" @tab-remove="removeTab" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         v-if="store.state.query_pick_last_pane"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         <el-tab-pane :label="store.state.query_pick_last_pane.name" name="second"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             <div class="list_vector_multi" v-for="(item_last, index) in store.state.query_pick_last_pane.value" :key="index" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 v-if="item_last.filed != 'geom'"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                <span>{{ item_last.filedZH }}:  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                {{ item_last.filedZH == '面积'?item_last.data.toFixed(2):item_last.data }}</span> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                <span>{{ item_last.filedZH }}: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    {{ item_last.filedZH == '面积' ? item_last.data.toFixed(2) : item_last.data }}</span> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         </el-tab-pane> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        <el-tab-pane :label="item.name" :name="item.name" v-for="(item, index) in store.state.query_pick_pane" :key="index"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            <pie class="echart" :class="item.name == '权属' ? 'echart1' : ''"    unit="亩" @echartClick="(name)=>echartClick(name,item.value)" :ref="`echartRef`"></pie> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        <el-tab-pane :closable="item.close" :label="item.name" :name="item.name" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            v-for="(item, index) in store.state.query_pick_pane" :key="index"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <pie class="echart" :class="item.name == '权属' ? 'echart1' : ''" unit="亩" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                @echartClick="(name) => echartClick(name, item.value)" :ref="`echartRef`"></pie> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             <div>{{ eclickname }}</div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             <el-collapse v-for="(value, index_item) in echartList[eclickname]" :key="index_item" @change="handleChange"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 <el-collapse-item :title="'地块' + (index_item + 1)" name="1"> 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -22,7 +24,7 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         : 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         <div class="filed_box"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            {{ value_field.filedZH == '面积'?value_field.data.toFixed(2):value_field.data }} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            {{ value_field.filedZH == '面积' ? value_field.data.toFixed(2) : value_field.data }} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -30,6 +32,13 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             </el-collapse> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         </el-tab-pane> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        <el-tab-pane label="自定义" name="自定义"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <div style="margin-bottom: 20px;"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                <el-button size="small" @click="addTab()"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    add tab 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                </el-button> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        </el-tab-pane> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     </el-tabs> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 </template> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -44,6 +53,7 @@ let manager_multi_level_query = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 let pick_entity = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 let manager_multi_level_vector = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+let query_click_by_iserver = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 export default { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     components: { pie }, 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -56,7 +66,8 @@ export default { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             pick_entity: null, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             pick_entity_geo: null, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             eclickname: '', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            echartList:{} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            echartList: {}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            tabIndex: 2 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     //监听属性 类似于data概念 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -65,21 +76,49 @@ export default { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     watch: {}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     //方法集合 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     methods: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    compute(mj) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      return mj ? (mj * 0.0015).toFixed(2) : 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    setEchart(data, type, index) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      this.$nextTick(() => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        let max = index == 0 ? 3 : 10 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        let legend_right= index == 0 ? "2%" : "10%" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        this.$refs.echartRef[index].setOptions({ data, type, max,legend_right }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    echartClick(name,datas){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        this.eclickname = name 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        // let click = datas.filter((c) => c.name == name); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        // if (click.length > 0) this.gogeojson(click[0].geom ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        removeTab(targetName) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            let tabs = store.state.query_pick_pane; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            let activeName = this.activeName; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (activeName === targetName) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                tabs.forEach((tab, index) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    if (tab.name === targetName) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        let nextTab = tabs[index + 1] || tabs[index - 1]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        if (nextTab) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            activeName = nextTab.name; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            this.activeName = activeName; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            store.state.query_pick_pane = tabs.filter(tab => tab.name !== targetName); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        addTab() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            let newTabName = ++this.tabIndex + ''; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            store.state.query_pick_pane.push({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+             
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                name: newTabName, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                value: [1,2,3,4],// element.data 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                close: 'closable' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+               
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            this.activeName = newTabName; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        compute(mj) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return mj ? (mj * 0.0015).toFixed(2) : 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        setEchart(data, type, index) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            this.$nextTick(() => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                let max = index == 0 ? 3 : 10 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                let legend_right = index == 0 ? "2%" : "10%" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                this.$refs.echartRef[index].setOptions({ data, type, max, legend_right }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        echartClick(name, datas) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            this.eclickname = name 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            // let click = datas.filter((c) => c.name == name); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            // if (click.length > 0) this.gogeojson(click[0].geom ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         switch_show(flag) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             pick_entity.entities.values.forEach((res) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 res.show = flag; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -93,74 +132,74 @@ export default { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        gogeojson(data){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    let geojson = wellknown.parse(data); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    const twoDArray = geojson.coordinates[0]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    const oneDArray = twoDArray.reduce((accumulator, currentValue) => accumulator.concat(currentValue), []); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    this.pick_entity_geo = oneDArray; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    pick_entity.entities.add({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        polygon: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            // 获取指定属性(positions,holes(图形内需要挖空的区域)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            hierarchy: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                positions: Cesium.Cartesian3.fromDegreesArray(oneDArray), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            // 边框 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            outline: true, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            // 边框颜色 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            outlineColor: Cesium.Color.RED, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            // 边框尺寸 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            outlineWidth: 2, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            // 填充的颜色,withAlpha透明度 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            material: Cesium.Color.GREEN.withAlpha(0), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            // 是否被提供的材质填充 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            fill: true, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            // 恒定高度 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            height: 1.1, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            // 显示在距相机的距离处的属性,多少区间内是可以显示的 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            // distanceDisplayCondition: new Cesium.DistanceDisplayCondition(1000, 10000000), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            // 是否显示 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            show: true, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            // 顺序,仅当`clampToGround`为true并且支持地形上的折线时才有效。 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            zIndex: 10 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        gogeojson(data) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            let geojson = wellknown.parse(data); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            const twoDArray = geojson.coordinates[0]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            const oneDArray = twoDArray.reduce((accumulator, currentValue) => accumulator.concat(currentValue), []); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            this.pick_entity_geo = oneDArray; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            pick_entity.entities.add({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                polygon: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    // 获取指定属性(positions,holes(图形内需要挖空的区域)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    hierarchy: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        positions: Cesium.Cartesian3.fromDegreesArray(oneDArray), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    // 边框 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    outline: true, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    // 边框颜色 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    outlineColor: Cesium.Color.RED, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    // 边框尺寸 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    outlineWidth: 2, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    // 填充的颜色,withAlpha透明度 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    material: Cesium.Color.GREEN.withAlpha(0), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    // 是否被提供的材质填充 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    fill: true, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    // 恒定高度 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    height: 1.1, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    // 显示在距相机的距离处的属性,多少区间内是可以显示的 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    // distanceDisplayCondition: new Cesium.DistanceDisplayCondition(1000, 10000000), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    // 是否显示 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    show: true, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    // 顺序,仅当`clampToGround`为true并且支持地形上的折线时才有效。 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    zIndex: 10 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    let flag = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    let time = setInterval(() => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        flag = !flag 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        this.switch_show(flag); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    }, 500); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    setTimeout(() => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        clearInterval(time); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        pick_entity.entities.values.forEach((res) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            let flag = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            let time = setInterval(() => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                flag = !flag 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                this.switch_show(flag); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            }, 500); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            setTimeout(() => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                clearInterval(time); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                pick_entity.entities.values.forEach((res) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            pick_entity.entities.remove(res); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    pick_entity.entities.remove(res); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    }, 6000) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            }, 6000) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    // 注意:polygon首尾坐标要一致 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    var polygon = turf.polygon([geojson.coordinates[0]]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            // 注意:polygon首尾坐标要一致 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            var polygon = turf.polygon([geojson.coordinates[0]]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    var centroid = turf.centroid(polygon).geometry.coordinates; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            var centroid = turf.centroid(polygon).geometry.coordinates; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    viewer.camera.flyTo({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        duration: 1, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            viewer.camera.flyTo({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                duration: 1, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        destination: Cesium.Cartesian3.fromDegrees(centroid[0], centroid[1], 3000), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        // destination: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        //     x: -6283267.004204832, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        //     y: 28123682.896774407, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        //     z: 23709669.98539126 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        // }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        orientation: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            heading: 6.149339593573709, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            pitch: -1.539825618847483, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            roll: 0 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                destination: Cesium.Cartesian3.fromDegrees(centroid[0], centroid[1], 3000), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                // destination: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //     x: -6283267.004204832, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //     y: 28123682.896774407, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //     z: 23709669.98539126 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                // }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                orientation: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    heading: 6.149339593573709, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    pitch: -1.539825618847483, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    roll: 0 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         handleChange(val) { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -220,18 +259,22 @@ export default { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 const wkt = wellknown.stringify(geojsonPoint); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                let id = store.state.vectorlayerlist[store.state.vectorlayerlist.length - 1].id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 let obj = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     // "wkt": 'POINT (109.51207847188947 18.311530254307392)', //单面 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     // "wkt": 'POINT (109.50728022974468 18.318266593715794)', //多面 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     "wkt": wkt, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    "id": 'dd699f839bc04969ae2dc2e1964d0ad1', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    // "id": 'dd699f839bc04969ae2dc2e1964d0ad1', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    "id": id, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 GetTableData(obj).then(res => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     if (res.data.data != undefined) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         store.state.query_pick_last_pane = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             name: res.data.dataname, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            value: res.data.data[0] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            value: res.data.data[0], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            close: 'closable' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     if (res.data.child != undefined) { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -239,11 +282,13 @@ export default { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         let index = -1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         res.data.child.forEach(element => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             if (element.data.length > 1) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                index ++; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                index++; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                 let edata = [] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                 store.state.query_pick_pane.push({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                     name: element.dataname, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                    value: []// element.data 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    value: [],// element.data 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    close: 'closable' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                 }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                 element.data.forEach(e => { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -255,28 +300,27 @@ export default { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                     }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                 }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                 // if(element.dataname == '土地现状'){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                    const countByName = element.data.reduce((acc, e) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                        let name,value = '' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                        e.forEach((res) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                        if (res.filed == 'dlmc' || res.filed == 'qslx')   name = res.data 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                        if (res.filed == 'siweiarea')   value = res.data 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                         
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                const countByName = element.data.reduce((acc, e) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    let name, value = '' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    e.forEach((res) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                        if (res.filed == 'dlmc' || res.filed == 'qslx') name = res.data 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                        if (res.filed == 'siweiarea') value = res.data 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                     }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                        acc[name] = (acc[name] || 0) + value; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                        if(element.dataname=='权属') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                          if(!this.echartList[name])this.echartList[name]=[] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                          this.echartList[name].push(e) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                        return acc; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                    }, {}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                     
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    acc[name] = (acc[name] || 0) + value; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    if (element.dataname == '权属') { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                        if (!this.echartList[name]) this.echartList[name] = [] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                        this.echartList[name].push(e) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    return acc; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                }, {}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                 Object.keys(countByName).forEach((key) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                    edata.push({name:key,value:this.compute(countByName[key])}) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    edata.push({ name: key, value: this.compute(countByName[key]) }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                 }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                 edata.sort((a, b) => b.value - a.value); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                 // } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                this.setEchart(edata,'vertical',index)    
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                this.setEchart(edata, 'vertical', index) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                 // store.state.query_pick_pane.push({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                 //     name: element.dataname, 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -291,12 +335,96 @@ export default { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                this.highlightResults(longitude, latitude); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 that.handler_multi_level_query.destroy(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 that.handler_multi_level_query = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             }, Cesium.ScreenSpaceEventType.LEFT_CLICK); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        async highlightResults(longitude, latitude) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            // 高亮结果 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            let queryByIDParameters = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                getFeatureMode: "BUFFER", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                // getFeatureMode: "SPATIAL", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                spatialQueryMode: "INTERSECT", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                datasetNames: store.state.vectorlayerlist[store.state.vectorlayerlist.length - 1].source.split(","), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                geometry: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    parts: [1], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    points: [{ y: latitude, x: longitude }], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    type: "POINT", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                bufferDistance: 0.00005, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                hasGeometry: true, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            let response = await axios.post(this.calcIserverURI(store.state.vectorlayerlist[store.state.vectorlayerlist.length - 1].url), queryByIDParameters); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            const outputCoords = this.convertCoordinates(response.data.features[0].geometry.points); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            outputCoords.push(outputCoords[0]) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            let f = { "type": "Polygon", "coordinates": [outputCoords] }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            let result = turf.buffer(f, 1 / 99999, { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                units: "kilometers", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            let positions = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            const twoDArray = result.geometry.coordinates[0]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            const oneDArray = twoDArray.reduce((accumulator, currentValue) => accumulator.concat(currentValue), []); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            positions = oneDArray; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (this.isArray2D(oneDArray)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                const oneDArray2 = oneDArray.reduce((accumulator, currentValue) => accumulator.concat(currentValue), []); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                positions = oneDArray2; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            query_click_by_iserver.entities.add({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                polygon: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    // 获取指定属性(positions,holes(图形内需要挖空的区域)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    hierarchy: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        positions: Cesium.Cartesian3.fromDegreesArray(positions) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    // 边框 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    outline: false, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    // 边框颜色 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    outlineColor: Cesium.Color.RED, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    // 边框尺寸 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    outlineWidth: 10, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    // 填充的颜色,withAlpha透明度 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    material: Cesium.Color.RED, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    // 是否被提供的材质填充 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    fill: true, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    // 恒定高度 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    height: 1.1, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    // 显示在距相机的距离处的属性,多少区间内是可以显示的 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    // distanceDisplayCondition: new Cesium.DistanceDisplayCondition(1000, 10000000), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    // 是否显示 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    show: true, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    // 顺序,仅当`clampToGround`为true并且支持地形上的折线时才有效。 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    zIndex: 10 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        convertCoordinates(coordArray) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return coordArray.map(coord => [coord.x, coord.y]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        calcIserverURI(url) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            let uriArr = url.split("/"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            uriArr[5] = uriArr[5].replace("map-", "data-"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            uriArr[7] = "data"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            uriArr[8] = "featureResults.rjson?returnContent=true"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return uriArr.join("/"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         multiPolygonToPolygons(multiPolygon) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             const polygons = []; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -326,6 +454,8 @@ export default { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             //     viewer.scene.primitives.remove(element); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             // } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            this.remove_query_click_by_iserver(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         add_viewer_for_vector(geojson, data) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -376,7 +506,32 @@ export default { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 that.add_viewer_for_vector(geojson, data); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        remove_query_click_by_iserver() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            for (var i = 0; i < 10; i++) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                query_click_by_iserver.entities.values.forEach((res) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    query_click_by_iserver.entities.remove(res); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        isArray2D(arr) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            // 首先检查arr是否是数组 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (!Array.isArray(arr)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                return false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            // 检查数组中的每个元素是否也是数组 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            for (let i = 0; i < arr.length; i++) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if (!Array.isArray(arr[i])) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    return false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            // 如果所有元素都是数组,那么arr是二维数组 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     beforeCreate() { }, //生命周期 - 创建之前 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     created() { }, //生命周期 - 创建完成(可以访问当前this实例) 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -396,6 +551,9 @@ export default { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             pick_entity = new Cesium.CustomDataSource("pick_entity"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             viewer.dataSources.add(pick_entity); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            query_click_by_iserver = new Cesium.CustomDataSource("query_click_by_iserver"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            viewer.dataSources.add(query_click_by_iserver); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }, //生命周期 - 挂在完成 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -438,17 +596,21 @@ export default { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 </style> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 <style lang="scss" scoped> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-.echart{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+.echart { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     width: 300px; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     height: 420px; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-.echart1{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+.echart1 { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     height: 280px; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 .multi_level_query_table { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     position: absolute; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     top: 7rem; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     width: 19rem; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 /* 去掉tabs标签栏下的下划线 */ 
			 |