| 
					
				 | 
			
			
				@@ -1,606 +0,0 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import Layer from 'ol/layer/Vector' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import Source from 'ol/source/Vector' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import Select from 'ol/interaction/Select.js'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import {singleClick} from 'ol/events/condition' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import * as olEvents from 'ol/events'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import config from "@/api/config.js" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import * as KMap from '@/utils/ol-map/KMap'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import {getRadius} from "./util"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import Style from "ol/style/Style"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import Photo from "ol-ext/style/Photo"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import Icon from "ol/style/Icon"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import {base_img_url2} from "../../api/config"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import Stroke from "ol/style/Stroke"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import * as util from "@/common/ol_common.js" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import {newAreaFeature, newAreaPoint, newPolymerFeature, newPoint, newRegionFeature} from "../zhgl/map"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import { GARDEN_STATUS_ENUM as STATUS_ENUM } from "@/api/enum.js" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import VectorLayer from 'ol/layer/Vector.js'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import Polygon from 'ol/geom/Polygon.js'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import MultiPolygon from 'ol/geom/MultiPolygon.js'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import Point from 'ol/geom/Point.js'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import {Cluster, OSM, Vector as VectorSource} from 'ol/source.js'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import {boundingExtent} from 'ol/extent.js'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    Circle as CircleStyle, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    Fill, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    Text, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  } from 'ol/style.js'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  import {unByKey} from 'ol/Observable'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  import { reactive } from 'vue'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  let resize = '?x-oss-process=image/resize,w_400'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  export const treeItem = reactive({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    treeId: "" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-const styleCache = {}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- * @description 智能巡园地图层对象 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-class ZnxyMap { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    constructor(){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        let that = this 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        let vectorStyle = new KMap.VectorStyle() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        this.imgStyleCache = {} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        this.gardenLayer =  new KMap.VectorLayer("gardenLayer",1000,{minZoom:8,maxZoom:15,style:(feature)=> { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                let k = feature.get("organId") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                let name = feature.get("name") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                if(name.length > 5){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    name = name.substr(0,5) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                let name2 = "" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                for(let i=0;i<name.length;i++){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    name2+=name[i]+"\n" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                let style = that.imgStyleCache[k]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                if(!style){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    style = [] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    // let style1 = new Style ({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    //     image: new Photo ({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    //         src: require('@/assets/yezi.png'), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    //         radius: 40, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    //         shadow: 0, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    //         crop:true, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    //         kind:"circle", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    //         onload: function() { that.gardenLayer.layer.changed(); }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    //         displacement: [0, 50], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    //         stroke: new Stroke({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    //             width: 2, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    //             color: '#fdfcfc' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    //         }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    //     }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    // }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    let style2 = new Style ({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        image: new Icon ({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            src: config.base_img_url3 + "birdseye-look-mini/foster/gardenNameBox.png", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            scale: 1, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            displacement:[0, 80] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        }), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        text:new Text({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            text:name2, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            font:"bold 14px serif", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            offsetX:0, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            offsetY:-70, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            fill: new Fill({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                color: "#000000" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            }), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            stroke: new Stroke({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                color: "#000000", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                width: 1, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            }), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    style.push(style2) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    // style.push(vectorStyle.getPointTextStyle(feature.get("organId")+"", "#120046","#FFFFFF",2, 30)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    // style.push(style1) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    that.imgStyleCache[k] = style 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                return style 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        this.gardenPointLayer = new KMap.VectorLayer("gardenLayer",1000,{minZoom:0,maxZoom:8, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            source:new Cluster({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                distance: 5, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                // minDistance: 60, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                source: new VectorSource({}) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            }), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            style:(feature)=>{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                let style1 = new Style ({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    image: new Photo ({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        src: require('@/assets/star1.png'), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        radius: 10, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        shadow: 0, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        crop:true, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        onload: function() { that.gardenLayer.layer.changed(); }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        displacement: [0, 0], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        stroke: new Stroke({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            width: 2, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            color: '#fdfcfc00' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                return [style1] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        this.areaLayer = new KMap.VectorLayer("areaLayer",999,{minZoom:15,style:(f)=> vectorStyle.getPolygonStyle("#032833" + "80", "#0BFDF2",3)}) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        this.subAreaLayer = new KMap.VectorLayer("subAreaLayer",999,{minZoom:15,style:(f)=> { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            return vectorStyle.getPolygonStyle(f.get("fillColor"), f.get("strokeColor"), 2) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        }}) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        this.areaPointLayer =  new KMap.VectorLayer("areaPointLayer",1000,{minZoom:15,style:(f)=> { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                return vectorStyle.getPointTextStyle(f.get("name"), "#120046","#FFFFFF",2, 30) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        this.subAreaLayer.layer.setVisible(false) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        this.afterDayNum = 3 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        this.treeCacheStyle = {} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        this.treeStyle= (f)=> { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            let key = f.get("imgSrc"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if(that.treeCacheStyle[key]){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                return that.treeCacheStyle[key] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            let style = new Style({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                image: new Icon({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    src: f.get("imgSrc"), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    scale:1, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    // anchor:[0.5,1], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            that.treeCacheStyle[key] = style 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            return style 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        this.statusPointLayer = new KMap.VectorLayer("statusPointLayer",999,{minZoom:15,style:this.treeStyle}) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        // this.regionLayer = new KMap.VectorLayer("regionLayer",999,{style:(f)=> { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        //         return vectorStyle.getPolygonStyle("#032833" + "80", "#0BFDF2",3) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        //     }}) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    initMap(location,target)  { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        let level = 18 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        let coordinate = util.wktCastGeom(location).getFirstCoordinate() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        this.kmap = new KMap.Map(target,level,coordinate[0], coordinate[1],null,5,22); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        let xyz = config.base_img_url + 'map/lby/{z}/{x}/{y}.png'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        this.kmap.addXYZLayer(xyz,{minZoom:15,maxZoom:22}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        let xyz2 = config.base_img_url3 + 'map/lby/{z}/{x}/{y}.png'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        this.kmap.addXYZLayer(xyz2,{minZoom:15,maxZoom:22}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        this.kmap.addLayer(this.areaLayer.layer) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        this.kmap.addLayer(this.subAreaLayer.layer) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        this.kmap.addLayer(this.areaPointLayer.layer) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        this.kmap.addLayer(this.statusPointLayer.layer) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        this.kmap.addLayer(this.gardenLayer.layer) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        this.kmap.addLayer(this.gardenPointLayer.layer) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    resetPx(item){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        let organId = item.organId 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        let pointWkt = item.pointWkt 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        let left = pointWkt.indexOf("(") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        let right = pointWkt.indexOf(")") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        let xy = pointWkt.substring(left + 1,right).split(" ") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        let x = parseFloat(xy[0]) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        let y = parseFloat(xy[1]) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if(organId === 768){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            x -= 1 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if(organId === 42134){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            x += 1 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if(organId === 25862){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            x += 1 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if(organId === 80866){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            x += 1 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if(organId === 80863){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            x -= 1 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if(organId === 26072){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            y += 1 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        item.pointWkt = "POINT(" + x + " " + y+ ")" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    initGarden(){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        let that = this 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        this.gardenLayer.refresh() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        VE_API.organ.gardenData().then(({data,code})=>{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            let features = [] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            for(let item of data){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                that.resetPx(item) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                let point = newAreaPoint(item) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                that.gardenLayer.addFeature(point) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                features.push(point) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            const source = new VectorSource({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                features: features, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            // const clusterSource = new Cluster({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            //     // distance: 5, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            //     minDistance: 20, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            //     source: source, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            // }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            that.gardenPointLayer.layer.setSource(source) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    addGardenClick(callback){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        let that = this 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        this.kmap.map.on("click", function (e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            that.gardenLayer.layer.getFeatures(e.pixel).then((features)=>{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                if(features.length > 0 && features[0].get("nodeType") == "area"){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    callback && callback(features[0]) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    initArea(organId){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        let that = this 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        this.areaLayer.refresh() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        VE_API.area.list({organId}).then(({data,code})=>{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            for(let item of data){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                that.areaLayer.addFeature(newAreaFeature(item)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                that.areaPointLayer.addFeature(newAreaPoint(item)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    initSubArea(organId){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        let that = this 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        this.subAreaLayer.refresh() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        VE_API.sub_area.list({organId}).then(({data,code})=>{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            for(let item of data){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                const result = that.handleStatusColor(item.status) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                item.fillColor = result.fillColor 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                item.strokeColor = result.strokeColor 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                that.subAreaLayer.addFeature(newPolymerFeature(item)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    async initTree(organId,isBoolean){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        console.log('isBoolean',isBoolean); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if(!isBoolean) return this.clearCluster() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        let that = this 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        // 树状态 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        this.statusPointLayer.refresh() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        await VE_API.sub_area.treeList({gardenId: organId}).then(({data}) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            this.treeListData = data 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        this.addCluster() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    // --------聚合----------- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    addCluster() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        this.clearCluster() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        let that = this 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        let features = [] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        // 根据状态加上对应的图标 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        for(let item of this.treeListData){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            let result = that.handleStatusIcon(item) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            // if (result.hasStatus) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                item.imgSrc = result.imgSrc 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                item.clusterIcon = result.clusterIcon 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                let point = newPoint(item); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                features.push(point) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            // } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        const source = new VectorSource({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            features: features, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        const clusterSource = new Cluster({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            distance: 15, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            // minDistance: 60, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            source: source, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        this.treeClusterLayer = new KMap.VectorLayer("tree-cluster",999,{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            minZoom:15, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            source:clusterSource, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            style:(feature)=> { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                const size = feature.get('features').length; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                // 只有一个数据,不需要聚合,直接使用第一项数据的图标 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                if (size == 1) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    feature = feature.get('features')[0] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    let style = styleCache[feature.get('imgSrc')]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    if(!style){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        style = new Style({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            image: new Icon({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                src: feature.get('imgSrc'), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                // src: require('@/assets/yezi.png'), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                scale:1, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                // anchor:[0.5,1], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        styleCache[feature.get('imgSrc')] = style; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    return style 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                // 多个点位聚合,循环处理得到图标 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                const featureObj = that.getFeaturesIcon(feature.get("features")) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                let imgSrc = featureObj.get('imgSrc') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                let style = styleCache[imgSrc]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                if (!style) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    style = new Style({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        image: new Icon({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            src: imgSrc, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            scale:1, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            // anchor:[0.5,1], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    styleCache[imgSrc] = style; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                return style; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        }}) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        that.kmap.addLayer(this.treeClusterLayer.layer) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        // this.fit(this.treeClusterLayer.getSource().getSource().getExtent()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        that.kmap.getView().fit(this.treeClusterLayer.layer.getSource().getSource().getExtent(), { duration: 1000, padding: [120, 120, 200, 120] }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        // 监听聚合点位的点击,点击后缩放到范围内 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        this.listenKey = that.kmap.on('click', (e) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if (that.treeClusterLayer) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                that.treeClusterLayer.layer.getFeatures(e.pixel).then((clickedFeatures) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    if (clickedFeatures.length && clickedFeatures[0].get("nodeType") == "tree") { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        const features = clickedFeatures[0].get('features'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        if (features.length > 1) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            const extent = boundingExtent( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                features.map((r) => r.getGeometry().getCoordinates()), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            that.kmap.getView().fit(extent, { duration: 1000, padding: [150, 150, 150, 150] }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    // 清除聚合图层,解除绑定 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    clearCluster() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if (this.treeClusterLayer) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            this.treeClusterLayer.layer.getSource().getSource().clear() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            this.treeClusterLayer = null 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            unByKey(this.listenKey) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    addMapClick(){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        let that = this 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        that.kmap.on('click', (evt) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            that.kmap.map.forEachFeatureAtPixel(evt.pixel, function (feature, layer) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                if (layer instanceof VectorLayer && layer.get('name') === 'tree-cluster') { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    // 当前hover的features点位 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    const featureItem = feature.getProperties().features[0] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    // 获取要素的几何形状 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    let geometry = feature.getGeometry(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    if (geometry instanceof Point) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        treeItem.treeId =  featureItem.get("id") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        return true 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    return true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    // 二级分区鼠标悬停弹框 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    addHoverTooltips(infoRef, imgInfo) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        let that = this 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        that.kmap.on('pointermove', (evt) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if (!that.kmap.map.hasFeatureAtPixel(evt.pixel)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                that.clearTooltip(infoRef, imgInfo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            // 清除之前的定时器 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            that.clearTooltip(infoRef, imgInfo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            that.tooltipTimeout = setTimeout(function () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                that.kmap.map.forEachFeatureAtPixel(evt.pixel, function (feature, layer) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    // 点击的图层是否是VectorLayer 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    if (layer instanceof VectorLayer && layer.get('name') === 'subAreaLayer') { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        // 获取要素的几何形状 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        let geometry = feature.getGeometry(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        // 检查几何形状是否为Polygon 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        if (geometry instanceof Polygon || geometry instanceof MultiPolygon) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            // 使用geometry.intersectsCoordinate方法来检查点击的坐标是否在Polygon内 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            if (geometry.intersectsCoordinate(evt.coordinate)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                infoRef.style.left = (evt.pixel[0] + 8) + 'px' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                infoRef.style.top = (evt.pixel[1] + 8) + 'px' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                infoRef.style.visibility = 'visible' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                infoRef.innerHTML = ` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            <div style="color: #FF7E15;">病虫异常: ${feature.get("virusTreeCount")}/${feature.get("treeCount")}</div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            <div style="color: #FFE614;">生长异常: ${feature.get("growAbnormalTreeCount")}/${feature.get("treeCount")}</div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        ` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                return true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    if (layer instanceof VectorLayer && layer.get('name') === 'tree-cluster') { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        // 获取要素的几何形状 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        let geometry = feature.getGeometry(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        // 检查几何形状是否为Polygon 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        // 当前hover的features点位 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        const featureItem = feature.getProperties().features[0] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        if (geometry instanceof Point && (featureItem.get("imgFilename") || featureItem.get("resFilename"))) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            // 使用geometry.intersectsCoordinate方法来检查点击的坐标是否在Polygon内 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            // imgInfo.style.left = (evt.pixel[0] - 250) + 'px' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            // imgInfo.style.top = (evt.pixel[1] - 500) + 'px' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            let img = featureItem.get("resFilename") ? featureItem.get("resFilename") : base_img_url2 + featureItem.get("imgFilename") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            imgInfo.innerHTML = ` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            <img class="close-btn yse-events" src="${img}?x-oss-process=image/resize,m_fill,w_400" /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        ` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            imgInfo.style.visibility = 'visible' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            return true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            }, 500) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        // that.kmap.on('pointerleave', that.clearTooltip(infoRef, imgInfo)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    // 清除tooltip和定时器的函数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    clearTooltip(infoRef, imgInfo) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        infoRef.style.visibility = 'hidden'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        infoRef.innerHTML = ''; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        imgInfo.style.visibility = 'hidden'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        imgInfo.innerHTML = ''; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if (this.tooltipTimeout) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            clearTimeout(this.tooltipTimeout); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            this.tooltipTimeout = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    fit(geomOrExtent){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        this.kmap.fit(geomOrExtent) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    // 区级颜色 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    handleStatusColor(key) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        let fillColor = '#ffffff00' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        let strokeColor = '#ffffff00' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        switch (key) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            case STATUS_ENUM.DONE: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                fillColor = 'rgba(95,255,197,0)' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                strokeColor = '#ffffff' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            case STATUS_ENUM.ABNORMAL_GROWTH: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                fillColor = 'rgba(255,189,5,0.2)' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                strokeColor = '#FFE44E' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            case STATUS_ENUM.ABNORMAL_Pest: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                fillColor = 'rgba(51,11,3,0.52)' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                strokeColor = '#F55A5A' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            case STATUS_ENUM.PENDING_REVIEW: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                fillColor = 'rgba(3,40,51,0.2)' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                strokeColor = '#032833' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            case STATUS_ENUM.REVIEWED: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                fillColor = 'rgba(95,255,197,0.1)' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                strokeColor = '#5FFFC5' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            default: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        return {fillColor, strokeColor} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    // 多个feature 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    getFeaturesIcon(features) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        let result = features.find(item => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            // 获取Feature的属性 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            let obj = item.getProperties(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            // 检查clusterIcon属性是否为1 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            return obj.clusterIcon === 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        // 如果没有找到,则尝试找到status为2的项 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if (!result) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            result = features.find(item => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                let obj = item.getProperties(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                // 检查clusterIcon属性是否为2 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                return obj.clusterIcon === 1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        // 如果没有找到,则尝试找到status为2的项 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if (!result) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            result = features.find(item => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                let obj = item.getProperties(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                // 检查clusterIcon属性是否为2 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                return obj.clusterIcon === 2; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if (!result) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            result = features.find(item => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                let obj = item.getProperties(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                // 检查clusterIcon属性是否为3 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                return obj.clusterIcon === 3; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if (!result) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            result = features.find(item => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                let obj = item.getProperties(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                // 检查clusterIcon属性是否为4 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                return obj.clusterIcon === 4; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if (!result) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            result = features.find(item => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                let obj = item.getProperties(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                // 检查clusterIcon属性是否为5 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                return obj.clusterIcon === 5; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if(!result){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            result = features[0] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        return result; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    // 状态图例 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    handleStatusIcon(obj) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        let key = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        switch (this.afterDayNum){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            case 0: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                key = 'ycStatus' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                break 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            case 3: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                key = 'ycStatus' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                break 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            case 5: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                key = 'ycStatus5d' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                break 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            case 7: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                key = 'ycStatus7d' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                break 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            case 15: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                key = 'ycStatus15d' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                break 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            case 30: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                key = 'ycStatus30d' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                break 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        let hasStatus = false 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        let imgSrc = require('@/assets/status/status_bcyc.png') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if (obj[key] == 1) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            hasStatus = true 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            imgSrc = require('@/assets/status/status_szyc.png') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            return {hasStatus, imgSrc, clusterIcon: 1} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if (obj[key] == 2) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            hasStatus = true 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            imgSrc = require('@/assets/status/status_bcyc.png') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            return {hasStatus, imgSrc, clusterIcon: 2} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if (obj.review) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            hasStatus = true 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            imgSrc = require('@/assets/status/status_dfh.png') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            return {hasStatus, imgSrc, clusterIcon: 3} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if (obj.fly) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            hasStatus = true 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            imgSrc = require('@/assets/status/status_xfdw.png') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            return {hasStatus, imgSrc, clusterIcon: 4} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if (obj[key] == 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            hasStatus = true 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            imgSrc = require('@/assets/status/status_dfh.png') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            return {hasStatus, imgSrc, clusterIcon: 5} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        return {hasStatus, imgSrc, clusterIcon: 0} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    refreshTree(organId,day){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        this.afterDayNum = day 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        this.initTree(organId) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-export default ZnxyMap 
			 |