From 9dd06fefff5262947d42e99f518706d4a068d654 Mon Sep 17 00:00:00 2001
From: shuishen <1109946754@qq.com>
Date: Wed, 23 Jun 2021 11:27:14 +0800
Subject: [PATCH] Merge branch 'master' of http://192.168.0.105:10010/r/pyhmap

---
 config.json                               |    4 
 widgets/modelDiagram/Widget.html          |   41 +
 widgets/null/css/style.css                |   17 
 widgets/null/Widget.js                    |    4 
 widgets/visibleArea/css/style.css         |    4 
 widgets/spatialQuery/manifest.json        |   17 
 widgets/modelDiagram/css/style.css        |   34 +
 widgets/spatialQuery/nls/es/strings.js    |    5 
 widgets/spatialQuery/nls/zh-cn/strings.js |    5 
 images/gltf/CesiumMilkTruck.glb           |    0 
 widgets/spatialQuery/css/style.css        |   67 ++
 widgets/spatialAnalysis/Widget.js         |  110 ++-
 images/gltf/CesiumMilkTruck.png           |    0 
 widgets/legends/css/style.css             |    6 
 widgets/searchL/Widget.js                 |   57 ++
 widgets/profileAnalysis/css/style.css     |    4 
 widgets/searchL/Widget.html               |    3 
 widgets/searchL/css/style.css             |   33 
 images/gltf/GroundVehicle.glb             |    0 
 images/gltf/CesiumDrone.glb               |    0 
 widgets/digTheEarth/css/style.css         |   16 
 images/gltf/Cesium_Air.glb                |    0 
 widgets/modelDiagram/Widget.js            |  113 +++
 images/gltf/CesiumMilkTruck.gltf          |  592 +++++++++++++++++++++
 widgets/spatialQuery/Widget.html          |   34 +
 widgets/spatialQuery/Widget.js            |  273 ++++++++++
 images/gltf/CesiumBalloon.glb             |    0 
 widgets/Tool/Widget.js                    |  114 ---
 widgets/digTheEarth/Widget.html           |    3 
 widgets/digTheEarth/Widget.js             |    5 
 images/gltf/CesiumMilkTruck.bin           |    0 
 widgets/spatialQuery/nls/strings.js       |    7 
 32 files changed, 1,366 insertions(+), 202 deletions(-)

diff --git a/config.json b/config.json
index aaaeafd..ed28577 100644
--- a/config.json
+++ b/config.json
@@ -260,6 +260,10 @@
       {
         "name": "方量分析",
         "uri": "widgets/volumeAnalysis/Widget"
+      },
+      {
+        "name": "空间查询",
+        "uri": "widgets/spatialQuery/Widget"
       }
     ],
     "groups": [],
diff --git a/images/gltf/CesiumBalloon.glb b/images/gltf/CesiumBalloon.glb
new file mode 100644
index 0000000..b494975
--- /dev/null
+++ b/images/gltf/CesiumBalloon.glb
Binary files differ
diff --git a/images/gltf/CesiumDrone.glb b/images/gltf/CesiumDrone.glb
new file mode 100644
index 0000000..22dbdc0
--- /dev/null
+++ b/images/gltf/CesiumDrone.glb
Binary files differ
diff --git a/images/gltf/CesiumMilkTruck.bin b/images/gltf/CesiumMilkTruck.bin
new file mode 100644
index 0000000..c4996c5
--- /dev/null
+++ b/images/gltf/CesiumMilkTruck.bin
Binary files differ
diff --git a/images/gltf/CesiumMilkTruck.glb b/images/gltf/CesiumMilkTruck.glb
new file mode 100644
index 0000000..1faef43
--- /dev/null
+++ b/images/gltf/CesiumMilkTruck.glb
Binary files differ
diff --git a/images/gltf/CesiumMilkTruck.gltf b/images/gltf/CesiumMilkTruck.gltf
new file mode 100644
index 0000000..34fc45b
--- /dev/null
+++ b/images/gltf/CesiumMilkTruck.gltf
@@ -0,0 +1,592 @@
+{
+  "asset": {
+    "generator": "COLLADA2GLTF",
+    "version": "2.0"
+  },
+  "scene": 0,
+  "scenes": [
+    {
+      "nodes": [
+        0
+      ]
+    }
+  ],
+  "nodes": [
+    {
+      "mesh": 0,
+      "children": [
+        3,
+        1
+      ],
+      "matrix": [
+        0,
+        0,
+        1,
+        0,
+        0,
+        1,
+        0,
+        0,
+        -1,
+        0,
+        0,
+        0,
+        0,
+        0,
+        0,
+        1
+      ]
+    },
+    {
+      "children": [
+        2
+      ],
+      "matrix": [
+        1,
+        0,
+        0,
+        0,
+        0,
+        1,
+        0,
+        0,
+        0,
+        0,
+        1,
+        0,
+        -1.352329969406128,
+        0.4277220070362091,
+        -2.98022992950564e-8,
+        1
+      ]
+    },
+    {
+      "mesh": 1,
+      "rotation": [
+        0,
+        0,
+        0.08848590403795242,
+        -0.9960774183273317
+      ]
+    },
+    {
+      "children": [
+        4
+      ],
+      "matrix": [
+        1,
+        0,
+        0,
+        0,
+        0,
+        1,
+        0,
+        0,
+        0,
+        0,
+        1,
+        0,
+        1.432669997215271,
+        0.4277220070362091,
+        -2.98022992950564e-8,
+        1
+      ]
+    },
+    {
+      "mesh": 1,
+      "rotation": [
+        0,
+        0,
+        0.08848590403795242,
+        -0.9960774183273317
+      ]
+    }
+  ],
+  "meshes": [
+    {
+      "primitives": [
+        {
+          "attributes": {
+            "NORMAL": 5,
+            "POSITION": 6,
+            "TEXCOORD_0": 7
+          },
+          "indices": 4,
+          "mode": 4,
+          "material": 0,
+          "extensions": {
+            "KHR_draco_mesh_compression": {
+              "bufferView": 2,
+              "attributes": {
+                "NORMAL": 0,
+                "POSITION": 1,
+                "TEXCOORD_0": 2
+              }
+            }
+          }
+        },
+        {
+          "attributes": {
+            "NORMAL": 9,
+            "POSITION": 10
+          },
+          "indices": 8,
+          "mode": 4,
+          "material": 1,
+          "extensions": {
+            "KHR_draco_mesh_compression": {
+              "bufferView": 3,
+              "attributes": {
+                "NORMAL": 0,
+                "POSITION": 1
+              }
+            }
+          }
+        },
+        {
+          "attributes": {
+            "NORMAL": 12,
+            "POSITION": 13
+          },
+          "indices": 11,
+          "mode": 4,
+          "material": 2,
+          "extensions": {
+            "KHR_draco_mesh_compression": {
+              "bufferView": 4,
+              "attributes": {
+                "NORMAL": 0,
+                "POSITION": 1
+              }
+            }
+          }
+        }
+      ],
+      "name": "Cesium_Milk_Truck"
+    },
+    {
+      "primitives": [
+        {
+          "attributes": {
+            "NORMAL": 15,
+            "POSITION": 16,
+            "TEXCOORD_0": 17
+          },
+          "indices": 14,
+          "mode": 4,
+          "material": 3,
+          "extensions": {
+            "KHR_draco_mesh_compression": {
+              "bufferView": 5,
+              "attributes": {
+                "NORMAL": 0,
+                "POSITION": 1,
+                "TEXCOORD_0": 2
+              }
+            }
+          }
+        }
+      ],
+      "name": "Wheels"
+    }
+  ],
+  "animations": [
+    {
+      "channels": [
+        {
+          "sampler": 0,
+          "target": {
+            "node": 4,
+            "path": "rotation"
+          }
+        },
+        {
+          "sampler": 1,
+          "target": {
+            "node": 2,
+            "path": "rotation"
+          }
+        }
+      ],
+      "samplers": [
+        {
+          "input": 0,
+          "interpolation": "LINEAR",
+          "output": 1
+        },
+        {
+          "input": 2,
+          "interpolation": "LINEAR",
+          "output": 3
+        }
+      ]
+    }
+  ],
+  "accessors": [
+    {
+      "bufferView": 0,
+      "byteOffset": 0,
+      "componentType": 5126,
+      "count": 31,
+      "max": [
+        1.25
+      ],
+      "min": [
+        0
+      ],
+      "type": "SCALAR"
+    },
+    {
+      "bufferView": 1,
+      "byteOffset": 0,
+      "componentType": 5126,
+      "count": 31,
+      "max": [
+        0,
+        0,
+        0.9990190863609314,
+        1
+      ],
+      "min": [
+        0,
+        0,
+        0,
+        -0.9960774183273317
+      ],
+      "type": "VEC4"
+    },
+    {
+      "bufferView": 0,
+      "byteOffset": 124,
+      "componentType": 5126,
+      "count": 31,
+      "max": [
+        1.25
+      ],
+      "min": [
+        0
+      ],
+      "type": "SCALAR"
+    },
+    {
+      "bufferView": 1,
+      "byteOffset": 496,
+      "componentType": 5126,
+      "count": 31,
+      "max": [
+        0,
+        0,
+        0.9990190863609314,
+        1
+      ],
+      "min": [
+        0,
+        0,
+        0,
+        -0.9960774183273317
+      ],
+      "type": "VEC4"
+    },
+    {
+      "componentType": 5123,
+      "count": 5232,
+      "max": [
+        1855
+      ],
+      "min": [
+        0
+      ],
+      "type": "SCALAR"
+    },
+    {
+      "componentType": 5126,
+      "count": 1856,
+      "max": [
+        1,
+        1,
+        1
+      ],
+      "min": [
+        -1,
+        -1,
+        -1
+      ],
+      "type": "VEC3"
+    },
+    {
+      "componentType": 5126,
+      "count": 1856,
+      "max": [
+        2.437999963760376,
+        2.5843698978424072,
+        1.3960000276565552
+      ],
+      "min": [
+        -2.430910110473633,
+        0.2667999863624573,
+        -1.3960000276565552
+      ],
+      "type": "VEC3"
+    },
+    {
+      "componentType": 5126,
+      "count": 1856,
+      "max": [
+        0.8964580297470093,
+        0.997245192527771
+      ],
+      "min": [
+        0.002956389915198088,
+        0.015672028064727783
+      ],
+      "type": "VEC2"
+    },
+    {
+      "componentType": 5123,
+      "count": 168,
+      "max": [
+        71
+      ],
+      "min": [
+        0
+      ],
+      "type": "SCALAR"
+    },
+    {
+      "componentType": 5126,
+      "count": 72,
+      "max": [
+        0.957480013370514,
+        0.28850099444389343,
+        1
+      ],
+      "min": [
+        -1,
+        0,
+        -1
+      ],
+      "type": "VEC3"
+    },
+    {
+      "componentType": 5126,
+      "count": 72,
+      "max": [
+        1.6011799573898315,
+        2.3545401096343994,
+        1.3960000276565552
+      ],
+      "min": [
+        0.22885000705718997,
+        1.631850004196167,
+        -1.3960000276565552
+      ],
+      "type": "VEC3"
+    },
+    {
+      "componentType": 5123,
+      "count": 864,
+      "max": [
+        463
+      ],
+      "min": [
+        0
+      ],
+      "type": "SCALAR"
+    },
+    {
+      "componentType": 5126,
+      "count": 464,
+      "max": [
+        1,
+        1,
+        1
+      ],
+      "min": [
+        -1,
+        -1,
+        -1
+      ],
+      "type": "VEC3"
+    },
+    {
+      "componentType": 5126,
+      "count": 464,
+      "max": [
+        1.62267005443573,
+        2.3919999599456787,
+        1.100000023841858
+      ],
+      "min": [
+        0.1932000070810318,
+        1.5961999893188477,
+        -1.1100000143051147
+      ],
+      "type": "VEC3"
+    },
+    {
+      "componentType": 5123,
+      "count": 2304,
+      "max": [
+        585
+      ],
+      "min": [
+        0
+      ],
+      "type": "SCALAR"
+    },
+    {
+      "componentType": 5126,
+      "count": 586,
+      "max": [
+        0.9990389943122864,
+        0.9990379810333252,
+        1
+      ],
+      "min": [
+        -0.9990379810333252,
+        -0.9990379810333252,
+        -1
+      ],
+      "type": "VEC3"
+    },
+    {
+      "componentType": 5126,
+      "count": 586,
+      "max": [
+        0.4277999997138977,
+        0.4277999997138977,
+        1.0579999685287476
+      ],
+      "min": [
+        -0.4277999997138977,
+        -0.4277999997138977,
+        -1.0579999685287476
+      ],
+      "type": "VEC3"
+    },
+    {
+      "componentType": 5126,
+      "count": 586,
+      "max": [
+        0.9936569929122924,
+        0.9895756244659424
+      ],
+      "min": [
+        0.6050930023193359,
+        0.00905001163482666
+      ],
+      "type": "VEC2"
+    }
+  ],
+  "materials": [
+    {
+      "pbrMetallicRoughness": {
+        "baseColorTexture": {
+          "index": 0
+        },
+        "metallicFactor": 0
+      },
+      "name": "truck"
+    },
+    {
+      "pbrMetallicRoughness": {
+        "baseColorFactor": [
+          0,
+          0.04050629958510399,
+          0.021240700036287308,
+          1
+        ],
+        "metallicFactor": 0
+      },
+      "name": "glass"
+    },
+    {
+      "pbrMetallicRoughness": {
+        "baseColorFactor": [
+          0.06400000303983688,
+          0.06400000303983688,
+          0.06400000303983688,
+          1
+        ],
+        "metallicFactor": 0
+      },
+      "name": "window_trim"
+    },
+    {
+      "pbrMetallicRoughness": {
+        "baseColorTexture": {
+          "index": 1
+        },
+        "metallicFactor": 0
+      },
+      "name": "wheels"
+    }
+  ],
+  "textures": [
+    {
+      "sampler": 0,
+      "source": 0
+    },
+    {
+      "sampler": 0,
+      "source": 0
+    }
+  ],
+  "images": [
+    {
+      "uri": "CesiumMilkTruck.png"
+    }
+  ],
+  "samplers": [
+    {
+      "magFilter": 9729,
+      "minFilter": 9986,
+      "wrapS": 10497,
+      "wrapT": 10497
+    }
+  ],
+  "bufferViews": [
+    {
+      "buffer": 0,
+      "byteOffset": 0,
+      "byteLength": 248
+    },
+    {
+      "buffer": 0,
+      "byteOffset": 248,
+      "byteLength": 992
+    },
+    {
+      "buffer": 0,
+      "byteOffset": 1240,
+      "byteLength": 7871
+    },
+    {
+      "buffer": 0,
+      "byteOffset": 9111,
+      "byteLength": 474
+    },
+    {
+      "buffer": 0,
+      "byteOffset": 9585,
+      "byteLength": 1249
+    },
+    {
+      "buffer": 0,
+      "byteOffset": 10834,
+      "byteLength": 3137
+    }
+  ],
+  "buffers": [
+    {
+      "byteLength": 13971,
+      "uri": "CesiumMilkTruck.bin"
+    }
+  ],
+  "extensionsRequired": [
+    "KHR_draco_mesh_compression"
+  ],
+  "extensionsUsed": [
+    "KHR_draco_mesh_compression"
+  ]
+}
\ No newline at end of file
diff --git a/images/gltf/CesiumMilkTruck.png b/images/gltf/CesiumMilkTruck.png
new file mode 100644
index 0000000..390ef28
--- /dev/null
+++ b/images/gltf/CesiumMilkTruck.png
Binary files differ
diff --git a/images/gltf/Cesium_Air.glb b/images/gltf/Cesium_Air.glb
new file mode 100644
index 0000000..f4b70f7
--- /dev/null
+++ b/images/gltf/Cesium_Air.glb
Binary files differ
diff --git a/images/gltf/GroundVehicle.glb b/images/gltf/GroundVehicle.glb
new file mode 100644
index 0000000..dd76715
--- /dev/null
+++ b/images/gltf/GroundVehicle.glb
Binary files differ
diff --git a/widgets/Tool/Widget.js b/widgets/Tool/Widget.js
index 0d8bc3f..4ef96dc 100644
--- a/widgets/Tool/Widget.js
+++ b/widgets/Tool/Widget.js
@@ -51,8 +51,8 @@
 					$('.jimu-widget-Sign').hide();
 					$('.jimu-widget-CoorPosition').hide();
 					$('.jimu-widget-MapPrinting').hide();
-				
-					
+
+
 					that.closefenxi();
 
 
@@ -83,8 +83,8 @@
                         
 					$('.jimu-widget-CoorPosition').hide();
 					$('.jimu-widget-MapPrinting').hide();
-					
-					
+
+
 					that.closefenxi();
 
 
@@ -110,8 +110,8 @@
 					topic.publish('closeFlyRoute', 'FlyRoute');
 					$('.jimu-widget-CoorPosition').hide();
 					$('.jimu-widget-MapPrinting').hide();
-				
-					
+
+
 					that.closefenxi();
 
 
@@ -137,8 +137,8 @@
 					topic.publish('closeFlyRoute', 'FlyRoute');
 					$('.jimu-widget-CoorPosition').hide();
 					$('.jimu-widget-MapPrinting').hide();
-					
-					
+
+
 					that.closefenxi();
 
 
@@ -166,8 +166,8 @@
 					topic.publish('closeSign', 'Sign');
 					topic.publish('closeFlyRoute', 'FlyRoute');
 					$('.jimu-widget-MapPrinting').hide();
-					
-					
+
+
 					that.closefenxi();
 
 
@@ -198,8 +198,8 @@
 					topic.publish('closeFlyRoute', 'FlyRoute');
 
 					$('.jimu-widget-CoorPosition').hide();
-					
-					
+
+
 					that.closefenxi();
 
 
@@ -239,80 +239,6 @@
 					$(".jimu-widget-spatialAnalysis").show();
 				})
 
-				// // 可视分析
-				// $('.visibleArea-tool').click(function () {
-				// 	that.map.scene.globe.depthTestAgainstTerrain = true;
-				// 	// 关闭量算
-				// 	topic.publish('closeMeasurement', 'Measurement');
-				// 	// 关闭卷帘
-				// 	topic.publish('closeRolling', 'Rolling');
-				// 	// 关闭分屏
-				// 	topic.publish('closeSplitScreen', 'SplitScreen');
-				// 	// 关闭标记
-				// 	topic.publish('closeSign', 'Sign');
-				// 	topic.publish('closeFlyRoute', 'FlyRoute');
-				// 	$('.jimu-widget-CoorPosition').hide();
-				// 	$('.jimu-widget-MapPrinting').hide();
-				// 	// 关闭可视
-				// 	// topic.publish('closev', '');
-				// 	// 关闭剖面
-				// 	topic.publish('closep', '');
-				// 	$(".jimu-widget-profileAnalysis").hide();
-				// 	$(".jimu-widget-slope").hide();
-				// 	$('.tool-y-box').stop().hide();
-
-				// 	$(".jimu-widget-visibleArea").show();
-				// })
-				// 剖面分析
-				// $('.profileAnalysis-tool').click(function () {
-				// 	that.map.scene.globe.depthTestAgainstTerrain = true;
-				// 	// 关闭量算
-				// 	topic.publish('closeMeasurement', 'Measurement');
-				// 	// 关闭卷帘
-				// 	topic.publish('closeRolling', 'Rolling');
-				// 	// 关闭分屏
-				// 	topic.publish('closeSplitScreen', 'SplitScreen');
-				// 	// 关闭标记
-				// 	topic.publish('closeSign', 'Sign');
-				// 	topic.publish('closeFlyRoute', 'FlyRoute');
-				// 	$('.jimu-widget-CoorPosition').hide();
-				// 	$('.jimu-widget-MapPrinting').hide();
-				// 	// 关闭可视
-				// 	topic.publish('closev', '');
-				// 	// 关闭剖面
-				// 	// topic.publish('closep', '');
-				// 	$(".jimu-widget-visibleArea").hide();
-				// 	$(".jimu-widget-slope").hide();
-				// 	$('.tool-y-box').stop().hide();
-
-				// 	$(".jimu-widget-profileAnalysis").show();
-				// })
-				//坡度分析
-				// $('.slope-tool').click(function () {
-				// 	that.map.scene.globe.depthTestAgainstTerrain = true;
-				// 	// 关闭量算
-				// 	topic.publish('closeMeasurement', 'Measurement');
-				// 	// 关闭卷帘
-				// 	topic.publish('closeRolling', 'Rolling');
-				// 	// 关闭分屏
-				// 	topic.publish('closeSplitScreen', 'SplitScreen');
-				// 	// 关闭标记
-				// 	topic.publish('closeSign', 'Sign');
-				// 	topic.publish('closeFlyRoute', 'FlyRoute');
-				// 	$('.jimu-widget-CoorPosition').hide();
-				// 	$('.jimu-widget-MapPrinting').hide();
-				// 	// 关闭可视
-				// 	topic.publish('closev', '');
-				// 	// 关闭剖面
-				// 	topic.publish('closep', '');
-				// 	$(".jimu-widget-visibleArea").hide();
-				// 	$(".jimu-widget-profileAnalysis").hide();
-				// 	$('.tool-y-box').stop().hide();
-
-				// 	$(".jimu-widget-slope").show();
-				// 	topic.publish('getbeginSlope', this.beginSlope);
-				// })
-
 			},
 
 			closeToolBox: function (item) {
@@ -321,19 +247,11 @@
 				}
 			},
 			closefenxi: function () {
-				// 关闭可视
-				topic.publish('closev', '');
-				// 关闭剖面
-				topic.publish('closep', '');
-				// 关闭坡度
-				topic.publish('closes', '');
-				$(".jimu-widget-profileAnalysis").hide();
-				$(".jimu-widget-slope").hide();
-				$(".jimu-widget-visibleArea").hide();
+				// 关闭空间分析页面
 				$(".jimu-widget-spatialAnalysis").hide();
-				//清除实体
-				this.map.entities.removeAll();
-				$(".jimu-widget-modelDiagram").hide();
+				// 关闭空间分析子元素
+				topic.publish('closeOnceUse');
+
 
 			},
 			onOpen: function () {
diff --git a/widgets/digTheEarth/Widget.html b/widgets/digTheEarth/Widget.html
index 07a20c4..21687a1 100644
--- a/widgets/digTheEarth/Widget.html
+++ b/widgets/digTheEarth/Widget.html
@@ -5,7 +5,8 @@
             <input id="depth" type="number" value="500" required="required" style="width:90px;" />
         </div>
         <div class="param-item">
-            <button type="button" id="cleardigTheEarth" style="float:right;" class="button black">清除</button>
+            <button type="button" id="beginigTheEarth" class="button black">开挖</button>
+            <button type="button" id="cleardigTheEarth" class="button black">清除</button>
         </div>
     </div>
     <i class="layui-icon closeOUR">
diff --git a/widgets/digTheEarth/Widget.js b/widgets/digTheEarth/Widget.js
index 375d7eb..18c553f 100644
--- a/widgets/digTheEarth/Widget.js
+++ b/widgets/digTheEarth/Widget.js
@@ -27,7 +27,10 @@
                     that.closesDigTheEarth();
                 })
 
-                // that.beginDigTheEarth();
+                $("#beginigTheEarth").click(()=>{
+                    that.beginDigTheEarth();
+
+                })
             },
             beginDigTheEarth: function () {
                 var that = this
diff --git a/widgets/digTheEarth/css/style.css b/widgets/digTheEarth/css/style.css
index 701283a..c622208 100644
--- a/widgets/digTheEarth/css/style.css
+++ b/widgets/digTheEarth/css/style.css
@@ -53,4 +53,20 @@
 
 .jimu-widget-digTheEarth #cleardigTheEarth:hover {
   box-shadow: 2px 2px 20px -2px #1a8ff0;
+}
+
+
+.jimu-widget-digTheEarth #beginigTheEarth {
+  width: 60px;
+  height: 30px;
+  margin-top: 10px;
+  border: 1px solid transparent;
+  background-color: transparent;
+  cursor: pointer;
+  border-radius: 5px;
+  box-shadow: 2px 2px 15px -2px #39A5FD;
+}
+
+.jimu-widget-digTheEarth #beginigTheEarth:hover {
+  box-shadow: 2px 2px 20px -2px #1a8ff0;
 }
\ No newline at end of file
diff --git a/widgets/legends/css/style.css b/widgets/legends/css/style.css
index a1a84ea..522be68 100644
--- a/widgets/legends/css/style.css
+++ b/widgets/legends/css/style.css
@@ -28,9 +28,9 @@
 }
 
 .jimu-widget-legends .main {
-    max-height: 280px !important;
-    overflow: auto;
-    transition: all 0.5s;
+  max-height: 278px !important;
+  overflow: auto;
+  transition: all 0.5s;
 }
 
 .jimu-widget-legends .main .m-init {
diff --git a/widgets/modelDiagram/Widget.html b/widgets/modelDiagram/Widget.html
index 099fd21..4f77738 100644
--- a/widgets/modelDiagram/Widget.html
+++ b/widgets/modelDiagram/Widget.html
@@ -43,11 +43,44 @@
         </tbody>
       </table>
     </div> -->
-  <div class="modelDiagramMain" >
+  <div id="modelDiagramCHONGFU" title="建议先点击单次添加">
+    输入重复多少:
+    <div>
+      <span>宽个数:</span> <input type="number" id="modelDiagramW" value="3" placeholder="经度">
+    </div>
+    <div>
+      <span>宽间距:</span> <input type="number" id="modelDiagramJW" value="1" placeholder="经度">
+    </div>
+    <div>
+      <span>长个数:</span> <input type="number" id="modelDiagramH" value="3" placeholder="经度">
+    </div>
+    <div>
+      <span>长间距:</span> <input type="number" id="modelDiagramJH" value="1" placeholder="经度">
+    </div>
+    <div style="position: relative;top:10px;">
+      <button type="button" id="modelDYes" class="layui-btn layui-btn-normal" layui-btn-xs
+        style="border-radius: 5px;height:30px;line-height: 30px;">确定</button>
+      <button type="button" id="modelDNo" class="layui-btn layui-btn-danger" layui-btn-xs
+        style="border-radius: 5px;height:30px;line-height: 30px;">取消</button>
+    </div>
+  </div>
+  <div class="modelDiagramMain">
+    <button class="layui-btn layui-btn-primary models">
+      人偶
+      <i class="layui-icon layui-icon-down layui-font-12"></i>
+    </button>
     <div class="inp">
-      <input type="number" class="closemodoinput" id="modelDiagramjdu" value="116.00001" placeholder="经度">
-      <input type="number" class="closemodoinput" id="modelDiagramwdu" value="29.00001" placeholder="纬度">
-      <input type="number" class="closemodoinput" id="modelDiagramgdu" value="1000" placeholder="高度">
+      <div>
+        <span>经度:</span> <input type="number" class="closemodoinput" id="modelDiagramjdu" value="116.00001"
+          placeholder="经度">
+      </div>
+      <div>
+        <span>纬度:</span> <input type="number" class="closemodoinput" id="modelDiagramwdu" value="28.973468"
+          placeholder="经度">
+      </div>
+      <div>
+        <span>高度:</span> <input type="number" class="closemodoinput" id="modelDiagramgdu" value="1000" placeholder="经度">
+      </div>
     </div>
     <div class="seemodo">跟踪</div>
     <div class="closemodo">添加/删除</div>
diff --git a/widgets/modelDiagram/Widget.js b/widgets/modelDiagram/Widget.js
index 434f01e..917226e 100644
--- a/widgets/modelDiagram/Widget.js
+++ b/widgets/modelDiagram/Widget.js
@@ -47,36 +47,115 @@
 				$('.jimu-widget-modelDiagram').find('.always').unbind("mousedown").bind("mousedown", function (event) {
 					if (event.which == 3) {
 						// console.log('you');
-						that.getInput();
-						var as = that.a - 0.00004
-							, bs = that.b - 0.00004;
-						for (var i = 1; i <= 7; i++) {
-							var aa = as * 100000;
-							aa += i;
-							aa = aa / 100000;
-							for (var n = 1; n <= 6; n++) {
-								var bb = bs * 100000;
-								bb += n;
-								bb = bb / 100000;
-								// console.log(aa,bb)
-								that.always(aa, bb);
-							}
+						if ($("#modelDiagramCHONGFU").is(":hidden")) {//判断是否隐藏
+							$('#modelDiagramCHONGFU').show();
+							$('#modelDYes').click(() => {
+								that.getInput();
+								var W = $('#modelDiagramW').val()
+									, H = $('#modelDiagramH').val()
+									, JW = $('#modelDiagramJW').val()
+									, JH = $('#modelDiagramJH').val()
+									, as = that.a - (0.00001 * ((+H + 1) / 2)) * JH
+									, bs = that.b - (0.00001 * ((+W + 1) / 2)) * JW;
+								for (var i = 1; i <= H; i++) {
+									var aa = as * 100000;
+									aa += i * JH;
+									aa = aa / 100000;
+									for (var n = 1; n <= W; n++) {
+										var bb = bs * 100000;
+										bb += n * JW;
+										bb = bb / 100000;
+										// console.log(aa,bb)
+										that.always(aa, bb);
+									}
+								}
+							})
+							$('#modelDNo').click(() => {
+								$('#modelDiagramCHONGFU').hide();
+							})
 						}
-
 					} else if (event.which == 1) {
 						// console.log('zuo');
 					}
 				});
+
 				$('.jimu-widget-modelDiagram').find('.closesmodelDiagram').click(() => {
 					$('.jimu-widget-modelDiagram').hide();
 					that.stopPlay();
 				})
+				//初演示
+				layui.use(['dropdown', 'util', 'layer', 'table'], function () {
+					var dropdown = layui.dropdown
+						, layer = layui.layer;
+					dropdown.render({
+						elem: '.models'
+						, data: [{
+							title: '人偶'
+							, value: './images/gltf/Cesium_Man.glb'
+							, id: 100
+							, num: [3, 3, 1, 1]
+						}, {
+							title: '飞机'
+							, value: './images/gltf/Cesium_Air.glb'
+							, id: 101
+							, num: [3, 3, 30, 30]
+						}, {
+							title: '飞机2'
+							, value: './images/gltf/CesiumDrone.glb'
+							, id: 102
+							, num: [3, 3, 7, 7]
+						}, {
+							title: '装甲车'
+							, value: './images/gltf/GroundVehicle.glb'
+							, id: 103
+							, num: [3, 3, 4, 9]
+						}, {
+							title: '热气球'
+							, value: './images/gltf/CesiumBalloon.glb'
+							, id: 104
+							, num: [3, 3, 1, 1]
+						}, {
+							title: '牛奶车'
+							, value: './images/gltf/CesiumMilkTruck.glb'
+							, id: 105
+							, num: [3, 3, 1, 1]
+						}, {
+							title: '牛奶车gltf'
+							, value: './images/gltf/CesiumMilkTruck.gltf'
+							, id: 106
+							, num: [3, 3, 1, 1]
+						}, {
+							title: '人gltf'
+							, value: './images/gltf/walk.gltf'
+							, id: 107
+							, num: [3, 3, 1, 1]
+						}
+						]
+						, click: function (obj) {
+							layer.tips('选择了:' + obj.title, this.elem, { tips: [1, '#5FB878'] });
+							that.urls = obj.value;
+							var dom = $('.models');
+							dom.empty();
+							var str = `${obj.title} <i class="layui-icon layui-icon-down layui-font-12"></i>`
+							dom.append(str);
+							that.setNum(obj.num)
+						}
+					});
+				});
+
 
 			},
-			beginCesium: function (a = 116.058987, b = 28.973468, g = 1000, once = 'always') {
+			urls: './images/gltf/Cesium_Man.glb',
+			setNum: function (num) {
+				$('#modelDiagramW').val(num[0])
+				$('#modelDiagramH').val(num[1])
+				$('#modelDiagramJW').val(num[2])
+				$('#modelDiagramJH').val(num[3])
+			},
+			beginCesium: function (a, b, g, once) {
 				var viewer = this.map
 					, that = this
-					, url = "./images/gltf/Cesium_Man.glb";
+					, url = that.urls;
 
 				//静态
 				// var position = Cesium.Cartesian3.fromDegrees(116.058987, 28.973468, 1000);
diff --git a/widgets/modelDiagram/css/style.css b/widgets/modelDiagram/css/style.css
index cd52983..680247d 100644
--- a/widgets/modelDiagram/css/style.css
+++ b/widgets/modelDiagram/css/style.css
@@ -1,7 +1,7 @@
 .jimu-widget-modelDiagram {
   position: absolute !important;
   font-size: 14px;
-  height: 120px !important;
+  height: 180px !important;
   width: 280px !important;
   /* 240px */
   background: rgb(254, 254, 254);
@@ -36,15 +36,18 @@
 
 .jimu-widget-modelDiagram .modelDiagramMain {
   width: 230px;
-  height: 110px;
+  height: 160px;
   display: flex;
   align-items: center;
   justify-content: center;
   flex-direction: column;
   position: absolute;
-  top: 1.5px;
-  left: 10px;
+  top: 8px;
+  left: 15px;
   cursor: pointer;
+}
+.jimu-widget-modelDiagram .modelDiagramMain button{
+  line-height: 12px;
 }
 
 .jimu-widget-modelDiagram .inp {
@@ -58,7 +61,7 @@
 }
 
 .jimu-widget-modelDiagram .inp .closemodoinput {
-  width: 200px;
+  width: 180px;
 }
 
 .jimu-widget-modelDiagram .but {
@@ -102,4 +105,25 @@
 
 .jimu-widget-modelDiagram .closesmodelDiagram:hover {
   color: red;
+}
+
+#modelDiagramCHONGFU{
+  z-index: 20;
+  position: absolute;
+  top: 180px;
+  left: 140px;
+  width: 170px;
+  height: 150px;
+  background-color: #fff;
+  display: flex;
+  align-items: center;
+  justify-content: center;
+  flex-direction: column;
+  border-radius: 5px ;
+  box-shadow: 0px 0px 5px #378ef1;
+  display: none;
+}
+
+#modelDiagramCHONGFU input{
+  width: 80px;
 }
\ No newline at end of file
diff --git a/widgets/null/Widget.js b/widgets/null/Widget.js
index a88b607..f6122a2 100644
--- a/widgets/null/Widget.js
+++ b/widgets/null/Widget.js
@@ -32,12 +32,12 @@
 
             },
             beginNull: function () {
-                console.log('kaishi');
+                console.log(`${this.name}--kaishi`);
                 var that = this;
 
             },
             closesNull: function (froms) {
-                console.log('guanbi');
+                console.log(`${this.name}--guanbi`);
             },
             onOpen: function () {
 
diff --git a/widgets/null/css/style.css b/widgets/null/css/style.css
index c0e2490..ce85f40 100644
--- a/widgets/null/css/style.css
+++ b/widgets/null/css/style.css
@@ -24,4 +24,19 @@
 
 .jimu-widget-null .closeOUR:hover {
   color: red;
-}
\ No newline at end of file
+}
+
+/* .jimu-widget-null .but {
+  line-height: 30px;
+  width: 80px;
+  height: 30px;
+  font-size: 16px;
+  border-radius: 5px;
+  box-shadow: 2px 2px 15px -5px #378ef1;
+   border: 1px solid transparent;
+  background-color: #fff;
+}
+
+.jimu-widget-null .but:hover {
+  box-shadow: 2px 2px 25px -5px #1679eb;
+} */
\ No newline at end of file
diff --git a/widgets/profileAnalysis/css/style.css b/widgets/profileAnalysis/css/style.css
index ec68269..fef64b5 100644
--- a/widgets/profileAnalysis/css/style.css
+++ b/widgets/profileAnalysis/css/style.css
@@ -36,9 +36,7 @@
 }
 
 .jimu-widget-profileAnalysis #toolbar #chooseViews:hover, .jimu-widget-profileAnalysis #toolbar #clears:hover {
-  background-color: #3E9FFC;
-  box-shadow: 3px 3px 20px -4px #000000;
-  filter: grayscale(100%) brightness(200%);
+  box-shadow: 3px 3px 20px -5px #1a8fee;
 }
 
 .jimu-widget-profileAnalysis #toolbar .closes {
diff --git a/widgets/searchL/Widget.html b/widgets/searchL/Widget.html
index e638988..0e586af 100644
--- a/widgets/searchL/Widget.html
+++ b/widgets/searchL/Widget.html
@@ -1,9 +1,10 @@
 <div>
+	<div class="ccsliu"></div>
 	<div id="i-f-gjz" class="input-font"
 		style="border-radius: 5px 0 0px 5px;width:4.7rem;background-color: #3E9FFC;color: #fff;">关键字</div>
 	<div id="i-f-zb" class="input-font" style="width:3.5rem">坐标</div>
 	<!-- <input type="text" placeholder="输入关键字以搜索" class="input-sm /> -->
-	<input id="local_data" autocomplete="off"  data-provide="typeahead" type="text" class="input-sms"
+	<input id="local_data" autocomplete="off" data-provide="typeahead" type="text" class="input-sms"
 		placeholder="输入关键字以搜索: 鄱阳湖" />
 	<div id="inputTwo">
 		<input id="local_data1" autocomplete="off" data-provide="typeahead" type="number" class="input-sms1"
diff --git a/widgets/searchL/Widget.js b/widgets/searchL/Widget.js
index 61b6aa1..0c7a8ac 100644
--- a/widgets/searchL/Widget.js
+++ b/widgets/searchL/Widget.js
@@ -33,6 +33,51 @@
 			startup: function () {
 				var that = this;
 
+				function createTooltip(frameDiv) {//抄录createTooltip函数
+
+					var tooltip = function (frameDiv) {
+
+						var div = document.createElement('DIV');
+						div.className = "twipsy right";
+
+						var arrow = document.createElement('DIV');
+						arrow.className = "twipsy-arrow";
+						div.appendChild(arrow);
+
+						var title = document.createElement('DIV');
+						title.className = "twipsy-inner";
+						div.appendChild(title);
+
+						this._div = div;
+						this._title = title;
+						this.message = '';
+
+						// add to frame div and display coordinates
+						frameDiv.appendChild(div);
+						var that = this;
+						div.onmousemove = function (evt) {
+							that.showAt({ x: evt.clientX, y: evt.clientY }, that.message);
+						};
+					};
+
+					tooltip.prototype.setVisible = function (visible) {
+						this._div.style.display = visible ? 'block' : 'none';
+					};
+
+					tooltip.prototype.showAt = function (position, message) {
+						if (position && message) {
+							this.setVisible(true);
+							this._title.innerHTML = message;
+							this._div.style.left = position.x + 10 + "px";
+							this._div.style.top = (position.y - this._div.clientHeight / 2) + "px";
+							this.message = message;
+						}
+					};
+
+					return new tooltip(frameDiv);
+				}
+				window.MYcreateTooltip = createTooltip;//全局使用
+
 				//关键词&&坐标
 				$("#i-f-gjz").click(function () {
 					that.states = 'one';
@@ -234,7 +279,7 @@
 				this.mountainHandler.setInputAction(lang.hitch(this, this.clickHand), Cesium.ScreenSpaceEventType.LEFT_CLICK);
 			},
 			// 注册鼠标左键单击事件
-			clickHand: function clickHand(data) {
+			clickHand: function clickHand(data) {// 全局鼠标点击图标事件 渲染地图图标时 添加个相对应的数组储存该对象数据 通过数组是否存在判断点击的项目
 				var pickedObjects = this.map.scene.drillPick(data.position) || 0;
 				// console.log(pickedObjects);
 				if (pickedObjects.length != 0) {
@@ -303,6 +348,16 @@
 
 						} else if (pickedObjects[0].primitive.id.SQLData != undefined) {//SQL查询图标点击事件
 							// console.log('SQLData')
+						} else if (pickedObjects[0].primitive.id.spatialQueryData != undefined) {//SQL查询图标点击事件
+							var data = pickedObjects[0].primitive.id.spatialQueryData;
+							data.name = pickedObjects[0].primitive.id.name;
+							data.dom = pickedObjects[0].primitive.id.description;
+							// console.log(data);
+							var doms = $('#spatialQueryValuemain');
+							var domo = $('#spatialQueryValue');
+							doms.empty();
+							doms.append('<div>name:' + data.name + '<div/>' + data.dom._value);
+							domo.show();
 						}
 					}
 				}
diff --git a/widgets/searchL/css/style.css b/widgets/searchL/css/style.css
index 3b48528..5057954 100644
--- a/widgets/searchL/css/style.css
+++ b/widgets/searchL/css/style.css
@@ -19,6 +19,15 @@
   align-items: center;
 }
 
+.jimu-widget-searchL .ccsliu {
+  position: fixed;
+  top: 0;
+  background-color: transparent;
+  width: 20px;
+  height: 20px;
+  cursor: help;
+}
+
 .jimu-widget-searchL .input-font {
   /* width: 3rem; */
   height: 35px;
@@ -63,8 +72,7 @@
   height: calc(100% - 40px);
 }
 
-.jimu-widget-searchL .searchLMain .layui-tab-content .layui-tab-item,
-.jimu-widget-searchL .searchLMain .layui-tab-content .layui-tab-item .layui-form {
+.jimu-widget-searchL .searchLMain .layui-tab-content .layui-tab-item, .jimu-widget-searchL .searchLMain .layui-tab-content .layui-tab-item .layui-form {
   height: 100%;
 }
 
@@ -95,28 +103,24 @@
   border-left: 1px solid rgba(0, 0, 0, .2);
 }
 
-.jimu-widget-searchL .input-sms1::-webkit-input-placeholder,
-.jimu-widget-searchL .input-sms::-webkit-input-placeholder {
+.jimu-widget-searchL .input-sms1::-webkit-input-placeholder, .jimu-widget-searchL .input-sms::-webkit-input-placeholder {
   color: #afafaf;
   font-size: 14px;
 }
 
-.jimu-widget-searchL .input-sms1::-moz-placeholder,
-.jimu-widget-searchL .input-sms::-moz-placeholder {
+.jimu-widget-searchL .input-sms1::-moz-placeholder, .jimu-widget-searchL .input-sms::-moz-placeholder {
   /* Mozilla Firefox 19+ */
   color: #afafaf;
   font-size: 14px;
 }
 
-.jimu-widget-searchL .input-sms1:-moz-placeholder,
-.jimu-widget-searchL .input-sms:-moz-placeholder {
+.jimu-widget-searchL .input-sms1:-moz-placeholder, .jimu-widget-searchL .input-sms:-moz-placeholder {
   /* Mozilla Firefox 4 to 18 */
   color: #afafaf;
   font-size: 14px;
 }
 
-.jimu-widget-searchL .input-sms1::-ms-input-placeholder,
-.jimu-widget-searchL .input-sms::-ms-input-placeholder {
+.jimu-widget-searchL .input-sms1::-ms-input-placeholder, .jimu-widget-searchL .input-sms::-ms-input-placeholder {
   color: #afafaf;
   font-size: 14px;
 }
@@ -148,8 +152,7 @@
   background-color: #ffffff;
 }
 
-.jimu-widget-searchL .layui-tab-brief>.layui-tab-more li.layui-this:after,
-.layui-tab-brief>.layui-tab-title .layui-this:after {
+.jimu-widget-searchL .layui-tab-brief>.layui-tab-more li.layui-this:after, .layui-tab-brief>.layui-tab-title .layui-this:after {
   border-bottom: 2px solid #39A5FD;
 }
 
@@ -186,6 +189,7 @@
   position: relative;
   top: -4px;
 } */
+
 .jimu-widget-searchL .searchLMain [id^='layui-table-page'] {
   position: absolute;
   left: 20px;
@@ -229,6 +233,7 @@
 }
 
 /* 隐藏layui表格溢出的详情框 */
-.layui-table-grid-down{
-display: none;
+
+.layui-table-grid-down {
+  display: none;
 }
\ No newline at end of file
diff --git a/widgets/spatialAnalysis/Widget.js b/widgets/spatialAnalysis/Widget.js
index 5604cbd..92882b0 100644
--- a/widgets/spatialAnalysis/Widget.js
+++ b/widgets/spatialAnalysis/Widget.js
@@ -31,50 +31,52 @@
 				var that = this;
 				// 暴露在外的接口
 
-				function createTooltip(frameDiv) {//抄录createTooltip函数
+				topic.subscribe("closeOnceUse", lang.hitch(this, this.closeOnceUse));
 
-					var tooltip = function (frameDiv) {
+				// function createTooltip(frameDiv) {//抄录createTooltip函数
 
-						var div = document.createElement('DIV');
-						div.className = "twipsy right";
+				// 	var tooltip = function (frameDiv) {
 
-						var arrow = document.createElement('DIV');
-						arrow.className = "twipsy-arrow";
-						div.appendChild(arrow);
+				// 		var div = document.createElement('DIV');
+				// 		div.className = "twipsy right";
 
-						var title = document.createElement('DIV');
-						title.className = "twipsy-inner";
-						div.appendChild(title);
+				// 		var arrow = document.createElement('DIV');
+				// 		arrow.className = "twipsy-arrow";
+				// 		div.appendChild(arrow);
 
-						this._div = div;
-						this._title = title;
-						this.message = '';
+				// 		var title = document.createElement('DIV');
+				// 		title.className = "twipsy-inner";
+				// 		div.appendChild(title);
 
-						// add to frame div and display coordinates
-						frameDiv.appendChild(div);
-						var that = this;
-						div.onmousemove = function (evt) {
-							that.showAt({ x: evt.clientX, y: evt.clientY }, that.message);
-						};
-					};
+				// 		this._div = div;
+				// 		this._title = title;
+				// 		this.message = '';
 
-					tooltip.prototype.setVisible = function (visible) {
-						this._div.style.display = visible ? 'block' : 'none';
-					};
+				// 		// add to frame div and display coordinates
+				// 		frameDiv.appendChild(div);
+				// 		var that = this;
+				// 		div.onmousemove = function (evt) {
+				// 			that.showAt({ x: evt.clientX, y: evt.clientY }, that.message);
+				// 		};
+				// 	};
 
-					tooltip.prototype.showAt = function (position, message) {
-						if (position && message) {
-							this.setVisible(true);
-							this._title.innerHTML = message;
-							this._div.style.left = position.x + 10 + "px";
-							this._div.style.top = (position.y - this._div.clientHeight / 2) + "px";
-							this.message = message;
-						}
-					};
+				// 	tooltip.prototype.setVisible = function (visible) {
+				// 		this._div.style.display = visible ? 'block' : 'none';
+				// 	};
 
-					return new tooltip(frameDiv);
-				}
-				window.MYcreateTooltip = createTooltip;//全局使用
+				// 	tooltip.prototype.showAt = function (position, message) {
+				// 		if (position && message) {
+				// 			this.setVisible(true);
+				// 			this._title.innerHTML = message;
+				// 			this._div.style.left = position.x + 10 + "px";
+				// 			this._div.style.top = (position.y - this._div.clientHeight / 2) + "px";
+				// 			this.message = message;
+				// 		}
+				// 	};
+
+				// 	return new tooltip(frameDiv);
+				// }
+				// window.MYcreateTooltip = createTooltip;//全局使用
 
 				var domHtmls = [//默认
 					{
@@ -116,6 +118,9 @@
 
 				that.beginSpatialAnalysis(domHtmls);
 				var isit = false;
+				$('.ccslius').click(() => {
+					isit = false;
+				})
 				$('.ccsliu').dblclick(() => {//测试开关 点击图例其他的图片
 
 					if (isit) {
@@ -149,6 +154,15 @@
 								name: '地形开挖',
 								classs: 'digTheEarth-tool',
 								img: './images/addL/pdpx.png'
+							}, {//方量分析//做好
+								name: '方量分析',
+								classs: 'volumeAnalysis-tool',
+								img: './images/addL/pdpx.png'
+							}
+							, {//空间查询
+								name: '空间查询',
+								classs: 'spatialQuery-tool',
+								img: './images/addL/pdpx.png'
 							}
 							,
 							{//建造模型
@@ -160,15 +174,6 @@
 							{//清除模型
 								name: '清除模型',
 								classs: 'modesssss2222',
-								img: './images/addL/pdpx.png'
-							}
-							, {//地形开挖,//做好
-								name: '地形开挖',
-								classs: 'digTheEarth-tool',
-								img: './images/addL/pdpx.png'
-							}, {//方量分析//做好
-								name: '方量分析',
-								classs: 'volumeAnalysis-tool',
 								img: './images/addL/pdpx.png'
 							}
 						];
@@ -255,7 +260,7 @@
 				$('.digTheEarth-tool').click(function () {
 					that.closeOnceUse('digTheEarth');
 					$(".jimu-widget-digTheEarth").show();
-					topic.publish('beginDigTheEarth', 'beginDigTheEarth');
+					// topic.publish('beginDigTheEarth', 'beginDigTheEarth');
 
 				})
 
@@ -264,6 +269,13 @@
 					that.closeOnceUse('volumeAnalysis');
 					$(".jimu-widget-volumeAnalysis").show();
 					topic.publish('beginVolumeAnalysis', 'beginVolumeAnalysis');
+				})
+
+				//空间查询
+				$('.spatialQuery-tool').click(function () {
+					that.closeOnceUse();
+					$(".jimu-widget-spatialQuery").show();
+					topic.publish('beginSpatialQuery', 'beginSpatialQuery');
 				})
 
 			},
@@ -309,15 +321,17 @@
 				if ($(".jimu-widget-digTheEarth").is(":visible")) {//判断是否隐藏
 					$(".jimu-widget-digTheEarth").hide();
 					topic.publish('closesDigTheEarth');
-					console.log('dakai ')
 				}
-
 				//关闭方量贩分析
 				if ($(".jimu-widget-volumeAnalysis").is(":visible")) {//判断是否隐藏
 					$(".jimu-widget-volumeAnalysis").hide();
 					topic.publish('closesVolumeAnalysis');
 				}
-
+				//关闭空间查询
+				if ($(".jimu-widget-spatialQuery").is(":visible")) {//判断是否隐藏
+					$(".jimu-widget-spatialQuery").hide();
+					topic.publish('closesSpatialQuery');
+				}
 
 
 			},
diff --git a/widgets/spatialQuery/Widget.html b/widgets/spatialQuery/Widget.html
new file mode 100644
index 0000000..0e08912
--- /dev/null
+++ b/widgets/spatialQuery/Widget.html
@@ -0,0 +1,34 @@
+<div title="点击绘画区域,右键结束">
+    <div id='loadingbar' class="spinner">
+        <div class="spinner-container container1">
+            <div class="circle1"></div>
+            <div class="circle2"></div>
+            <div class="circle3"></div>
+            <div class="circle4"></div>
+        </div>
+        <div class="spinner-container container2">
+            <div class="circle1"></div>
+            <div class="circle2"></div>
+            <div class="circle3"></div>
+            <div class="circle4"></div>
+        </div>
+        <div class="spinner-container container3">
+            <div class="circle1"></div>
+            <div class="circle2"></div>
+            <div class="circle3"></div>
+            <div class="circle4"></div>
+        </div>
+    </div>
+    <div id="toolbarSpatialQuery"  style="position: absolute;left: 5px;top: 5px;display: block;">
+        <button type="button" id="searchSpatialQuery" class="button black">绘画查询区域</button>
+    </div>
+    <i class="layui-icon closeOUR">
+        &#x1006;
+    </i></span>
+    <div id="spatialQueryValue" title="数据展示">
+        <div id="spatialQueryValuemain"></div>
+        <i class="layui-icon closeOURspatialQueryValue">
+            &#x1006;
+        </i></span>
+    </div>
+</div>
\ No newline at end of file
diff --git a/widgets/spatialQuery/Widget.js b/widgets/spatialQuery/Widget.js
new file mode 100644
index 0000000..a45b572
--- /dev/null
+++ b/widgets/spatialQuery/Widget.js
@@ -0,0 +1,273 @@
+define([
+    'dojo/_base/declare',
+    'dojo/_base/lang',
+    'dojo/_base/array',
+    'dojo/_base/html',
+    'dojo/topic',
+    'jimu/BaseWidget',
+],
+    function (declare,
+        lang,
+        array,
+        html,
+        topic,
+        BaseWidget
+    ) {
+        return declare([BaseWidget], {
+            baseClass: 'jimu-widget-spatialQuery',
+            name: 'spatialQuery',
+            flag: false,
+            startup: function () {
+                var that = this;
+                topic.subscribe("beginSpatialQuery", lang.hitch(this, this.beginSpatialQuery));
+                topic.subscribe("closesSpatialQuery", lang.hitch(this, this.closesSpatialQuery));
+                // topic.publish('getbeginSlope', that.beginSlope);
+                $(`.${that.baseClass}`).find('.closeOUR').click(() => {
+                    $(`.${that.baseClass}`).hide();
+                    that.closesSpatialQuery();
+                })
+
+                $(`.${that.baseClass}`).find('.closeOURspatialQueryValue').click(() => {
+                    $(`#spatialQueryValue`).hide();
+                    $(`#spatialQueryValuemain`).empty();
+                })
+
+
+                // that.beginSpatialQuery();
+
+            },
+            beginSpatialQuery: function () {
+                console.log(`${this.name}--kaishi`);
+                var that = this
+                    , viewer = that.map;
+
+
+                var scene = viewer.scene;
+                scene.shadowMap.darkness = 1.275; //设置第二重烘焙纹理的效果(明暗程度)
+                scene.skyAtmosphere.brightnessShift = 0.4;  //修改大气的亮度
+                scene.debugShowFramesPerSecond = false;
+                scene.hdrEnabled = false;
+                scene.sun.show = false;
+                // 01设置环境光的强度-新处理CBD场景
+                scene.lightSource.ambientLightColor = new Cesium.Color(0.65, 0.65, 0.65, 1);
+                // 添加光源
+                var position1 = new Cesium.Cartesian3.fromDegrees(116.261209157595, 39.3042238956531, 480);
+                //光源方向点
+
+                var targetPosition1 = new Cesium.Cartesian3.fromDegrees(116.261209157595, 39.3042238956531, 430);
+                var dirLightOptions = {
+                    targetPosition: targetPosition1,
+                    color: new Cesium.Color(1.0, 1.0, 1.0, 1),
+                    intensity: 0.55
+                };
+                directionalLight_1 = new Cesium.DirectionalLight(position1, dirLightOptions);
+                scene.addLightSource(directionalLight_1);
+                var widget = viewer.cesiumWidget;
+                var IDs = [];
+                var dataUrl = "http://www.supermapol.com/realspace/services/data-cbd/rest/data/featureResults.rjson?returnContent=true";
+
+
+                $('#loadingbar').remove();
+                // try {
+                var promise = scene.open('http://www.supermapol.com/realspace/services/3D-CBDCache20200416/rest/realspace');
+                Cesium.when(promise, function (layer) {
+                    //设置相机位置、视角,便于观察场景
+                    scene.camera.setView({
+                        destination: new Cesium.Cartesian3.fromDegrees(116.4566, 39.9149, 5323.445971240632),
+                        orientation: {
+                            heading: 0,
+                            pitch: -1.5188,
+                            roll: 6.283185307179563
+                        }
+                    });
+                    var handlerPolygon = new Cesium.DrawHandler(viewer, Cesium.DrawMode.Polygon);
+                    var tooltip = window.MYcreateTooltip(document.body);
+                    $("#searchSpatialQuery").click(function () {
+                        // console.log(1)
+                        handlerPolygon.activate();
+                        // console.log(2)
+                    });
+                    handlerPolygon.activeEvt.addEventListener(function (isActive) {
+                        if (isActive == true) {
+                            viewer.enableCursorStyle = false;
+                            viewer._element.style.cursor = '';
+                            $('body').removeClass('drawCur').addClass('drawCur');
+                        } else {
+                            viewer.enableCursorStyle = true;
+                            $('body').removeClass('drawCur');
+                        }
+                    });
+                    handlerPolygon.movingEvt.addEventListener(function (windowPosition) {
+                        if (windowPosition.x < 210 && windowPosition.y < 120) {
+                            tooltip.setVisible(false);
+                            return;
+                        }
+                        if (handlerPolygon.isDrawing) {
+                            tooltip.showAt(windowPosition, '<p>点击确定查询区域中间点</p><p>右键单击结束绘制</p>');
+                        } else {
+                            tooltip.showAt(windowPosition, '<p>点击绘制查询区域第一个点</p>');
+                        }
+                    });
+                    handlerPolygon.drawEvt.addEventListener(function (result) {
+                        tooltip.setVisible(false);
+                        handlerPolygon.polygon.show = false;
+                        handlerPolygon.polyline.show = false;
+
+                        var positions = result.object.positions;
+
+                        var geometries = [];
+                        for (var i = 0; i < positions.length; i++) {
+                            var position = positions[i];
+                            var cartographic = Cesium.Cartographic.fromCartesian(position);
+                            var longitude = Cesium.Math.toDegrees(cartographic.longitude);
+                            var latitude = Cesium.Math.toDegrees(cartographic.latitude);
+
+                            var queryPoint = { // 查询点对象
+                                x: longitude,
+                                y: latitude
+                            };
+                            geometries.push(queryPoint)
+                        }
+
+
+                        query(geometries);
+                    });
+                }, function () {
+                    var title = '加载SCP失败,请检查网络连接状态或者url地址是否正确?';
+                    widget.showErrorPanel(title, undefined, e);
+                });
+                // } catch (e) {
+                //     if (widget._showRenderLoopErrors) {
+                //         var title = '渲染时发生错误,已停止渲染。';
+                //         widget.showErrorPanel(title, undefined, e);
+                //     }
+                // }
+
+                function processCompleted(features) {
+                    var selectedFeatures = features;
+                    // console.log(selectedFeatures);
+                    var color;
+                    IDs = [];
+                    viewer.entities.removeAll();
+                    for (var i = 0; i < selectedFeatures.length; i++) {
+                        var value = selectedFeatures[i].fieldValues["0"];
+                        var feature = selectedFeatures[i];
+                        for (var j = 0; j < feature.fieldNames.length; j++) {
+                            var index = j.toString();
+                            if (j == 0) {
+                                var des = '<table class="cesium-infoBox-defaultTable"><tbody>' + '<tr><th>' + selectedFeatures[i].fieldNames["0"] + '</th><td>' + selectedFeatures[i].fieldValues["0"] + '</td></tr>';
+                            } else if (j == feature.fieldNames.length - 1) {
+                                des += '<tr><th>' + selectedFeatures[i].fieldNames[index] + '</th><td>' + selectedFeatures[i].fieldValues[index] + '</td></tr>' + "</tbody></table>";
+                            } else {
+                                des += '<tr><th>' + selectedFeatures[i].fieldNames[index] + '</th><td>' + selectedFeatures[i].fieldValues[index] + '</td></tr>';
+                            }
+                        }
+                        viewer.entities.add({
+                            position: Cesium.Cartesian3.fromDegrees(parseFloat(selectedFeatures[i].fieldValues["12"]), parseFloat(selectedFeatures[i].fieldValues["13"]), parseFloat(selectedFeatures[i].fieldValues["16"])),
+                            billboard: {
+                                image: './images/addL/dworgin.png',
+                                width: 30,
+                                height: 40,
+
+                            },
+                            name: selectedFeatures[i].fieldValues["11"],
+                            description: des,
+                            spatialQueryData: selectedFeatures[i]
+                        });
+                        IDs.push(parseInt(value) + 11);
+                    }
+                    // console.log(des);
+                    var buildingLayer = scene.layers.find("Building@CBD");
+                    if (IDs.length > 0) {
+                        buildingLayer.setSelection(IDs);
+                    }
+                }
+
+                function query(queryPoints) {
+                    var queryObj = {
+                        "getFeatureMode": "SPATIAL",
+                        "spatialQueryMode": "CONTAIN",
+                        "datasetNames": ["二维数据:Building"],
+                        "geometry": {
+                            // id: 0,
+                            // style: null,
+                            // parts: [queryPoints.length],
+                            points: queryPoints,
+                            type: "REGION"
+                        }
+                    };
+
+                    var queryData = JSON.stringify(queryObj); // 转化为JSON字符串作为查询参数
+
+                    $.ajax({
+                        type: "post",
+                        url: dataUrl,
+                        data: queryData,
+                        success: function (result) {
+                            var resultObj = JSON.parse(result);
+                            // console.log(resultObj);
+                            if (resultObj.featureCount > 0) {
+                                processCompleted(resultObj.features);
+                            }
+                        },
+                        error: function (msg) {
+                            console.log(msg);
+                        },
+                        // complete: function () {
+                        //     console.log("complete");
+                        // }
+                    })
+                }
+
+                function processFailed(e) {
+                    alert(e.error.errorMsg);
+                }
+
+                that.promise = promise;
+            },
+            promise: '',
+            closesSpatialQuery: function (froms) {
+                var that = this
+                    , viewer = that.map;
+                viewer.entities.removeAll();
+                $(`#spatialQueryValue`).hide();
+                $(`#spatialQueryValuemain`).empty();
+
+                Cesium.when(that.promise, function (layer) {
+                    for (var i = 0; i < layer.length; i++) {
+                        that.map.scene.layers.remove(layer[i].name)
+                    }
+                })
+
+                console.log(`${this.name}--guanbi`);
+            },
+            onOpen: function () {
+
+            },
+
+            onClose: function () {
+                //面板关闭的时候触发 (when this panel is closed trigger)
+                console.log('jies')
+            },
+
+            onMinimize: function () {
+                this.resize();
+            },
+
+            onMaximize: function () {
+                this.resize();
+            },
+
+            resize: function () {
+
+            },
+
+            destroy: function () {
+                //销毁的时候触发
+                //todo
+                //do something before this func
+                this.inherited(arguments);
+            }
+
+        });
+    });
diff --git a/widgets/spatialQuery/css/style.css b/widgets/spatialQuery/css/style.css
new file mode 100644
index 0000000..2c23400
--- /dev/null
+++ b/widgets/spatialQuery/css/style.css
@@ -0,0 +1,67 @@
+.jimu-widget-spatialQuery {
+  position: fixed !important;
+  top: 72px !important;
+  right: 388px !important;
+  width: 160px !important;
+  height: 40px !important;
+  background-color: rgb(255, 255, 255);
+  font-size: 14px;
+  color: rgb(0, 0, 0);
+  z-index: 12 !important;
+  border-radius: 10px;
+  display: none;
+  box-shadow: 0 0 8px #fff;
+  padding: 0px 5px !important;
+}
+
+.jimu-widget-spatialQuery .closeOUR {
+  position: absolute;
+  right: 5px;
+  top: calc(50% - 9px);
+  font-size: 18px;
+  cursor: pointer;
+}
+
+.jimu-widget-spatialQuery .closeOUR:hover {
+  color: red;
+}
+
+.jimu-widget-spatialQuery #searchSpatialQuery {
+  line-height: 30px;
+  width: 120px;
+  height: 30px;
+  font-size: 16px;
+  border-radius: 5px;
+  box-shadow: 2px 2px 15px -5px #378ef1;
+  border: 1px solid transparent;
+  background-color: #fff;
+}
+
+.jimu-widget-spatialQuery #searchSpatialQuery:hover {
+  box-shadow: 2px 2px 25px -5px #1679eb;
+}
+
+.jimu-widget-spatialQuery #spatialQueryValue {
+  width: 320px;
+  height: 320px;
+  background-color: #fff;
+  position: relative;
+  top: 50px;
+  left: -165px;
+  box-shadow: 0 0 8px #fff;
+  border-radius: 10px;
+  padding: 8px;
+  display: none;
+}
+
+.jimu-widget-spatialQuery .closeOURspatialQueryValue {
+  position: absolute;
+  right: 5px;
+  top: 5px;
+  font-size: 18px;
+  cursor: pointer;
+}
+
+.jimu-widget-spatialQuery .closeOURspatialQueryValue:hover {
+  color: red;
+}
\ No newline at end of file
diff --git a/widgets/spatialQuery/manifest.json b/widgets/spatialQuery/manifest.json
new file mode 100644
index 0000000..4cc23b7
--- /dev/null
+++ b/widgets/spatialQuery/manifest.json
@@ -0,0 +1,17 @@
+{
+  "name": "spatialQuery",
+  "2D": true,
+  "3D": true,
+  "platform": "HTML",
+  "version": "2.10",
+  "wabVersion": "2.10",
+  "author": "liuyg",
+  "description": "",
+  "copyright": "",
+  "license": "",
+  "properties": {
+    "hasConfig": false,
+    "inPanel": false,
+    "hasVersionManager": false
+  }
+}
\ No newline at end of file
diff --git a/widgets/spatialQuery/nls/es/strings.js b/widgets/spatialQuery/nls/es/strings.js
new file mode 100644
index 0000000..1724d93
--- /dev/null
+++ b/widgets/spatialQuery/nls/es/strings.js
@@ -0,0 +1,5 @@
+define(
+   ({
+    _widgetLabel: "spatialQuery"
+  })
+);
\ No newline at end of file
diff --git a/widgets/spatialQuery/nls/strings.js b/widgets/spatialQuery/nls/strings.js
new file mode 100644
index 0000000..c1ec2c3
--- /dev/null
+++ b/widgets/spatialQuery/nls/strings.js
@@ -0,0 +1,7 @@
+define({
+  root: ({
+    _widgetLabel: "spatialQuery"
+  }),
+  "es": 1,
+  "zh-cn": 1
+});
\ No newline at end of file
diff --git a/widgets/spatialQuery/nls/zh-cn/strings.js b/widgets/spatialQuery/nls/zh-cn/strings.js
new file mode 100644
index 0000000..f8a6bf0
--- /dev/null
+++ b/widgets/spatialQuery/nls/zh-cn/strings.js
@@ -0,0 +1,5 @@
+define(
+   ({
+    _widgetLabel: "空间查询"
+  })
+);
\ No newline at end of file
diff --git a/widgets/visibleArea/css/style.css b/widgets/visibleArea/css/style.css
index d3055f3..ccf4edc 100644
--- a/widgets/visibleArea/css/style.css
+++ b/widgets/visibleArea/css/style.css
@@ -56,9 +56,7 @@
 }
 
 .jimu-widget-visibleArea #toolbar #chooseView:hover, .jimu-widget-visibleArea #toolbar #clear:hover {
-  background-color: #3E9FFC;
-  box-shadow: 3px 3px 20px -4px #000000;
-  filter: grayscale(100%) brightness(200%);
+  box-shadow: 3px 3px 20px -5px #1696ff;
 }
 
 .jimu-widget-visibleArea #toolbar .closes {

--
Gitblit v1.9.3