From 844af59dfaf38fe23e5dedaebcef022a88066d44 Mon Sep 17 00:00:00 2001
From: chenzeping <ChenZeping02609@163.com>
Date: 星期二, 20 四月 2021 13:52:05 +0800
Subject: [PATCH] Merge branch 'develop' of http://xearth.cn:6600/r/wuyushui/SewerAndRainNetwork into develop
---
/dev/null | 25 ------
src/components/BaseNav/pipeline/AffiliatedFacilities.vue | 2
src/components/LayerController/logic/PipeLineAnimal.js | 13 +++
src/components/LayerController/service/WfsLayerService.js | 3
src/components/LayerController/logic/Company.js | 8 +-
src/components/LayerController/service/LayerFactory.js | 154 ++++++++++++++++---------------------
src/utils/utils.js | 23 +++++
7 files changed, 110 insertions(+), 118 deletions(-)
diff --git a/src/components/BaseNav/pipeline/AffiliatedFacilities.vue b/src/components/BaseNav/pipeline/AffiliatedFacilities.vue
index 71806b6..050491f 100644
--- a/src/components/BaseNav/pipeline/AffiliatedFacilities.vue
+++ b/src/components/BaseNav/pipeline/AffiliatedFacilities.vue
@@ -3,7 +3,7 @@
<div class="affiliatedFacilities">
<el-dialog
custom-class="affiliatedFacilities-dialog"
- :title="facilitiesParameter.properties.pipename"
+ :title="facilitiesParameter && facilitiesParameter.properties.pipename"
:visible.sync="dialogVisible"
:append-to-body="true"
:modal="false"
diff --git a/src/components/LayerController/logic/Company.js b/src/components/LayerController/logic/Company.js
index 6c68380..f88c2e9 100644
--- a/src/components/LayerController/logic/Company.js
+++ b/src/components/LayerController/logic/Company.js
@@ -9,9 +9,9 @@
module.exports = function () {
/**
- * 杩斿洖marker瀵硅薄鏁扮粍
- * @param L leaflet瀵硅薄
- */
+ * 杩斿洖marker瀵硅薄鏁扮粍
+ * @param L leaflet瀵硅薄
+ */
this.init = async (layer, L) => {
// const SolidWasteIcon = this.SolidWasteIcon()
this.animalService = new AnimalService({
@@ -19,7 +19,7 @@
layer: layer
})
const res = await mapApi.getCompany()
- // console.log(res)
+ console.log(res)
const data = res.Result.DataInfo || {}
for (let i = 0; i < data.length; i++) {
// console.log(data[i])
diff --git a/src/components/LayerController/logic/PipeLineAnimal.js b/src/components/LayerController/logic/PipeLineAnimal.js
index e9cabbe..8726b4a 100644
--- a/src/components/LayerController/logic/PipeLineAnimal.js
+++ b/src/components/LayerController/logic/PipeLineAnimal.js
@@ -7,6 +7,9 @@
module.exports = function () {
this.init = () => {
+ }
+
+ this.create = () => {
const layers = LayerPipeLines.layers
for (var i = 0; i < layers.length; i++) {
const config = layers[i]
@@ -42,12 +45,22 @@
for (var i = 0; i < layers.length; i++) {
const config = layers[i]
const code = config.code
+ const styles = config.styles
// window.layerFactory.show(config)
const layer = window.layerFactory.layers[code]
if (layer) {
if (layer.eachLayer) {
layer.eachLayer(function (layer) {
layer.resetStyle()
+ var newStyles = Object.assign(STYLES, styles)
+ layer.setStyle({
+ fill: newStyles.FILL,
+ weight: newStyles.WEIGHT,
+ fillColor: newStyles.FILL_COLOR,
+ color: newStyles.COLOR,
+ fillOpacity: newStyles.FILL_OPACITY,
+ opacity: newStyles.OPACITY
+ })
})
}
}
diff --git a/src/components/LayerController/service/EventLayerService.js b/src/components/LayerController/service/EventLayerService.js
deleted file mode 100644
index a8916df..0000000
--- a/src/components/LayerController/service/EventLayerService.js
+++ /dev/null
@@ -1,25 +0,0 @@
-import { logicMapper } from '../../../conf/Constants'
-
-class EventLayerService {
- constructor (config) {
- this.L = window.L
- this.map = window.map
- this.config = config
- }
-
- init () {
- // 寮曞叆 鍏宠仈鐨刯s锛屽湪constant.js涓牴鎹甤onfig閰嶇疆鐨刬d寰楀埌澶勭悊js
- const id = this.config.code
- const checked = this.config.checked
- const file = logicMapper[id]
- if (!file) {
- console.log('鎵句笉鍒伴�昏緫澶勭悊js!!!' + id)
- } else {
- var BusiLayer = require('../logic/' + file)
- var busiLayer = new BusiLayer()
- checked ? busiLayer.init(this.config) : busiLayer.destory(this.config)
- }
- }
-}
-
-export default EventLayerService
diff --git a/src/components/LayerController/service/LayerFactory.js b/src/components/LayerController/service/LayerFactory.js
index 9b05042..adb3d9f 100644
--- a/src/components/LayerController/service/LayerFactory.js
+++ b/src/components/LayerController/service/LayerFactory.js
@@ -1,13 +1,13 @@
import WfsLayerService from './WfsLayerService'
-import BusiLayerService from './BusiLayerService'
import WmsLayerService from './WmsLayerService'
-import EventLayerService from './EventLayerService'
import { clone } from '../../../utils/utils'
+import { logicMapper } from '../../../conf/Constants'
class LayerFactory {
constructor (options) {
this.L = options.L
this.map = window.map
this.layers = {}
+ this.layersLogic = {}
}
init (layerConfig) {
@@ -17,14 +17,74 @@
var config = layerConfig[i]
var layers = config.layers
var childLayer = config.childLayer
+ var checked = config.checked
layers && this.init(config.layers)
childLayer && this.init(config.childLayer)
- var checked = config.checked
- checked && this.load(config)
- checked && this.toggleZoomByConfig(config)
+ this.loadLogic(config)
+ this.toggleZoomByConfig(config)
+ checked && this.show(config)
}
}
+ }
+
+ loadLogic (config) {
+ var code = config.code
+ var wfs = config.wfs
+ var wms = config.wms
+
+ const file = logicMapper[code]
+ var logic = this.layersLogic[code]
+ if (!logic) {
+ if (file) {
+ var BusiLayer = require('../logic/' + file)
+ logic = new BusiLayer()
+ } else if (wfs) {
+ logic = new WfsLayerService(config)
+ } else if (wms) {
+ logic = new WmsLayerService(config)
+ }
+ }
+ this.layersLogic[code] = logic
+ return logic
+ }
+
+ addLayer (config) {
+ var code = config.code
+ var logic = this.loadLogic(config)
+ var layer = (logic && logic.initLayer && logic.initLayer((this.L))) || this.L.featureGroup({})
+
+ if (logic.bindTooltip) {
+ layer.bindTooltip(logic.bindTooltip)
+ }
+ // 璋冪敤click浜嬩欢
+ if (logic.clickListener) {
+ layer.on('click', logic.clickListener)
+ }
+ layer.addTo(this.map)
+ this.layers[code] = layer
+ return layer
+ }
+
+ show (config) {
+ var layer = this.layers[config.code]
+ var logic = this.loadLogic(config)
+ if (layer) {
+ if (!this.map.hasLayer(layer)) {
+ layer.addTo(this.map)
+ }
+ } else {
+ logic && logic.init(this.addLayer(config), this.L)
+ }
+ logic && logic.create && logic.create()
+ }
+
+ hide (config) {
+ const code = config.code
+ const layer = this.layers[code]
+ layer && this.map.removeLayer(layer)
+ const logic = this.loadLogic(config)
+ logic && logic.destory && logic.destory()
}
/**
@@ -63,65 +123,9 @@
}
}
- load (config) {
- var code = config.code
- var wfs = config.wfs
- var wms = config.wms
- var url = config.url
- var checked = config.checked
- // 鍒ゆ柇鏄惁宸茬粡鍔犺浇杩囷紝鍔犺浇杩囧氨 鐩存帴寰楀埌瀵硅薄璋冪敤 鏄剧ず鍑芥暟
- var layer = this.layers[code]
- // todo if鏄笉鏄お澶氫簡
- if (checked) {
- if ((wfs || wms || url)) {
- if (layer) {
- this.show(code)
- } else {
- layer = this.L.featureGroup({}).addTo(this.map)
- this.layers[code] = layer
- }
- }
- // 2. 鍒ゆ柇绫诲瀷
- if (wfs) {
- // 3. 瀹炰緥鍖栧叿浣搒ervice
- var wfsLayerService = new WfsLayerService(config)
- wfsLayerService.init(layer)
- this.setZIndex(layer)
- } else if (wms) {
- var wmsLayerService = new WmsLayerService(config)
- wmsLayerService.init(layer)
- } else if (url) {
- var busiLayerService = new BusiLayerService(config)
- busiLayerService.init(layer)
- }
- }
- var eventLayerService = new EventLayerService(config)
- eventLayerService.init()
- }
-
- show (config) {
- var layer = this.layers[config.code]
- if (layer) {
- layer.addTo(this.map)
- this.setZIndex(layer)
- } else {
- this.load(config)
- }
- }
-
- hide (config) {
- var layer = this.layers[config.code]
- layer && this.map.removeLayer(layer)
- // this.load(config)
- }
-
- toggle (code) {
-
- }
-
/**
*
- * 鏍规嵁浼犵殑 feature瀵硅薄瀹氫綅
+ * 鏍规嵁浼犵殑 feature瀵硅薄瀹氫綅锛�
* @param code
* @param feature
*/
@@ -134,7 +138,7 @@
break
case 'MultiLineString':
var coordinates = feature.geometry.coordinates
- point = clone(coordinates[parseInt(coordinates.length / 2)][0])
+ point = coordinates[parseInt(coordinates.length / 2)][0]
break
}
window.map.flyTo(point.reverse(), 15)
@@ -189,30 +193,6 @@
layer.eachLayer(function (layer) {
console.log(layer)
})
- }
- }
-
- /**
- * todo 杩欓噷鏃犳晥锛岃矊浼兼槸鍥犱负geojson鍔犺浇鍒板湴鍥句篃鏄釜layergroup
- *
- * 璁剧疆index,绾垮湪鏈�涓嬮潰锛岀偣鍦ㄤ笂闈�
- * @param layerGroup 鍥惧眰缁�
- */
- setZIndex (layer) {
- if (Array.isArray(layer)) {
- for (var i = 0; i < layer.length; i++) {
- this.setZIndex(layer[i])
- }
- } else {
- if (layer.getLayers) {
- this.setZIndex(layer.getLayers())
- } else {
- if (layer.feature && (layer.feature.geometry.type === 'LineString' || layer.feature.geometry.type === 'MultiLineString')) {
- layer.bringToBack && layer.bringToBack()
- } else {
- layer.bringToFront && layer.bringToFront()
- }
- }
}
}
}
diff --git a/src/components/LayerController/service/WfsLayerService.js b/src/components/LayerController/service/WfsLayerService.js
index e1bd4a5..cb0a4bf 100644
--- a/src/components/LayerController/service/WfsLayerService.js
+++ b/src/components/LayerController/service/WfsLayerService.js
@@ -3,6 +3,7 @@
*/
import { STYLES } from '../../../conf/Constants'
import AjaxUtils from '../../../utils/AjaxUtils'
+import { setZIndex } from '../../../utils/utils'
class WfsLayerService {
constructor (config) {
@@ -75,7 +76,7 @@
.on('mouseover', (e) => this.mouseOverListener(e, layer)).on('mouseout', (e) => this.mouseOutListener(e, layer))
}
}).addTo(this.layer)
- window.layerFactory.setZIndex(geojsonLayer)
+ setZIndex(geojsonLayer)
}
mouseOverListener (e, layer) {
diff --git a/src/utils/utils.js b/src/utils/utils.js
index 4fbfed4..ef770cb 100644
--- a/src/utils/utils.js
+++ b/src/utils/utils.js
@@ -56,4 +56,27 @@
return o
}
+/**
+ *
+ * 璁剧疆index,绾垮湪鏈�涓嬮潰锛岀偣鍦ㄤ笂闈�
+ * @param layerGroup 鍥惧眰缁�
+ */
+export function setZIndex (layer) {
+ if (Array.isArray(layer)) {
+ for (var i = 0; i < layer.length; i++) {
+ setZIndex(layer[i])
+ }
+ } else {
+ if (layer.getLayers) {
+ setZIndex(layer.getLayers())
+ } else {
+ if (layer.feature && (layer.feature.geometry.type === 'LineString' || layer.feature.geometry.type === 'MultiLineString')) {
+ layer.bringToBack && layer.bringToBack()
+ } else {
+ layer.bringToFront && layer.bringToFront()
+ }
+ }
+ }
+}
+
export default clone
--
Gitblit v1.8.0