| 
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -79,6 +79,24 @@ let iconSource; // icon | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					let select;//选中标注 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					let iconTextsStyle = { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					  textAlign: undefined, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					  font: "18px Arial", | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					  //fontFamily: "Courier New, monospace", | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					  // fontWeight: "bold", | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					  text: '', | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					  backgroundFill: new Fill({ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    color: 'rgba(0, 146, 238, 0.75)' | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    // color: textColorArray[feature.values_.colorIndex] | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					  }), | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					  padding: [4, 10, 4, 10], | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					  //text: "变电站名称", | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					  fill: new Fill({ color: "#ffffff" }), | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					  // stroke: new Stroke({ color: "#ffffff", width: 3 }), | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					  offsetY: -30, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					  offsetX: -50, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					  overflow: true, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					let polygonColorArray = [ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					  'rgba(210, 2, 2, 0.24)', | 
				
			
			
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
				 | 
				
					@ -86,7 +104,19 @@ let polygonColorArray = [ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					  'rgba(183, 185, 0, 0.16)' | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					]; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					 //icon文字样式 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					let createTextStyle = function (feature) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					   | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					  if (iconTextsStyle) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    let iconTextsStyles = { ...iconTextsStyle } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    iconTextsStyles.text = feature.values_ && feature.values_.name || feature.name | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    return new Text({ ...iconTextsStyles }) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					  } else { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    return null | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					  } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					//多边形标注样式 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					var polygonStyleFunction = (function () { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					  return function (feature) { | 
				
			
			
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
				 | 
				
					@ -105,6 +135,8 @@ var polygonStyleFunction = (function () { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					  }; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					})() | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					const vueGis = { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					  name: 'HomeMap', | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					  data () { | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -151,7 +183,7 @@ const vueGis = { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      iconArrays: [ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      ], | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      iconTextStyle: {}, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      // iconTextStyle: {}, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      //policon图标样式 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      polIconUrlArray: [ | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -183,7 +215,7 @@ const vueGis = { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      this.polIconUrlArray = polIconUrlArray || [] | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      this.iconArrays = iconArrays | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      this.iconUrlArray = iconUrlArray | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      this.iconTextStyle = iconTextStyle | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      iconTextsStyle = iconTextStyle || iconTextsStyle | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      this.distanceMax = distanceMax | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      // iconArrays.forEach(item => { | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -313,7 +345,6 @@ const vueGis = { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    //加载多边形的icon | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    loadPolIcon (feature) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      console.log('feature----------', feature) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      let polyIconFeatures = []; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      feature.forEach(oneIcon => { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
				 | 
				
					@ -336,16 +367,16 @@ const vueGis = { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					          image: new Icon({ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            // anchor: [0.5, 0.5], | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            // imgSize: [32, 32], | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            scale: 0.5, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            scale: this.areaScale, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            src: this.polIconUrlArray[0] | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					          }) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					          }), | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					          text: createTextStyle(oneIcon) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        }); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        polyIcon.setStyle(polyIconStyle); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        polyIconFeatures.push(polyIcon); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      }); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      console.log('polIconSource-----', polIconSource) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      polIconSource.addFeatures(polyIconFeatures); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    }, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -376,7 +407,7 @@ const vueGis = { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					              // scale: 0.5, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					              src: this.iconUrlArray[oneIcon.urlIndex] | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            }), | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            text: this.createTextStyle(oneIcon) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            // text: createTextStyle(oneIcon) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					          }); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					          iconItem.setStyle(iconStyle); | 
				
			
			
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
				 | 
				
					@ -398,18 +429,6 @@ const vueGis = { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    }, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    //icon文字样式 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    createTextStyle (feature) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      if (this.iconTextStyle) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        let iconTextStyle = { ...this.iconTextStyle } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        iconTextStyle.text = feature.values_.name | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        return new Text({ ...iconTextStyle }) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      } else { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        return null | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    }, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    //计算和中心点距离 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    computedDistance (lon, lat, max) { | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -536,7 +555,7 @@ const vueGis = { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					              }) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            }), | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            new Style({ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					              text: that.createTextStyle(feature) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					              text: createTextStyle(feature) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            }) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					          ]; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					          styles['MultiPolygon'] = styles['Polygon']; | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -712,6 +731,10 @@ const vueGis = { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    clickType: { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      type: String, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      default: 'back' | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    }, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    areaScale: { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      type: Number, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      default: 0.5 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					  }, | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
				
				 | 
				
					
  |