From 150a37f948214be4bd183b30f3f2865a6f1c519f Mon Sep 17 00:00:00 2001
From: 徐旺旺 <11530253@qq.com>
Date: 星期四, 29 四月 2021 14:16:18 +0800
Subject: [PATCH] 替换wms服务初步

---
 src/components/LayerController/service/WfsLayerService.js |   99 ++++++++++++++++++++++++++-----------------------
 1 files changed, 53 insertions(+), 46 deletions(-)

diff --git a/src/components/LayerController/service/WfsLayerService.js b/src/components/LayerController/service/WfsLayerService.js
index 8d55234..a01d35d 100644
--- a/src/components/LayerController/service/WfsLayerService.js
+++ b/src/components/LayerController/service/WfsLayerService.js
@@ -1,9 +1,9 @@
 /**
- * 鍔犺浇涓氬姟鏁版嵁鍥惧眰
+ * 鍔犺浇wfs鏈嶅姟鍥惧眰
  */
-
-import styles from '../../../conf/Styles'
+import { STYLES } from '../../../conf/Constants'
 import AjaxUtils from '../../../utils/AjaxUtils'
+import { setZIndex } from '../../../utils/utils'
 
 class WfsLayerService {
   constructor (config) {
@@ -11,8 +11,8 @@
     this.params = {
       version: '1.0.0',
       REQUEST: 'getfeature',
-      OUTPUTFORMAT: 'json',
-      maxFeatures: 20000
+      OUTPUTFORMAT: 'json'
+      // maxFeatures: 20000
     }
     this.popupComp = window.popupComp
     this.L = window.L
@@ -29,49 +29,56 @@
   }
 
   loadData (wfsUrl) {
-    AjaxUtils.get4JsonDataByUrl(wfsUrl, this.params, (res) => this.draw(res.data.features))
+    AjaxUtils.get4JsonDataByUrl(wfsUrl, this.params, (res) => {
+      this.draw(res.data.features)
+    })
   }
 
   draw (features) {
-    const icon = this.config.icon
-    this.L.geoJSON(features, {
-      style: function (feature) {
-        return {
-          fill: styles.defaultLineStyle.fill,
-          weight: styles.defaultLineStyle.weight,
-          fillColor: styles.defaultLineStyle.fillColor,
-          color: styles.defaultLineStyle.color,
-          fillOpacity: styles.defaultLineStyle.fillOpacity,
-          opacity: styles.defaultLineStyle.opacity,
-          dashArray: styles.defaultLineStyle.dashArray,
-          dashSpeed: styles.defaultLineStyle.dashSpeed
-        }
-      },
-      pointToLayer: (geoJsonPoint, latlng) => {
-        return this.L.canvasMarker(latlng,
-          {
-            img: {
-              // url: 'assets/images/map/marker-icon.png',
-              url: '/assets/images/map/' + icon,
-              size: styles.defaultLineStyle.size
-            }
+    if (features && features.length > 0) {
+      const icon = this.config.icon
+      const styles = this.config.styles
+      Object.assign(STYLES, styles)
+      const geojsonLayer = this.L.geoJSON(features, {
+        style: function (feature) {
+          return {
+            fill: STYLES.FILL,
+            weight: STYLES.WEIGHT,
+            fillColor: STYLES.FILL_COLOR,
+            color: STYLES.COLOR,
+            fillOpacity: STYLES.FILL_OPACITY,
+            opacity: STYLES.OPACITY
+            // dashArray: STYLES.DASH_ARRAY,
+            // dashSpeed: STYLES.DASH_SPPED
+          }
+        },
+        pointToLayer: (geoJsonPoint, latlng) => {
+          return this.L.canvasMarker(latlng,
+            {
+              img: {
+                // url: 'assets/images/map/marker-icon.png',
+                url: '/assets/images/map/' + icon,
+                size: STYLES.ICON_SIZE
+              }
+            })
+        },
+        onEachFeature: (feature, layer) => {
+          layer.bindPopup((layer) => {
+            this.popupComp.setDatas(layer)
+            this.popupComp.setShow()
+            return this.popupComp.$el
+          }, {
+            className: 's-map-popup',
+            minWidth: 300,
+            closeButton: false,
+            autoClose: false
           })
-      },
-      onEachFeature: (feature, layer) => {
-        layer.bindPopup((layer) => {
-          this.popupComp.setDatas(layer)
-          this.popupComp.setShow()
-          return this.popupComp.$el
-        }, {
-          className: 's-map-popup',
-          minWidth: 300,
-          closeButton: false,
-          autoClose: false
-        })
-          .bindTooltip((layer) => this.tooltipListener(layer), { direction: 'bottom', offset: [0, 15], sticky: true })
-          .on('mouseover', (e) => this.mouseOverListener(e, layer)).on('mouseout', (e) => this.mouseOutListener(e, layer))
-      }
-    }).addTo(this.layer)
+            .bindTooltip((layer) => this.tooltipListener(layer), { direction: 'bottom', offset: [0, 15], sticky: true })
+            .on('mouseover', (e) => this.mouseOverListener(e, layer)).on('mouseout', (e) => this.mouseOutListener(e, layer))
+        }
+      }).addTo(this.layer)
+      setZIndex(geojsonLayer)
+    }
   }
 
   mouseOverListener (e, layer) {
@@ -94,13 +101,13 @@
     const icon = this.config.icon
     const type = e.target.feature.geometry.type
     if (type === 'LineString' || type === 'MultiLineString') {
-      layer.setStyle({ weight: styles.defaultLineStyle.weight, color: styles.defaultLineStyle.color })
+      layer.setStyle({ weight: STYLES.WEIGHT, color: STYLES.COLOR })
     }
     if (type === 'Point' || type === 'MultiPoint') {
       layer.setStyle({
         img: {
           url: '/assets/images/map/' + icon,
-          size: styles.defaultLineStyle.size
+          size: STYLES.ICON_SIZE
         }
       })
     }

--
Gitblit v1.8.0