From 9f5456f88b8397ffbab1ad80331aaa834c15d882 Mon Sep 17 00:00:00 2001
From: 陈泽平 <chenzeping>
Date: 星期一, 17 五月 2021 17:19:52 +0800
Subject: [PATCH] Merge branch 'develop' of http://xearth.cn:6600/r/wuyushui/SewerAndRainNetwork into develop
---
src/components/helpers/LocateHelper.js | 61 ++++++++++++++++++++++--------
1 files changed, 45 insertions(+), 16 deletions(-)
diff --git a/src/components/helpers/LocateHelper.js b/src/components/helpers/LocateHelper.js
index 876e74e..4160b89 100644
--- a/src/components/helpers/LocateHelper.js
+++ b/src/components/helpers/LocateHelper.js
@@ -1,5 +1,6 @@
import { pulseEffect, reversePolyLine } from '../../utils/utils'
-
+import Popup from '@views/popup/Popup'
+import { LAYERPROPS, LAYERS } from '../../conf/Constants'
/**
* 鏍规嵁浼犵殑 feature瀵硅薄瀹氫綅锛�
* @param code
@@ -25,6 +26,7 @@
export const highlight = function (feature, config) {
const L = window.L
const type = feature.geometry.type
+ window.mapManager.clearHighlight()
const highlightLayer = window.mapManager.hightlightLayer
if (type === 'MultiLineString') {
L.geoJSON(feature, {
@@ -50,29 +52,56 @@
}).addTo(highlightLayer)
}
pulseEffect(point)
+ const features = window.mapManager.loadWfsDatas(point)
+ openPopup(point, features)
} else if (type === 'LineString') {
L.polyline(reversePolyLine(feature), { color: 'red' }).addTo(highlightLayer)
}
}
-export const openPopup = function (layerId, id) {
- const layer = this.layers[layerId]
-
- if (layer) {
- layer.eachLayer(function (layer) {
- const layers = layer.getLayers()
- for (var i = 0; i < layers.length; i++) {
- const lay = layers[i]
- const feature = lay.feature
- lay.closePopup()
- if (feature.id === id) {
- lay.openPopup()
- break
+export const openPopup = function (xy, features) {
+ const lt = window.map.latLngToContainerPoint(xy)
+ const datas = popupDatas(features)
+ if (datas.length > 0) {
+ window.$layer.open({
+ content: {
+ comp: Popup, // 缁勪欢
+ data: { // 浼犻�掔殑鍙傛暟
+ datas: datas
}
- }
+ },
+ title: '', // 鏍囬
+ left: lt.x,
+ top: lt.y
})
}
- return null
+}
+
+const popupDatas = function (features) {
+ const datas = []
+ if (features) {
+ for (var i = 0; i < features.length; i++) {
+ const feature = features[i]
+ const id = feature.id
+ const properties = feature.properties
+ const ids = id.split('.')
+
+ const propValues = LAYERPROPS[ids[0]]
+ const contents = {}
+ for (const k in properties) {
+ if (propValues[k]) {
+ contents[propValues[k]] = properties[k]
+ }
+ }
+ datas.push({
+ title: LAYERS[ids[0]],
+ name: feature.id,
+ content: contents
+ })
+ console.log(properties)
+ }
+ }
+ return datas
}
export const getLayer = function (layerId, id) {
--
Gitblit v1.8.0