/** * 图层加载工具类 */ import {setBoat} from '@/utils/map/Boat' import {addLayer,setOpacity} from "@/utils/map/ArcgisUtil"; import {setCenter,setSxdxCamera} from '@/utils/map/Common' // let layerList = ['cb','mt','jjq','dtq','md','sszh','hb','hd','sxdx','2023.1','2022.1','2022.2','2021.1','2021.2','2020.1','2020.2'] let layerList = [] let defaultLayerList = [ { // 水上客运 id: 'waterPassenger', title: 'waterPassenger', type: 'feature', url:'https://10.83.240.193:8090/arcgis/rest/services/water_passenger_3857/MapServer', visible: false, opacity: 1, token: '', is_goto: false }, { // 数字孪生图层 id: 'digitalTwain', title: 'digitalTwain', type: 'feature', url:'https://10.83.240.193:8090/arcgis/rest/services/digitalTwain_3857/MapServer', visible: false, opacity: 1, token: '', is_goto: false }, { // 地图查询图层 id: 'ghjgCxall', title: 'ghjgCxall', type: 'shc_map', url:'https://10.83.240.193:8090/arcgis/rest/services/ghjg_cxall/MapServer', visible: false, opacity: 1, token: '', is_goto: false } ] export function addDefaultServer(){ for (let i = 0; i < defaultLayerList.length; i++) { let layerObject = defaultLayerList[i]; addLayer({ id: layerObject.id, title: layerObject.title, type: layerObject.type, url: layerObject.url, visible: layerObject.visible, opacity: layerObject.opacity, token: layerObject.token, is_goto: layerObject.is_goto }) } } export function closeAllLayer() { for (let i = layerList.length-1; i >=0;i--) { addLayerByName(layerList[i],false) } } export function addLayerByName(name,isShow,opacity){ // 存储到打开图层列表 if(isShow){ let isExist = false for(let i = layerList.length-1; i >=0;i--){ if(layerList[i] == name){ isExist = true } } if(!isExist){ layerList.push(name) } }else{ for(let i = layerList.length-1; i >=0;i--){ if(layerList[i] == name){ layerList.splice(i,1) } } } console.log(layerList) switch (name) { // 船舶 case 'cb': setBoat(isShow) break // 码头泊位 case 'mt': addLayer({ id: 'portLayer', title: 'portLayer', type: 'feature', url: 'https://10.83.240.193:8090/arcgis/rest/services/digitalTwain_3857/MapServer/0', visible: isShow, opacity: opacity?opacity:1, token: '', is_goto: true }) break // 警戒区 case 'jjq': addLayer({ id: 'jjqIconLayer', title: 'jjqIconLayer', type: 'scene', url: 'https://geoscene.geosceneonline.cn/server/rest/services/Hosted/警戒区图标/SceneServer', visible: isShow, opacity: opacity?opacity:1, token: '', is_goto: true }) addLayer({ id: 'jjqAreaLayer', title: 'jjqAreaLayer', type: 'feature', url: 'https://10.83.240.193:8090/arcgis/rest/services/jingjiequ/MapServer', visible: isShow, opacity: opacity?opacity:0.5, token: '', is_goto: true }) break // 掉头区 case 'dtq': addLayer({ id: 'dtqIconLayer', title: 'dtqIconLayer', type: 'scene', url: 'https://geoscene.geosceneonline.cn/server/rest/services/Hosted/掉头区图标/SceneServer', visible: isShow, opacity: opacity?opacity:1, token: '', is_goto: true }) addLayer({ id: 'dtqAreaLayer', title: 'dtqAreaLayer', type: 'feature', url: 'https://10.83.240.193:8090/arcgis/rest/services/backArea/MapServer', visible: isShow, opacity: opacity?opacity:0.5, token: '', is_goto: true }) break // 锚地 case 'md': addLayer({ id: 'mdIconLayer', title: 'mdIconLayer', type: 'scene', url: 'https://geoscene.geosceneonline.cn/server/rest/services/Hosted/锚地图标/SceneServer', visible: isShow, opacity: opacity?opacity:1, token: '', is_goto: true }) addLayer({ id: 'mdAreaLayer', title: 'mdAreaLayer', type: 'feature', url: 'https://10.83.240.193:8090/arcgis/rest/services/maodi/MapServer', visible: isShow, opacity: opacity?opacity:0.5, token: '', is_goto: true }) break // 水上综合绿色服务器 case 'sszh': addLayer({ id: 'ssfwqIconLayer', title: 'ssfwqIconLayer', type: 'scene', url: 'https://geoscene.geosceneonline.cn/server/rest/services/Hosted/水上绿色综合服务区图标/SceneServer', visible: isShow, opacity: opacity?opacity:1, token: '', is_goto: true }) addLayer({ id: 'ssfwqAreaLayer', title: 'ssfwqAreaLayer', type: 'feature', url: 'https://10.83.240.193:8090/arcgis/rest/services/shuishangfuququ/MapServer', visible: isShow, opacity: opacity?opacity:0.5, token: '', is_goto: true }) break // 航标 case 'hb': addLayer({ id: 'hbSceneLayer', title: 'hbSceneLayer', type: 'scene', url: 'https://geoscene.geosceneonline.cn/server/rest/services/Hosted/航标/SceneServer', visible: isShow, opacity: opacity?opacity:1, token: '', is_goto: true }) break // 航道 case 'hd': addLayer({ id: 'channelLayer', title: 'channelLayer', type: 'feature', url: 'https://10.83.240.193:8090/arcgis/rest/services/digitalTwain_3857/MapServer/2', visible: isShow, opacity: opacity?opacity:1, token: '', is_goto: true }) break // 水下地形 case 'sxdx': addLayer({ id: 'dbsLayer', title: 'dbsLayer', type: 'scene', url: 'https://geoscene.geosceneonline.cn/server/rest/services/Hosted/多波束/SceneServer', visible: isShow, opacity: opacity?opacity:1, token: '', is_goto: true }) // if(isShow){ // setOpacity(0.4) // setSxdxCamera() // }else{ // setOpacity(1) // setCenter() // } break case '2023.1': addLayer({ id: 'deepthLayer202301', title: 'deepthLayer202301', type: 'scene', url: 'https://geoscene.geosceneonline.cn/server/rest/services/Hosted/多波束/SceneServer', visible: isShow, opacity: opacity?opacity:1, token: '', is_goto: true }) break case '2022.1': addLayer({ id: 'deepthLayer202201', title: 'deepthLayer202201', type: 'scene', url: 'https://geoscene.geosceneonline.cn/server/rest/services/Hosted/第一期2022/SceneServer', visible: isShow, opacity: opacity?opacity:1, token: '', is_goto: false }) break case '2022.2': addLayer({ id: 'deepthLayer202202', title: 'deepthLayer202202', type: 'scene', url: 'https://geoscene.geosceneonline.cn/server/rest/services/Hosted/第二期2022/SceneServer', visible: isShow, opacity: 1, token: '', is_goto: false }) break case '2021.1': addLayer({ id: 'deepthLayer202101', title: 'deepthLayer202101', type: 'scene', url: 'https://geoscene.geosceneonline.cn/server/rest/services/Hosted/第一期2021/SceneServer', visible: isShow, opacity: 1, token: '', is_goto: false }) break case '2021.2': addLayer({ id: 'deepthLayer202102', title: 'deepthLayer202102', type: 'scene', url: 'https://geoscene.geosceneonline.cn/server/rest/services/Hosted/第二期2021/SceneServer', visible: isShow, opacity: 1, token: '', is_goto: false }) break case '2020.1': addLayer({ id: 'deepthLayer202001', title: 'deepthLayer202001', type: 'scene', url: 'https://geoscene.geosceneonline.cn/server/rest/services/Hosted/第一期2020/SceneServer', visible: isShow, opacity: 1, token: '', is_goto: false }) break case '2020.2': addLayer({ id: 'deepthLayer202002', title: 'deepthLayer202002', type: 'scene', url: 'https://geoscene.geosceneonline.cn/server/rest/services/Hosted/第二期2020/SceneServer', visible: isShow, opacity: 1, token: '', is_goto: false }) break // 两岸白膜 case 'bm': addLayer({ id: 'hpj500mBuildingLayer', title: 'hpj500mBuildingLayer', type: 'scene', url: 'https://geoscene.geosceneonline.cn/server/rest/services/Hosted/黄浦江周边建筑500m/SceneServer', visible: isShow, opacity: 1, token: '', is_goto: false }) addLayer({ id: 'pxBuildingLayer', title: 'pxBuildingLayer', type: 'scene', url: 'https://geoscene.geosceneonline.cn/server/rest/services/Hosted/浦西核心段白膜/SceneServer', visible: isShow, opacity: 1, token: '', is_goto: false }) break // 两岸精膜 case 'jm': addLayer({ id: 'jmBuildingLayer', title: 'jmBuildingLayer', type: 'scene', url: 'https://geoscene.geosceneonline.cn/server/rest/services/Hosted/黄浦江沿岸精模/SceneServer', visible: isShow, opacity: 1, token: '', is_goto: false }) break // 客运码头 case 'kymt': addLayer({ id: 'kymtLayer', title: 'kymtLayer', type: 'scene', url: 'https://geoscene.geosceneonline.cn/server/rest/services/Hosted/客运码头/SceneServer', visible: isShow, opacity: 1, token: '', is_goto: false }) break // 淤积预警 case 'yjyj': addLayer({ id: 'yjyjLayer', title: 'yjyjLayer', type: 'scene', url: 'https://geoscene.geosceneonline.cn/server/rest/services/Hosted/第一期2023淤积/SceneServer', visible: isShow, opacity: opacity?opacity:1, token: '', is_goto: true }) if(isShow){ addLayer({ id: 'dbsLayer', title: 'dbsLayer', type: 'scene', url: 'https://geoscene.geosceneonline.cn/server/rest/services/Hosted/多波束/SceneServer', visible: false, opacity: 1, token: '', is_goto: true }) addLayer({ id: 'dbsLayer', title: 'dbsLayer', type: 'scene', url: 'https://geoscene.geosceneonline.cn/server/rest/services/Hosted/多波束/SceneServer', visible: true, opacity: 0.4, token: '', is_goto: false }) }else{ addLayer({ id: 'dbsLayer', title: 'dbsLayer', type: 'scene', url: 'https://geoscene.geosceneonline.cn/server/rest/services/Hosted/多波束/SceneServer', visible: false, opacity: 1, token: '', is_goto: true }) addLayer({ id: 'dbsLayer', title: 'dbsLayer', type: 'scene', url: 'https://geoscene.geosceneonline.cn/server/rest/services/Hosted/多波束/SceneServer', visible: true, opacity: 1, token: '', is_goto: false }) } break // 疏浚前_22年陆家嘴弯道 case '2022LjzBefore': addLayer({ id: '2022LjzBefore', title: '2022LjzBefore', type: 'scene', url: 'https://geoscene.geosceneonline.cn/server/rest/services/Hosted/疏浚前_22年陆家嘴弯道/SceneServer', visible: isShow, opacity: 1, token: '', is_goto: false }) break // 疏浚后_22年陆家嘴弯道 case '2022LjzAfter': addLayer({ id: '2022LjzAfterLayer', title: '2022LjzAfterLayer', type: 'scene', url: 'https://geoscene.geosceneonline.cn/server/rest/services/Hosted/疏浚后_22年陆家嘴弯道/SceneServer', visible: isShow, opacity: 1, token: '', is_goto: false }) break // 危险品码头 case 'wxpmt': addLayer({ id: 'dangerPortLayer', title: 'dangerPortLayer', type: 'scene', url: 'https://geoscene.geosceneonline.cn/server/rest/services/Hosted/危险品码头/SceneServer', visible: isShow, opacity: opacity?opacity:1, token: '', is_goto: true }) break } }