| 
					
				 | 
			
			
				@@ -3,6 +3,7 @@ function CityLandAction(context, id){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     this.id = id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     this.selected = {} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     this.tempVectorLayer = null 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    this.popup = null 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     this.obj = new CityLand({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         url : context.local_wmts_path, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         projection: context.projection 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -14,8 +15,13 @@ CityLandAction.prototype = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     startStatus : false, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     createStatus : false, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     create(){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        let that = this 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         this.obj.getTileLayer() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         this.tempVectorLayer = this.loadTempVectorLayer() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        this.popup = new Popup({map: this.context.currentMap, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            close(){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                that.tempVectorLayer.getSource().clear() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            }}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         this.createStatus = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     start(){ 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -38,6 +44,8 @@ CityLandAction.prototype = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         console.log("tempVectorLayer cleared") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         this.context.clicks[this.id] = null 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         console.log("remove click") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        this.popup._close() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        console.log("close popup") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         this.startStatus = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     click(event, that){ 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -48,12 +56,29 @@ CityLandAction.prototype = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         that.clickLock = true 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         let layerName = that.obj.wmsData.params.LAYER.substring(that.obj.wmsData.params.LAYER.indexOf(":") + 1) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         that.context.getInfo(layerName, event.coordinate, function(res){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            let feature = new ol.Feature({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                geometry: that.context.wkt.readGeometry(res.data.geom.substring(res.data.geom.indexOf(";") +1 )).transform("EPSG:4526","EPSG:4326") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            that.tempVectorLayer.getSource().clear() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            that.tempVectorLayer.getSource().addFeature(feature) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            that.clickLock = false 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                console.log(res.data) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                let geometry = that.context.wkt.readGeometry(res.data.wkt) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                let area = geometry.getArea() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                area = (area + area / 2) / 1000 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                res.data["area"] = area.toFixed(2) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                let feature = new ol.Feature({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    geometry: geometry.transform("EPSG:4526","EPSG:4326") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                for(let key in res.data){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    if(key != "wkt"){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        feature.set(key, res.data[key]) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                that.tempVectorLayer.getSource().clear() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                that.tempVectorLayer.getSource().addFeature(feature) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                that.popup.show(ol.extent.getCenter(feature.getGeometry().getExtent()), that.getInfoHtml(feature)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            }catch (e){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                console.log(e) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            }finally { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                that.clickLock = false 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         },function(){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             that.clickLock = false 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         }) 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -77,6 +102,27 @@ CityLandAction.prototype = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    landType:{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        0:"其他", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        1:"湿地", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        2:"耕地", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        3:"种植", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        4:"林地", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        5:"草地", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        6:"水域", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    },getInfoHtml(feature){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        let html = "" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        let data = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            "地块类别":this.landType[feature.get("gridcode")], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            "地块图斑编号":feature.get("id"), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            "地块面积(亩)":feature.get("area"), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            "地块周长(米)":"10000", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        for(let key in data){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            html += "<div class='layui-row'><div class='lab' >"+key+"</div><div class='val' >"+data[key]+"</div></div>" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return html 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -138,6 +184,8 @@ CityLand.prototype = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         this.layerData.layer = new ol.layer.Tile({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             source: this.layerData.source, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             zIndex: 2, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            minZoom: 8, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            maxZoom: 14 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 |