diff --git a/src/components/Map/Map.vue b/src/components/Map/Map.vue index 11bbc37..cc31001 100644 --- a/src/components/Map/Map.vue +++ b/src/components/Map/Map.vue @@ -555,20 +555,21 @@ setLegendData([{ data: json, layername: key, type: "point" }]); }; - const beansToMap = ({ - beans, - fields = { geometry: "geometry", lng: "lng", lat: "lat", name: "name" }, - type, - isConvert, - }) => { + const beansToMap = ({beans, fields = { geometry: "geometry", lng: "lng", lat: "lat", name: "name" }, type, isConvert,}) => { let geojson = turf.featureCollection( beans.filter((i) => i[fields.geometry] || (Boolean(Number(i[fields.lng])) && Boolean(Number(i[fields.lat])))).map((i) => { let feature = null; if (i[fields.geometry]) feature = turf.feature(Terraformer.WKT.parse(i[fields.geometry]), {...i, name: i[fields.name],}); if (i[fields.lng]) feature = turf.point([i[fields.lng], i[fields.lat]].map(Number), {...i, name: i[fields.name],}); feature.properties.visible = false; + if ( feature.properties.name && !turf.getType(feature).toLocaleLowerCase().includes("point")) { + let center = turf.pointOnFeature(feature); + center.properties = { ...feature.properties, minzoom: 10,type:feature.properties.type }; + center.properties.geometry = Terraformer.WKT.convert(center.geometry); + return [feature,center]; + } return feature; - }).filter(Boolean)); + }).flat().filter(Boolean)); isConvert && (geojson = gcoord.transform(geojson, gcoord.AMap, gcoord.WGS84)); setGeoJSON({ json: geojson, key: type }); }; diff --git a/src/components/Map/Map.vue b/src/components/Map/Map.vue index 11bbc37..cc31001 100644 --- a/src/components/Map/Map.vue +++ b/src/components/Map/Map.vue @@ -555,20 +555,21 @@ setLegendData([{ data: json, layername: key, type: "point" }]); }; - const beansToMap = ({ - beans, - fields = { geometry: "geometry", lng: "lng", lat: "lat", name: "name" }, - type, - isConvert, - }) => { + const beansToMap = ({beans, fields = { geometry: "geometry", lng: "lng", lat: "lat", name: "name" }, type, isConvert,}) => { let geojson = turf.featureCollection( beans.filter((i) => i[fields.geometry] || (Boolean(Number(i[fields.lng])) && Boolean(Number(i[fields.lat])))).map((i) => { let feature = null; if (i[fields.geometry]) feature = turf.feature(Terraformer.WKT.parse(i[fields.geometry]), {...i, name: i[fields.name],}); if (i[fields.lng]) feature = turf.point([i[fields.lng], i[fields.lat]].map(Number), {...i, name: i[fields.name],}); feature.properties.visible = false; + if ( feature.properties.name && !turf.getType(feature).toLocaleLowerCase().includes("point")) { + let center = turf.pointOnFeature(feature); + center.properties = { ...feature.properties, minzoom: 10,type:feature.properties.type }; + center.properties.geometry = Terraformer.WKT.convert(center.geometry); + return [feature,center]; + } return feature; - }).filter(Boolean)); + }).flat().filter(Boolean)); isConvert && (geojson = gcoord.transform(geojson, gcoord.AMap, gcoord.WGS84)); setGeoJSON({ json: geojson, key: type }); }; diff --git a/src/components/Map/MapBox.vue b/src/components/Map/MapBox.vue index d5e8a4c..3a6d7b1 100644 --- a/src/components/Map/MapBox.vue +++ b/src/components/Map/MapBox.vue @@ -490,7 +490,7 @@ let feature = []; if (properties.geometry) { let area = turf.feature(Terraformer.WKT.parse(properties.geometry)); - feature = [turf.difference(mb, area)]; + feature = [turf.difference(turf.featureCollection([mb, area]))]; mapCenterByData(turf.bbox(area)); } newfiberMap @@ -738,14 +738,13 @@ let prevObj = null; const panelDataToMap = (obj) => { let isUp = Object.keys(obj).includes("isUp") ? obj.isUp : true; //是否触发地图点击事件 默认触发 - debugger const { setLayerVisible, setHighlight } = events_params; // if (prevObj != null) busEmit(setLayerVisible.key, { layername: prevObj.type, isCheck: false }); busEmit(setHighlight.key, []); // busEmit(setLayerVisible.key, { layername: obj.type, isCheck: true }); // debugger; - let features = ["point", "linestring", "polygon", "hb_wh_dhgx_psfq_geometrys", "hb_wh_dhgx_merge",'ps_watch_area_geometrys'].map((key) => newfiberMap.map.getSource(key)._options.data.features.filter((i) => (i.properties.name || "").includes(obj.name) || (obj.id ? obj.id == i.properties.pid : true))).flat(); - let feature = obj.watchAreaName?features.filter((i) => i.properties.name == obj.name && i.properties.id == obj.id)[0]:features.filter((i) => i.properties.p_type)[0] || features.filter((i) => i.properties.name == obj.name && i.properties.id == obj.id)[0] || features[_.random(0, features.length - 1)]; + let features = ["point", "linestring", "polygon", "hb_wh_dhgx_psfq_geometrys", "hb_wh_dhgx_merge",'ps_watch_area_geometrys'].map((key) => newfiberMap.map.getSource(key)._options.data.features.filter((i) => (i.properties.name || "").includes(obj.name) || (obj.id ? obj.id == i.properties.pid : false))).flat(); + let feature = obj.watchAreaName || obj.stName?features.filter((i) => i.properties.name == obj.name || i.properties.id == obj.id)[0]:features.filter((i) => i.properties.p_type)[0] || features.filter((i) => i.properties.name == obj.name && i.properties.id == obj.id)[0] || features[_.random(0, features.length - 1)]; console.log("feature.properties.p_type&&isUp", feature.properties.p_type && isUp); if (feature.properties.p_type && isUp) return mapClickEvt(undefined, feature.properties, "排水分区"); if (!feature) return; @@ -754,13 +753,8 @@ }; const mapCenterByData = (bbox) => { - newfiberMap.map.fitBounds( - [ - [bbox[0], bbox[1]], - [bbox[2], bbox[3]], - ], - { padding: 100, offset: [100, 10], maxZoom: 18, pitch: 30,bearing:-9.5, duration: 500 } - ); + bbox = turf.bbox(turf.transformScale(turf.bboxPolygon(bbox),0.7)) + newfiberMap.map.fitBounds([[bbox[0], bbox[1]], [bbox[2], bbox[3]],], { padding: 100, offset: [100, -10],maxZoom: 18, pitch: 30,bearing:-9.5, duration: 500 }); }; const trajectoryToMap = (data) => { clearTrajectory(); @@ -927,15 +921,11 @@ //地理/逆地理编码 const geoRegeo = async ({ name, lngLat, callback }) => { - let flag, - params = null; + let flag, params = null; if (name) (flag = "geo"), (params = `address=${name}`); if (lngLat) (flag = "regeo"), (params = `location=${lngLat.join(",")}`); if (!(flag || params)) console.log("name,lngLat is null!"); - const results = await request( - `/amap/v3/geocode/${flag}?${params}&extensions=all&output=json&key=f627fbb24176be73142eb0b5088d8683&city=420111` - ); - console.log("geoRegeo results", results); + const results = await request(`/amap/v3/geocode/${flag}?${params}&extensions=all&output=json&key=f627fbb24176be73142eb0b5088d8683&city=420111`); callback && callback(results); return results; }; @@ -1095,7 +1085,7 @@ newfiberMap.map.getCanvas().id = newfiberMap.map.getCanvas().className; mx_map.create(map, { locateFile: (fileName) => `https://dhgx12.wh-nf.cn:7081/resource/v4/libs/other/mx_draw/wasm/${mode}/${fileName}`, - fileUrl: 'https://dhgx12.wh-nf.cn:7081/resource/v4/kexuedao.dwg.mxweb', + fileUrl: 'https://dhgx12.wh-nf.cn:7081/resource/v4/aa.dwg.mxweb', viewBackgroundColor: {red: 0, green: 0, blue: 0} }); window.mx_map = mx_map;*/ diff --git a/src/components/Map/Map.vue b/src/components/Map/Map.vue index 11bbc37..cc31001 100644 --- a/src/components/Map/Map.vue +++ b/src/components/Map/Map.vue @@ -555,20 +555,21 @@ setLegendData([{ data: json, layername: key, type: "point" }]); }; - const beansToMap = ({ - beans, - fields = { geometry: "geometry", lng: "lng", lat: "lat", name: "name" }, - type, - isConvert, - }) => { + const beansToMap = ({beans, fields = { geometry: "geometry", lng: "lng", lat: "lat", name: "name" }, type, isConvert,}) => { let geojson = turf.featureCollection( beans.filter((i) => i[fields.geometry] || (Boolean(Number(i[fields.lng])) && Boolean(Number(i[fields.lat])))).map((i) => { let feature = null; if (i[fields.geometry]) feature = turf.feature(Terraformer.WKT.parse(i[fields.geometry]), {...i, name: i[fields.name],}); if (i[fields.lng]) feature = turf.point([i[fields.lng], i[fields.lat]].map(Number), {...i, name: i[fields.name],}); feature.properties.visible = false; + if ( feature.properties.name && !turf.getType(feature).toLocaleLowerCase().includes("point")) { + let center = turf.pointOnFeature(feature); + center.properties = { ...feature.properties, minzoom: 10,type:feature.properties.type }; + center.properties.geometry = Terraformer.WKT.convert(center.geometry); + return [feature,center]; + } return feature; - }).filter(Boolean)); + }).flat().filter(Boolean)); isConvert && (geojson = gcoord.transform(geojson, gcoord.AMap, gcoord.WGS84)); setGeoJSON({ json: geojson, key: type }); }; diff --git a/src/components/Map/MapBox.vue b/src/components/Map/MapBox.vue index d5e8a4c..3a6d7b1 100644 --- a/src/components/Map/MapBox.vue +++ b/src/components/Map/MapBox.vue @@ -490,7 +490,7 @@ let feature = []; if (properties.geometry) { let area = turf.feature(Terraformer.WKT.parse(properties.geometry)); - feature = [turf.difference(mb, area)]; + feature = [turf.difference(turf.featureCollection([mb, area]))]; mapCenterByData(turf.bbox(area)); } newfiberMap @@ -738,14 +738,13 @@ let prevObj = null; const panelDataToMap = (obj) => { let isUp = Object.keys(obj).includes("isUp") ? obj.isUp : true; //是否触发地图点击事件 默认触发 - debugger const { setLayerVisible, setHighlight } = events_params; // if (prevObj != null) busEmit(setLayerVisible.key, { layername: prevObj.type, isCheck: false }); busEmit(setHighlight.key, []); // busEmit(setLayerVisible.key, { layername: obj.type, isCheck: true }); // debugger; - let features = ["point", "linestring", "polygon", "hb_wh_dhgx_psfq_geometrys", "hb_wh_dhgx_merge",'ps_watch_area_geometrys'].map((key) => newfiberMap.map.getSource(key)._options.data.features.filter((i) => (i.properties.name || "").includes(obj.name) || (obj.id ? obj.id == i.properties.pid : true))).flat(); - let feature = obj.watchAreaName?features.filter((i) => i.properties.name == obj.name && i.properties.id == obj.id)[0]:features.filter((i) => i.properties.p_type)[0] || features.filter((i) => i.properties.name == obj.name && i.properties.id == obj.id)[0] || features[_.random(0, features.length - 1)]; + let features = ["point", "linestring", "polygon", "hb_wh_dhgx_psfq_geometrys", "hb_wh_dhgx_merge",'ps_watch_area_geometrys'].map((key) => newfiberMap.map.getSource(key)._options.data.features.filter((i) => (i.properties.name || "").includes(obj.name) || (obj.id ? obj.id == i.properties.pid : false))).flat(); + let feature = obj.watchAreaName || obj.stName?features.filter((i) => i.properties.name == obj.name || i.properties.id == obj.id)[0]:features.filter((i) => i.properties.p_type)[0] || features.filter((i) => i.properties.name == obj.name && i.properties.id == obj.id)[0] || features[_.random(0, features.length - 1)]; console.log("feature.properties.p_type&&isUp", feature.properties.p_type && isUp); if (feature.properties.p_type && isUp) return mapClickEvt(undefined, feature.properties, "排水分区"); if (!feature) return; @@ -754,13 +753,8 @@ }; const mapCenterByData = (bbox) => { - newfiberMap.map.fitBounds( - [ - [bbox[0], bbox[1]], - [bbox[2], bbox[3]], - ], - { padding: 100, offset: [100, 10], maxZoom: 18, pitch: 30,bearing:-9.5, duration: 500 } - ); + bbox = turf.bbox(turf.transformScale(turf.bboxPolygon(bbox),0.7)) + newfiberMap.map.fitBounds([[bbox[0], bbox[1]], [bbox[2], bbox[3]],], { padding: 100, offset: [100, -10],maxZoom: 18, pitch: 30,bearing:-9.5, duration: 500 }); }; const trajectoryToMap = (data) => { clearTrajectory(); @@ -927,15 +921,11 @@ //地理/逆地理编码 const geoRegeo = async ({ name, lngLat, callback }) => { - let flag, - params = null; + let flag, params = null; if (name) (flag = "geo"), (params = `address=${name}`); if (lngLat) (flag = "regeo"), (params = `location=${lngLat.join(",")}`); if (!(flag || params)) console.log("name,lngLat is null!"); - const results = await request( - `/amap/v3/geocode/${flag}?${params}&extensions=all&output=json&key=f627fbb24176be73142eb0b5088d8683&city=420111` - ); - console.log("geoRegeo results", results); + const results = await request(`/amap/v3/geocode/${flag}?${params}&extensions=all&output=json&key=f627fbb24176be73142eb0b5088d8683&city=420111`); callback && callback(results); return results; }; @@ -1095,7 +1085,7 @@ newfiberMap.map.getCanvas().id = newfiberMap.map.getCanvas().className; mx_map.create(map, { locateFile: (fileName) => `https://dhgx12.wh-nf.cn:7081/resource/v4/libs/other/mx_draw/wasm/${mode}/${fileName}`, - fileUrl: 'https://dhgx12.wh-nf.cn:7081/resource/v4/kexuedao.dwg.mxweb', + fileUrl: 'https://dhgx12.wh-nf.cn:7081/resource/v4/aa.dwg.mxweb', viewBackgroundColor: {red: 0, green: 0, blue: 0} }); window.mx_map = mx_map;*/ diff --git a/src/views/pictureOnMap/LayerControl.vue b/src/views/pictureOnMap/LayerControl.vue index dc81682..a476434 100644 --- a/src/views/pictureOnMap/LayerControl.vue +++ b/src/views/pictureOnMap/LayerControl.vue @@ -200,6 +200,10 @@ value: "outlet_water_level", label: "排口流量", }, + { + value: "waterlogging", + label: "渍水点", + }, ], }, { diff --git a/src/components/Map/Map.vue b/src/components/Map/Map.vue index 11bbc37..cc31001 100644 --- a/src/components/Map/Map.vue +++ b/src/components/Map/Map.vue @@ -555,20 +555,21 @@ setLegendData([{ data: json, layername: key, type: "point" }]); }; - const beansToMap = ({ - beans, - fields = { geometry: "geometry", lng: "lng", lat: "lat", name: "name" }, - type, - isConvert, - }) => { + const beansToMap = ({beans, fields = { geometry: "geometry", lng: "lng", lat: "lat", name: "name" }, type, isConvert,}) => { let geojson = turf.featureCollection( beans.filter((i) => i[fields.geometry] || (Boolean(Number(i[fields.lng])) && Boolean(Number(i[fields.lat])))).map((i) => { let feature = null; if (i[fields.geometry]) feature = turf.feature(Terraformer.WKT.parse(i[fields.geometry]), {...i, name: i[fields.name],}); if (i[fields.lng]) feature = turf.point([i[fields.lng], i[fields.lat]].map(Number), {...i, name: i[fields.name],}); feature.properties.visible = false; + if ( feature.properties.name && !turf.getType(feature).toLocaleLowerCase().includes("point")) { + let center = turf.pointOnFeature(feature); + center.properties = { ...feature.properties, minzoom: 10,type:feature.properties.type }; + center.properties.geometry = Terraformer.WKT.convert(center.geometry); + return [feature,center]; + } return feature; - }).filter(Boolean)); + }).flat().filter(Boolean)); isConvert && (geojson = gcoord.transform(geojson, gcoord.AMap, gcoord.WGS84)); setGeoJSON({ json: geojson, key: type }); }; diff --git a/src/components/Map/MapBox.vue b/src/components/Map/MapBox.vue index d5e8a4c..3a6d7b1 100644 --- a/src/components/Map/MapBox.vue +++ b/src/components/Map/MapBox.vue @@ -490,7 +490,7 @@ let feature = []; if (properties.geometry) { let area = turf.feature(Terraformer.WKT.parse(properties.geometry)); - feature = [turf.difference(mb, area)]; + feature = [turf.difference(turf.featureCollection([mb, area]))]; mapCenterByData(turf.bbox(area)); } newfiberMap @@ -738,14 +738,13 @@ let prevObj = null; const panelDataToMap = (obj) => { let isUp = Object.keys(obj).includes("isUp") ? obj.isUp : true; //是否触发地图点击事件 默认触发 - debugger const { setLayerVisible, setHighlight } = events_params; // if (prevObj != null) busEmit(setLayerVisible.key, { layername: prevObj.type, isCheck: false }); busEmit(setHighlight.key, []); // busEmit(setLayerVisible.key, { layername: obj.type, isCheck: true }); // debugger; - let features = ["point", "linestring", "polygon", "hb_wh_dhgx_psfq_geometrys", "hb_wh_dhgx_merge",'ps_watch_area_geometrys'].map((key) => newfiberMap.map.getSource(key)._options.data.features.filter((i) => (i.properties.name || "").includes(obj.name) || (obj.id ? obj.id == i.properties.pid : true))).flat(); - let feature = obj.watchAreaName?features.filter((i) => i.properties.name == obj.name && i.properties.id == obj.id)[0]:features.filter((i) => i.properties.p_type)[0] || features.filter((i) => i.properties.name == obj.name && i.properties.id == obj.id)[0] || features[_.random(0, features.length - 1)]; + let features = ["point", "linestring", "polygon", "hb_wh_dhgx_psfq_geometrys", "hb_wh_dhgx_merge",'ps_watch_area_geometrys'].map((key) => newfiberMap.map.getSource(key)._options.data.features.filter((i) => (i.properties.name || "").includes(obj.name) || (obj.id ? obj.id == i.properties.pid : false))).flat(); + let feature = obj.watchAreaName || obj.stName?features.filter((i) => i.properties.name == obj.name || i.properties.id == obj.id)[0]:features.filter((i) => i.properties.p_type)[0] || features.filter((i) => i.properties.name == obj.name && i.properties.id == obj.id)[0] || features[_.random(0, features.length - 1)]; console.log("feature.properties.p_type&&isUp", feature.properties.p_type && isUp); if (feature.properties.p_type && isUp) return mapClickEvt(undefined, feature.properties, "排水分区"); if (!feature) return; @@ -754,13 +753,8 @@ }; const mapCenterByData = (bbox) => { - newfiberMap.map.fitBounds( - [ - [bbox[0], bbox[1]], - [bbox[2], bbox[3]], - ], - { padding: 100, offset: [100, 10], maxZoom: 18, pitch: 30,bearing:-9.5, duration: 500 } - ); + bbox = turf.bbox(turf.transformScale(turf.bboxPolygon(bbox),0.7)) + newfiberMap.map.fitBounds([[bbox[0], bbox[1]], [bbox[2], bbox[3]],], { padding: 100, offset: [100, -10],maxZoom: 18, pitch: 30,bearing:-9.5, duration: 500 }); }; const trajectoryToMap = (data) => { clearTrajectory(); @@ -927,15 +921,11 @@ //地理/逆地理编码 const geoRegeo = async ({ name, lngLat, callback }) => { - let flag, - params = null; + let flag, params = null; if (name) (flag = "geo"), (params = `address=${name}`); if (lngLat) (flag = "regeo"), (params = `location=${lngLat.join(",")}`); if (!(flag || params)) console.log("name,lngLat is null!"); - const results = await request( - `/amap/v3/geocode/${flag}?${params}&extensions=all&output=json&key=f627fbb24176be73142eb0b5088d8683&city=420111` - ); - console.log("geoRegeo results", results); + const results = await request(`/amap/v3/geocode/${flag}?${params}&extensions=all&output=json&key=f627fbb24176be73142eb0b5088d8683&city=420111`); callback && callback(results); return results; }; @@ -1095,7 +1085,7 @@ newfiberMap.map.getCanvas().id = newfiberMap.map.getCanvas().className; mx_map.create(map, { locateFile: (fileName) => `https://dhgx12.wh-nf.cn:7081/resource/v4/libs/other/mx_draw/wasm/${mode}/${fileName}`, - fileUrl: 'https://dhgx12.wh-nf.cn:7081/resource/v4/kexuedao.dwg.mxweb', + fileUrl: 'https://dhgx12.wh-nf.cn:7081/resource/v4/aa.dwg.mxweb', viewBackgroundColor: {red: 0, green: 0, blue: 0} }); window.mx_map = mx_map;*/ diff --git a/src/views/pictureOnMap/LayerControl.vue b/src/views/pictureOnMap/LayerControl.vue index dc81682..a476434 100644 --- a/src/views/pictureOnMap/LayerControl.vue +++ b/src/views/pictureOnMap/LayerControl.vue @@ -200,6 +200,10 @@ value: "outlet_water_level", label: "排口流量", }, + { + value: "waterlogging", + label: "渍水点", + }, ], }, { diff --git a/src/views/pictureOnMap/page/FloodControlAndDrainage/Pailaodiaodu/MonitoringWarningLeft/components/drainageDDZL.vue b/src/views/pictureOnMap/page/FloodControlAndDrainage/Pailaodiaodu/MonitoringWarningLeft/components/drainageDDZL.vue index 5eca826..456960d 100644 --- a/src/views/pictureOnMap/page/FloodControlAndDrainage/Pailaodiaodu/MonitoringWarningLeft/components/drainageDDZL.vue +++ b/src/views/pictureOnMap/page/FloodControlAndDrainage/Pailaodiaodu/MonitoringWarningLeft/components/drainageDDZL.vue @@ -104,6 +104,9 @@ :autosize="{ minRows: 4, maxRows: 6 }" > + + + 下发调度建议 @@ -163,6 +166,7 @@