From bd82dff04b90e3eb1973f43ecc3fdfb8172bcdd7 Mon Sep 17 00:00:00 2001
From: QibolinCzp <qibolin02429@126.com>
Date: 星期五, 14 五月 2021 14:40:58 +0800
Subject: [PATCH] Merge branch 'develop' of http://xearth.cn:6600/r/wuyushui/SewerAndRainNetwork into develop
---
src/components/LayerController/dataset/WmsLayerList.js | 116 ++++++++++++++++++++++++++++++--------
src/conf/layers/LayerHbss.js | 2
src/conf/Constants.js | 1
src/conf/layers/LayerPk.js | 8 +-
src/utils/utils.js | 37 ++++++++++++
5 files changed, 135 insertions(+), 29 deletions(-)
diff --git a/src/components/LayerController/dataset/WmsLayerList.js b/src/components/LayerController/dataset/WmsLayerList.js
index af11119..fc0e782 100644
--- a/src/components/LayerController/dataset/WmsLayerList.js
+++ b/src/components/LayerController/dataset/WmsLayerList.js
@@ -1,7 +1,8 @@
+import clone from '../../../utils/utils'
class WmsLayerList {
constructor () {
- // {鍥惧眰鍚嶇О锛歔{typeName:xxx,filter:yyy}]}
+ // [{鍥惧眰鍚嶇О锛歔{typeName:xxx,filter:yyy}]}]
this.layers = []
}
@@ -9,36 +10,76 @@
const typeName = config.typeName
const layerGroup = config.layerGroup || typeName
const filter = config.filter
+ const index = config.index || 9
if (layerGroup) {
- this.addLayer(layerGroup, typeName, filter)
+ this.addLayer(layerGroup, typeName, filter, index)
}
}
- addLayer (layerGroup, typeName, filter) {
- const layers = this.layers
- const layer = layers[layerGroup]
+ addLayer (layerGroup, typeName, filter, index) {
+ const layer = this._getLayer(layerGroup)
+
if (layer) {
- layers[layerGroup].push({ typeName: typeName, filter: filter || 'INCLUDE' })
+ const offset = this.indexOf(typeName, filter)
+ if (offset < 0) {
+ const layerConfig = layer[layerGroup]
+ layerConfig.push({ typeName: typeName, filter: filter || 'INCLUDE' })
+ }
} else {
- layers[layerGroup] = [{ typeName: typeName, filter: filter || 'INCLUDE' }]
+ const layerConfig = {}
+ layerConfig[layerGroup] = [{ typeName: typeName, filter: filter || 'INCLUDE' }]
+ this.layers.push(layerConfig)
}
+ }
+
+ _getLayer (layer) {
+ const layers = this.layers
+ for (let i = 0; i < layers.length; i++) {
+ const lay = layers[i]
+ if (lay[layer]) {
+ return lay
+ }
+ }
+ return null
+ }
+
+ indexOf (typeName, filter) {
+ filter = filter || 'INCLUDE'
+ const layers = this.layers
+ for (let i = 0; i < layers.length; i++) {
+ const layer = layers[i]
+ for (const k in layer) {
+ const lay = layer[k]
+ for (let j = 0; j < lay.length; j++) {
+ const l = lay[j]
+ if (typeName === l.typeName && filter === l.filter) {
+ return j
+ }
+ }
+ }
+ }
+ return -1
}
remove (typeName, filter) {
- const layers = this.layers
- for (const k in layers) {
- if (k === typeName) {
- delete this.layers[k]
- break
- }
- for (let i = 0; i < layers[k].length; i++) {
- const layer = layers[k][i]
- if (typeName === layer.typeName && filter === layer.filter) {
- this.layers[k].splice(i, 1)
- if (this.layers[k].length === 0) {
- delete this.layers[k]
- }
+ filter = filter || 'INCLUDE'
+ const layers = clone(this.layers)
+ for (let j = 0; j < layers.length; j++) {
+ const layer = layers[j]
+ for (const k in layer) {
+ /* if (typeName === k) {
+ delete this.layers[j][k]
break
+ } */
+ const layerConfig = layer[k]
+ for (let i = 0; i < layerConfig.length; i++) {
+ const lay = layerConfig[i]
+ if (typeName === lay.typeName && filter === lay.filter) {
+ this.layers[j][k].splice(i, 1)
+ if (this.layers[j][k].length === 0) {
+ this.layers.splice(j, 1)
+ }
+ }
}
}
}
@@ -47,8 +88,11 @@
getLayers () {
const layers = this.layers
const _layers = []
- for (const k in layers) {
- _layers.push(k)
+ for (let i = 0; i < layers.length; i++) {
+ const layer = layers[i]
+ for (const k in layer) {
+ _layers.push(k)
+ }
}
return _layers.join(',')
}
@@ -56,15 +100,37 @@
getFilters () {
const layers = this.layers
const cqlFilters = []
- for (const k in layers) {
+ for (let i = 0; i < layers.length; i++) {
+ const layer = layers[i]
const filters = []
- for (let i = 0; i < layers[k].length; i++) {
- filters.push(layers[k][i].filter)
+ for (const k in layer) {
+ const layerConfig = layer[k]
+ for (let i = 0; i < layerConfig.length; i++) {
+ const filter = layerConfig[i].filter
+ if (filter) {
+ filters.push(filter)
+ }
+ }
}
cqlFilters.push(filters.join(' OR '))
}
return cqlFilters.join(';')
}
+
+ /**
+ * 娣诲姞鍏冪礌鍒版寚瀹氫綅缃�
+ * @param index
+ * @param element
+ * @private
+ */
+ _addIndex (index, element) {
+ const newArr = []
+ for (var i = this.dataSouce.length - 1; i > index - 1; i--) {
+ newArr[i + 1] = this.dataSouce[i]
+ }
+ newArr[index] = element
+ this.layers = newArr
+ }
}
export default WmsLayerList
diff --git a/src/conf/Constants.js b/src/conf/Constants.js
index 1617d8c..3bab997 100644
--- a/src/conf/Constants.js
+++ b/src/conf/Constants.js
@@ -38,6 +38,7 @@
export const props = {
code: '缂栧彿',
name: '鍚嶇О',
+ teamname: '鍚嶇О',
pfktype: '鎺掓斁鍙g被鍨�',
level: '绾у埆',
length: '闀垮害(m)',
diff --git a/src/conf/layers/LayerHbss.js b/src/conf/layers/LayerHbss.js
index f93be09..7727670 100644
--- a/src/conf/layers/LayerHbss.js
+++ b/src/conf/layers/LayerHbss.js
@@ -14,7 +14,7 @@
checked: false,
minZoom: 16,
type: SERVICE_TYPE.WMS,
- wmsLayers: 'sewer:manhole',
+ typeName: 'sewer:manhole',
icon: 'sewers/绐ㄤ簳.png'
},
{
diff --git a/src/conf/layers/LayerPk.js b/src/conf/layers/LayerPk.js
index b1b95be..edcb323 100644
--- a/src/conf/layers/LayerPk.js
+++ b/src/conf/layers/LayerPk.js
@@ -7,17 +7,18 @@
code: 'sewersDischargeport',
name: '鎺掓斁鍙�',
icon: 'sewers/闆ㄦ按鎺掑彛.png',
- checked: true,
+ checked: false,
type: 0,
layers: [
{
code: 'sewersNpk',
name: '鍐呮帓鍙�',
sname: '鍐呮帓鍙�',
- checked: true,
+ checked: false,
type: SERVICE_TYPE.WMS,
icon: 'sewers/闆ㄦ按鎺掑彛.png',
typeName: 'sewer:dischargeport',
+ filter: 'pfktype = \'鍐呮帓\'',
minZoom: 10 // 鍦ㄦ寚瀹氱骇鍒樉绀�
},
{
@@ -25,9 +26,10 @@
name: '澶栨帓鍙�',
sname: '澶栨帓鍙�',
icon: 'sewers/闆ㄦ按鎺掑彛.png',
- checked: true, // 榛樿閫変腑鐘舵��
+ checked: false, // 榛樿閫変腑鐘舵��
type: SERVICE_TYPE.WMS,
typeName: 'sewer:dischargeport',
+ filter: 'pfktype = \'澶栨帓\'',
minZoom: 10
}
]
diff --git a/src/utils/utils.js b/src/utils/utils.js
index ef770cb..2328fd0 100644
--- a/src/utils/utils.js
+++ b/src/utils/utils.js
@@ -24,6 +24,43 @@
}
/**
+ * 鑴夊啿鏁堟灉
+ */
+export function pulseEffect (xy) {
+ let times = 5
+ const colors = ['#98FB98', '#ff0000']
+ // 鎻掍欢 鏁堟灉瀹炵幇
+ var pulsingIcon = window.L.icon.pulse({
+ iconSize: [20, 20],
+ color: colors[0],
+ fillColor: ''
+ })
+ var picGroupMarker = window.L.marker(xy, { icon: pulsingIcon }).addTo(window.map)
+ // 瀹氭椂
+ var timeInterval = setInterval(() => {
+ if (times > 0) {
+ times--
+ } else {
+ clearInterval(timeInterval)
+ picGroupMarker.remove()
+ }
+ }, 1000)
+}
+
+/**
+ * 璁剧疆寮圭獥骞崇Щ浣嶇疆
+ * @param pos
+ * @param value
+ */
+export function setPanTo (pos, value) {
+ var position = pos
+ position = window.map.latLngToLayerPoint(position)
+ position.y += value
+ position = window.map.layerPointToLatLng(position)
+ window.map.flyTo(position)
+}
+
+/**
* 澶嶅埗瀵硅薄
* @param obj
* @returns {{}}
--
Gitblit v1.8.0