window._AMapSecurityConfig = { securityJsCode:"14720ba5bb6ba2553facb5fc6b6777c2", } //设备图标 const online = 'https://iot3d-oss.baozhida.cn/UpImage/1681698375d21af1db-3fd2-4032-b7cb-8ee8ac5f6cab.png'; const offline = 'https://iot3d-oss.baozhida.cn/UpImage/168169835869ac506d-f228-46a4-8878-9969b95e6424.png'; const danger = 'https://iot3d-oss.baozhida.cn/UpImage/1681698340c67c3a5a-7cf6-4fbf-be29-7ffae9d31ec1.png'; //设备图标 const online_x = 'https://iot3d-oss.baozhida.cn/UpImage/箱子-绿.png'; const offline_x = 'https://iot3d-oss.baozhida.cn/UpImage/箱子-灰.png'; const danger_x = 'https://iot3d-oss.baozhida.cn/UpImage/箱子-红.png'; //地图标注图标 const start = 'https://iot3d-oss.baozhida.cn/UpImage/16816984598b22098e-272f-48f7-a209-8bdc9fb46744.png'; const pass = 'https://iot3d-oss.baozhida.cn/UpImage/16816984821af72d4e-3be8-46c4-8e58-5351b49b5153.png'; const end = 'https://iot3d-oss.baozhida.cn/UpImage/16816984681ddcd8f0-a60d-455d-b455-42ac83535694.png'; const imageUrlMap = new Map(); imageUrlMap.set(0, offline); imageUrlMap.set(1, online); imageUrlMap.set(2, danger); imageUrlMap.set(3, offline_x); imageUrlMap.set(4, online_x); imageUrlMap.set(5, danger_x); $(window).load(function () { InitMap() }); var trail_map = null // 高德地图轨迹 function InitMap() { if(trail_map != null) return console.log("执行了初始化") AMapLoader.load({ key: "51515b72616c71999b6607314e553953", // 申请好的Web端开发者Key,首次调用 load 时必填 version: "2.0", // 指定要加载的 JSAPI 的版本,缺省时默认为 1.4.15 }).then((AMap)=>{ trail_map = new AMap.Map("v_trail", { resizeEnable: true, // center: [ [{center}] ], // zoom: [{zoom}], features: ['bg', 'road', 'building', 'point'], // 设置地图显示要素(Features) 区域面(bg) 道路(road) 建筑物(building) 标注(point) }); trail_map.setMapStyle("amap://styles/darkblue"); // getCompany_zhi() //单击地图就清除infoWindow AMap.Event.addListener(trail_map, 'click', () => { trail_map.clearInfoWindow(); }); //双击清除所有轨迹 AMap.Event.addListener(trail_map, 'dblclick', () => { console.log('双击了地图,删除轨迹!'); trail_map.remove(listMarker); trail_map.remove(polyLine); }); }).catch((e)=>{ console.error(e); //加载错误提示 }); } GPS_fruits = new Map() // 渲染所有点 function f_v_trail() { // 创建包含4个节点的折线及文字标注 var path_gps = [ // new AMap.LngLat(116.368904,39.913423), // new AMap.LngLat(116.398258,39.904600) ]; for (var C_key in C_json.Device.DeviceList) { Device_r = C_json.Device.DeviceList[C_key] if (Device_r.T_Site.length > 2){ ps = Device_r.T_Site.split(','); path_gps.push(new AMap.LngLat(Number.parseFloat(ps[0]),Number.parseFloat(ps[1]))) } } AMap.convertFrom(path_gps, 'gps', (status, result) => { console.log("convertFrom:",result) if (result.info === 'ok') { let i_x = 0; for(let i = 0; i < C_json.Device.DeviceList.length; i++) { if (C_json.Device.DeviceList[i].T_Site.length > 2) { console.log("GPS_fruits SET",C_json.Device.DeviceList[i].T_Site, result.locations[i_x]) GPS_fruits.set(C_json.Device.DeviceList[i].T_Site, result.locations[i_x]); i_x++ } } console.log("path_gps",path_gps.length," i_x:",i_x) for (var C_key in C_json.Device.DeviceList) { Device_r = C_json.Device.DeviceList[C_key] if (Device_r.T_Site.length > 2) { AMapaddPoint(Device_r) // 轨迹加载点 } } return; } }); } // ------------- const AMapaddPoint = (sensor) => { console.log("AMapaddPoint:",sensor) if(sensor.T_type < 200){ return } let state = sensor.T_monitor; if (state == 1){ if (sensor.T_t > sensor.T_Tupper || sensor.T_rh > sensor.T_RHupper || sensor.T_t < sensor.T_Tlower || sensor.T_rh < sensor.T_RHlower) { state = 2; } } if(sensor.T_type == 200 ||sensor.T_type == 210 || sensor.T_type == 220 || sensor.T_type == 230){ state+=3 } //坐标转换 start const convertPosition = async (position) => { if(GPS_fruits.has(position)){ console.log("GPS_fruits",position,GPS_fruits.get(position)) return GPS_fruits.get(position) } const ps = position.split(','); return new Promise((resolve, reject) => { AMap.convertFrom([Number.parseFloat(ps[0]), Number.parseFloat(ps[1])], 'gps', (status, result) => { console.log("convertFrom:",result.info) if (result.info === 'ok') { GPS_fruits.set(k_, result.locations[0]); resolve(result.locations[0]); return; } }); }); }; //坐标转换, 添加标记点 start convertPosition(sensor.T_Site).then((v) => { const marker = mapAddPoint(sensor.T_sn, [v.lng, v.lat], state); // console.log("marker:",sensor.T_sn,sensor.T_name, marker) addClickShowTrack(sensor.T_sn,sensor.T_name, marker); trail_map.add(marker); trail_map.setFitView(null, false, [50, 50, 600, 600]); }); //添加坐标en //坐标转换 end }; //坐标转换 end //添加point start function mapAddPoint(sn, ps, state) { //@ts-ignore const option = { icon: new AMap.Icon({ imageSize: [40, 40], image: imageUrlMap.get(state) || offline, size: new AMap.Size(40, 40) }), position: ps }; const marker = new AMap.Marker(option); return marker; }; //添加point end function addClickShowTrack(sn,T_name, marker) { //@ts-ignore AMap.Event.addListener(marker, 'click', () => { getDeviceTaskList(sn).then((resp) => { const list = resp.Data; let content = `
`+T_name+`
`; if (list.length == 0){ content += `没有找到任务
`; }else { Array.from(list).forEach(v => { if (v === "0001-01-01 00:00:00"){ v = "现在" } content += `${v.T_Ut_start} ~ ${v.T_Ut_end}
`; }); } // Array.from(list).forEach(v => { // content += `${v.T_Ut_start} ~ ${v.T_Ut_end}
`; // }); content += '设备名称:${v.T_name}
当前温度:${v.T_t} 当前湿度: ${v.T_rh}
温度上下限:${v.T_Tlower} ~ ${v.T_Tupper} 湿度上下限:${v.T_RHlower} ~ ${v.T_RHupper}
记录时间:${v.T_time}