import { getLayoutAuthority } from '../../../services/api'; import $modal from '../../../utils/modal'; import { getHostByPath } from '../../../utils/config'; import { gup } from '../../../utils/utils'; import store from "store" export default function () { loadMapScript.call(this); } function loadMapScript() { //基础地图底层 const script = document.createElement("script"); script.src = "https://webapi.amap.com/maps?v=1.4.15&key=9066916e054aa3083a6f081a2a9f9d7a&plugin=Map3D,AMap.ControlBar,AMap.MarkerClusterer,AMap.CircleEditor"; document.body.appendChild(script); //loca图层 const script2 = document.createElement("script"); script2.src = "https://webapi.amap.com/loca?v=1.3.0&key=9066916e054aa3083a6f081a2a9f9d7a"; document.body.appendChild(script2); //加载轨迹ui组件库 const script5 = document.createElement("script"); script5.src = "//webapi.amap.com/ui/1.1/main.js?v=1.1.1"; document.body.appendChild(script5); //视频调度sdk const script4 = document.createElement("script"); script4.src = "https://sqimg.qq.com/expert_qq/webrtc/3.0.6/WebRTCAPI.min.js"; document.body.appendChild(script4); const script3 = document.createElement("script"); script3.src = "https://cache.amap.com/lbs/static/addToolbar.js"; //百度地图图层 const script6 = document.createElement("script"); script6.src = "https://api.map.baidu.com/getscript?type=webgl&v=1.0&ak=8sVvl6fSdyUfLgIt277nlG6hasAWQ2CA&services="; document.body.appendChild(script6); // 百度地图样式 const script7 = document.createElement("link"); script7.href = "https://api.map.baidu.com/res/webgl/10/bmap.css"; document.head.appendChild(script7); if (!"AMap" in window) { document.body.appendChild(script3); } if (!"AMapUI" in window) { document.body.appendChild(script5); } loading.call(this); loadingBMap(); } function loadAMapUI() { //加载轨迹ui组件库 const script5 = document.createElement("script"); script5.src = "//webapi.amap.com/ui/1.1/main.js?v=1.1.1"; document.body.appendChild(script5); loadAMapUIAgain.call(this) } //判断是否已经加载完成Amap function loading() { let _this = this; function nextStep() { return new Promise((resolve) => { setTimeout(() => { resolve("AMap" in window); }, 500); }); } async function ajaxMap() { let ifComplete = false; for (var i = 0; i < 10; i++) { if (!ifComplete) { console.log("没有"); ifComplete = await nextStep(); } else { if (ifComplete) { const { AMap, AMapUI } = window; console.log("第" + i + "次加载" + "地图初始化中。。。"); if (!AMap) { loadMapScript.call(_this); } else { _getLayoutAuthority.call(_this) // _this.initialMap(); // if (!AMapUI) { // loadAMapUI.call(_this) // } else { // } } break; } else { message.error("网络超时"); } } } } ajaxMap(); }; //判断是否已经加载完成AMapUI function loadAMapUIAgain() { let _this = this; function nextStep() { return new Promise((resolve) => { setTimeout(() => { resolve("AMapUI" in window); }, 500); }); } async function ajaxMap() { let ifComplete = false; for (var i = 0; i < 10; i++) { if (!ifComplete) { console.log("没有"); ifComplete = await nextStep(); } else { if (ifComplete) { const { AMapUI } = window; console.log("第" + i + "次加载" + "AMapUI。。。"); if (!AMapUI) { loadAMapUI.call(_this) } else { // InitTraietory.call(_this) } break; } else { message.error("网络超时"); } } } } ajaxMap(); } //判断是否已经加载完成BMapGL function loadingBMap() { let _this = this; function nextStep() { return new Promise((resolve) => { setTimeout(() => { resolve("BMapGL" in window); }, 500); }); } async function ajaxMap() { let ifComplete = false; for (var i = 0; i < 10; i++) { if (!ifComplete) { console.log("没有"); ifComplete = await nextStep(); } else { if (ifComplete) { const { BMapGL } = window; console.log("第" + i + "次加载" + "地球初始化中。。。"); break; } else { message.error("网络超时"); } } } } ajaxMap(); }; //获取图层权限信息 function _getLayoutAuthority() { let app_type = store.get('saas')['app_type']; if (app_type == 1) { this.props.dispatch({ type: 'command/setLayoutAuthority', payload: { defaultLayer: "是", defaultLayerName: "基础调度", } }) this.setState({ showEarchMap: false, }) this.initialMap("attendance", "normalMap"); const { AMapUI } = window; if (!AMapUI) { loadAMapUI.call(this) } } else { getLayoutAuthority({ _currpage: 1, lines: 1 }, { appId: "__ZLuP7RGirprZZ6SCdiX", viewId: "__jN3d9GetQI3p4DdC5To", opentarget: "detail", containTitle: "图层权限设置", }).then(res => { if (res.data && res.data.data) { let data = res.data.data[0] // attendancePermissions: 助勤点图层 // basisLayer: 增值图层 // customLayer: 定制图层 // defaultLayer: 监管图层 // domainPermissions: 保安企业图层 // additionalLayer 附加图层是否开启 // additionalName 附加图层名称 // earthLayer: 地图图层 // hardWarePermissions: 硬件图层 // peoplePermissions: 保安人员 // additionalType 附加图层类型 if (!data) { return $modal( 您没有权限使用该服务, '', [], ); } if (!data.defaultLayer && !data.basisLayer && !data.customLayer && data.additionalLayer) { return $modal( 您没有权限使用该服务, '', [], ); } let baseUrl = getHostByPath('v5base') //判断logo图片路径如果返回obs,直接用obs路径,否则用/obpm全路径拼接 let commonLogo='' let dataCommonLogo=data.commonLogo && (JSON.parse(data.commonLogo)[0].path) if(dataCommonLogo.indexOf('http')>-1){ commonLogo=dataCommonLogo }else{ commonLogo=`${baseUrl}/obpm${dataCommonLogo}` } let darkLogo='' let datadarkLogo=data.darkLogo && (JSON.parse(data.darkLogo)[0].path) if(datadarkLogo.indexOf('http')>-1){ darkLogo=datadarkLogo }else{ darkLogo=`${baseUrl}/obpm${datadarkLogo}` } // let commonLogo = data.commonLogo.length > 0 ? `${baseUrl}/obpm${JSON.parse(data.commonLogo)[0].path}` : "" // let darkLogo = data.darkLogo.length > 0 ? `${baseUrl}/obpm${JSON.parse(data.darkLogo)[0].path}` : "" // data.customLayer = "" this.props.dispatch({ type: 'command/setLayoutAuthority', payload: { attendanceMapShow: data.defaultLayer, aPictureMapShow: data.customLayer, policeMapShow: data.basisLayer, defaultLayer: data.defaultLayer, basisLayer: data.basisLayer, customLayer: data.customLayer, additionalLayer: data.additionalLayer, attendancePermissions: data.attendancePermissions, basisLayerName: data.basisLayerName || "增值图层", customLayerName: data.customLayerName || "定制图层", defaultLayerName: data.defaultLayerName || "监管图层", additionalName: data.additionalName, domainPermissions: data.domainPermissions, earthLayer: data.earthLayer, hardWarePermissions: data.hardWarePermissions, peoplePermissions: data.peoplePermissions, commonLogo: commonLogo, darkLogo: darkLogo, additionalType: data.additionalType } }) if (data.customLayer) { // this.props.dispatch({ // type: 'command/setMapStyle', // payload: 'dark' // }) } else { this.setState({ showEarchMap: false, }) } // this.setState({ // showEarchMap: false, // }) let layoutName = '' let mapName = '' if (data.customLayer) { layoutName = 'aPicture' mapName = 'locaMap' } else if (data.defaultLayer) { layoutName = 'attendance' mapName = 'normalMap' } else if (data.twoLayer) { layoutName = 'person' mapName = 'personMap' } else if (data.basisLayer) { layoutName = 'police' mapName = 'policeMap' } else if (data.additionalLayer && data.additionalType == "南宁海康押运") { layoutName = 'nanNing' mapName = 'nanNingMap' } this.initialMap(layoutName, mapName); const { AMapUI } = window; if (!AMapUI) { loadAMapUI.call(this) } } }) } }