import { useDispatch, useSelector } from "react-redux"; import LayerMgr from "../layermgr"; import BouaLayer2D from "./layers/BouaLayer2D"; import BouaInLayer2D from "./layers/BouaInLayer2D"; import BouaOutLayer2D from "./layers/BouaOutLayer2D"; import AdcdBorderInLayer2D from "./layers/AdcdBorderInLayer2D" import BouaOutsideLayer2D from "./layers/BouaOutsideLayer2D"; import OfflineMap2D from "./layers/OfflineMap2D"; import SatelliteImage2D from "./layers/SatelliteImage2D"; import RainLayer2D from "./layers/RainLayer2D"; import RainLayer2DRadar from "./layers/RainLayer2D-radar"; import RainLayer2DRh from "./layers/RainLayer2D-rh"; import HLLayer2D from "./layers/HLLayer2D"; import HLLayer2D2 from "./layers/HLLayer2D2"; import HL2Layer2D from "./layers/HL2Layer2D"; import XLYLayer2D from "./layers/XLYLayer2D"; import AdcdBorderLayer2D from './layers/AdcdBorderLayer2D' import YsgcLayer2D from './layers/YsgcLayer2D' import highroadLayer2D from './layers/highroadLayer2D' import Contourlayer from "./layers/contourlayer"; import ContourlayerLoop from "./layers/contourlayerLoop"; import WxqLayer2D from "./layers/WxqLayer2D"; export default class LayerMgr2D extends LayerMgr { constructor(map) { super(); this.map = map; } /** * 添加图层 * @param {@BaseLayer} */ addLayer(layer) { let ollayers = []; if (layer.getRawLayers) { ollayers = layer.getRawLayers(); } for (const ollayer of ollayers) { /*ollayer.getSource().clear(); this.map.removeLayer(ollayer);*/ //console.log("39++++ ollayer",ollayer); this.map.addLayer(ollayer); } this.layers.push(layer); if (layer.onAdd) { layer.onAdd(this.map); } return layer; } addLayerC(layer, cLayerData) { //console.log("58 cLayerData",cLayerData); this.layers = []; this.layers.push(layer); if (layer.onAdd) { layer.onAdd(this.map, cLayerData); } //console.log("layer 74++++++++++++",layer); return layer; } onClick(coordinate) { for (let i = this.layers.length - 1; i >= 0; i -= 1) { const curlayer = this.layers[i]; if (typeof curlayer.onClick === 'function') { const passdown = curlayer.onClick({ map: this.map, coordinate, }); if (!passdown) { break; } } } } destroy() { for (const layer of this.layers) { let ollayers = []; if (layer.getRawLayers) { ollayers = layer.getRawLayers(); } for (const ollayer of ollayers) { this.map.removeLayer(ollayer); } } this.layers = null; } addAppLayers(dispatch, visible, setting, otherParams) { visible = visible || {}; dispatch.map.setMap(this.map); dispatch.map.setClickLoopBtn(false); //离线地图 this.addLayer(new OfflineMap2D({ visible: visible[OfflineMap2D.LayerName], setting, dispatch })); //卫星影像 this.addLayer(new SatelliteImage2D({ visible: visible[SatelliteImage2D.LayerName], setting, dispatch })); //乡镇边界 this.addLayer(new AdcdBorderInLayer2D({ visible: visible[AdcdBorderInLayer2D.LayerName], setting, dispatch })); //县外的边界 // this.addLayer(new BouaOutsideLayer2D({ visible: visible[BouaOutsideLayer2D.LayerName], setting, dispatch })); //河流 // this.addLayer(new HLLayer2D2({ visible: visible[HLLayer2D2.LayerName], setting, dispatch }));//河流线-卫星图 //缺失 this.addLayer(new HLLayer2D({ visible: visible[HLLayer2D.LayerName], setting, dispatch }));//河流线-矢量图 // this.addLayer(new HL2Layer2D({ visible: visible[HL2Layer2D.LayerName], setting, dispatch }));//河流面 //缺失 //省级公路 // this.addLayer(new highroadLayer2D({ visible: visible[highroadLayer2D.LayerName], setting, dispatch })); //缺失 //咸丰边界 // this.addLayer(new BouaLayer2D({ visible: visible[BouaLayer2D.LayerName], setting, dispatch }));//缺失 // this.addLayer(new BouaInLayer2D({ visible: visible[BouaInLayer2D.LayerName], setting, dispatch })); // this.addLayer(new BouaOutLayer2D({ visible: visible[BouaOutLayer2D.LayerName], setting, dispatch })); //RainLayer2DRadar 测雨雷达 // this.addLayer(new RainLayer2DRadar({ visible: visible[RainLayer2DRadar.LayerName], setting, dispatch })); //RainLayer2DRh 融合雨量 // this.addLayer(new RainLayer2DRh({ visible: visible[RainLayer2DRh.LayerName], setting, dispatch })); // this.addLayer(new XLYLayer2D({ visible: visible[XLYLayer2D.LayerName], setting, dispatch })); //行政区划边界 // ['422826102','422826100','422826201','422826104','422826203','422826204','422826200','422826101','422826103','422826202','422826400'].map((i)=>{ // this.addLayer(new AdcdBorderLayer2D({ visible: visible["AdcdBorderLayer_"+i], setting, dispatch },i)); // }) //引水工程 // this.addLayer(new YsgcLayer2D({ visible: visible[YsgcLayer2D.LayerName], setting, dispatch })); //danad:危险区 placement:安置点 transfer:转移路线 flrvvlg:沿河居民户 bsnssinfo:企事业单位 //bridge:桥梁 culvert:路涵 sluice:水闸 daminfo:塘(堰)坝 dike:堤防 wbrinfo:无线预警广播 // this.addLayer(new WxqLayer2D({ visible: visible["Dcpj_danadLayer"], setting, dispatch },"danad")); // this.addLayer(new WxqLayer2D({ visible: visible["Dcpj_placementLayer"], setting, dispatch },"placement")); // this.addLayer(new WxqLayer2D({ visible: visible["Dcpj_transferLayer"], setting, dispatch },"transfer")); // this.addLayer(new WxqLayer2D({ visible: visible["Dcpj_flrvvlgLayer"], setting, dispatch },"flrvvlg")); // this.addLayer(new WxqLayer2D({ visible: visible["Dcpj_bsnssinfoLayer"], setting, dispatch },"bsnssinfo")); // this.addLayer(new WxqLayer2D({ visible: visible["Dcpj_bridgeLayer"], setting, dispatch },"bridge")); // this.addLayer(new WxqLayer2D({ visible: visible["Dcpj_culvertLayer"], setting, dispatch },"culvert")); // this.addLayer(new WxqLayer2D({ visible: visible["Dcpj_sluiceLayer"], setting, dispatch },"sluice")); // this.addLayer(new WxqLayer2D({ visible: visible["Dcpj_daminfoLayer"], setting, dispatch },"daminfo")); // this.addLayer(new WxqLayer2D({ visible: visible["Dcpj_dikeLayer"], setting, dispatch },"dike")); // this.addLayer(new WxqLayer2D({ visible: visible["Dcpj_wbrinfoLayer"], setting, dispatch },"wbrinfo")); this._addAppMarkerLayers(dispatch, visible, setting, otherParams); } addAppLayersC(dispatch, visible, setting) { visible = visible || {}; this.addLayerC(new Contourlayer({ visible: visible[Contourlayer.LayerName], setting, dispatch }),setting.contour); } addAppLayersCLoop(dispatch, visible, setting) { visible = visible || {}; //console.log("layermgr2d ContourlayerLoop 142",setting.contour) if(this.map){ this.addLayerC(new ContourlayerLoop({ visible: visible[ContourlayerLoop.LayerName], setting, dispatch }, this.map),setting.contour); dispatch.map.setMap(this.map); } } }