// /* -------------------------------------------------------------------------------------------------------------------------- */ // import { requestSolidWaste } from '@/api/request' // // /* -------------------------------------------------------------------------------------------------------------------------- */ // import '@components/BaseNav/style.css' // // /* -------------------------------------------------------------------------------------------------------------------------- */ // // 展示图片 // import defaultImg from '@components/BaseNav/magicMarker.png' // import Setting from '@components/BaseNav/voc.png' // // /* -------------------------------------------------------------------------------------------------------------------------- */ // // // 底图业务展示点 // class AddSolidWasteHelper { // /* -------------------------------------------------------------------------------------------------------------------------- */ // constructor (options) { // this.map = options.map // this.L = window.L // this.SolidWasteLayerGroup = this.L.layerGroup().addTo(this.map) // this.SolidWastePopup = null // this.L.sgis = this.L.sgis || this.L // this.solidWasteMarkersLabels = [] // this.pulseHeighLightMarker = null // } // // /* -------------------------------------------------------------------------------------------------------------------------- */ // // // 请求数据 data 为参数, 请求后台数据时 携带data参数 // requestData () { // requestSolidWaste().then(res => { // // console.log(res) // this.DrawTheSolidWasteContent(res.Result.DataInfo) // }).catch(err => { // console.log(err) // }) // } // // /* -------------------------------------------------------------------------------------------------------------------------- */ // // // 根据获取数据 画出 内容 // DrawTheSolidWasteContent (data) { // // 图标样式扩展 // var SolidWasteIcon = this.SolidWasteIcon() // // // //加载数据前如果存在图层组 那么清除掉 // if (this.SolidWasteLayerGroup) { // this.SolidWasteLayerGroup.clearLayers() // } // for (let i = 0; i < data.length; i++) { // // 经纬度 位置 // const positionX = data[i].positionX // const positionY = data[i].positionY // // // 判断 经纬度位置信息是否存在 // if (positionX != null && positionY != null) { // // 用于 判断 => 判断是否展示脉冲效果 => temp(临时) // const determineValueOne = data[i].LongDayWarning // var determineValueTwo = data[i].StorageQty // const positionArea = [positionX, positionY] // // // 图标展示 // var iconUrl = this.SolidWasteIconUrl(determineValueOne, determineValueTwo, positionArea) // var Icon = new SolidWasteIcon({ iconUrl: iconUrl }) // // var url = Icon.options.iconUrl // // // 弹出框div内容 // // var storevoinfo=null,storevodelinfo=[]; // // for(var j=0;j { // return this.SolidWastePopup.$el // }, { // className: 's-map-popup', // minWidth: 200, // closeButton: true, // autoClose: false // }) // // // 划过出现 展示数据 // marker.bindTooltip(data[i].StoragePlaceName, { // permanent: true, // offset: [0, -16], // direction: 'top', // className: '' // }) // // 点击 事件 // marker.on('click', (e) => { // try { // // console.log(e) // // this.SolidWastePopup.SetDisplayContent(content) // this.EffectOfPulse(e.target.getLatLng()) // } catch (error) { // console.log(error) // } // }) // marker.on('popupopen', (e) => { // try { // this.solidWastePpopupContent(content) // } catch (e) { // console.log(e) // } // }) // // 设置内容添加到图层 // // this.solidWasteMarkersLabels.push(marker) // this.SolidWasteLayerGroup.addLayer(marker) // } // } // } // // /* -------------------------------------------------------------------------------------------------------------------------- */ // // // 固废点击进行的 内容的设置 // SetSolidWasteContent (config, containerPopup) { // this.SolidWastePopup = containerPopup // } // // /* -------------------------------------------------------------------------------------------------------------------------- */ // // // 图标样式扩展 => 光圈 图标脉冲 // SolidWasteIcon () { // return this.L.Icon.extend({ // options: { // iconSize: [40, 40], // iconAnchor: [20, 20] // } // }) // } // // /* -------------------------------------------------------------------------------------------------------------------------- */ // // // 根据类型返回图片加载url // SolidWasteIconUrl (determineValueOne, determineValueTwo, position) { // var EffectOfChange // if (determineValueOne === 1 || determineValueTwo === 1) { // EffectOfChange = defaultImg // this.EffectOfPulse(position, 'SolidWaste', this.solidWasteMarkersLabels, this.SolidWasteLayerGroup) // } else { // EffectOfChange = Setting // } // return EffectOfChange // } // // /* -------------------------------------------------------------------------------------------------------------------------- */ // // // 脉冲效果设置实现 // EffectOfPulse (position, name, markers, layerGroup) { // // // 区分直接执行 和判断执行的不同区别 // var differentColor = '' // if (markers) { // differentColor = '#ff0000' // 有内容 ,直接为报警 执行报警的内容 // } else { // differentColor = '#98FB98' // 否则 为点击执行 // } // // 坐标数据:报警传进来的是数组 / 点击传进来的是object // var FinalPosition = position instanceof Array ? { // lat: position[0], // lng: position[1] // } : position // // 插件 效果实现 // var pulsingIcon = this.L.icon.pulse({ // iconSize: [25, 25], // color: differentColor, // fillColor: ' ' // }) // if (markers) { // markers.push(this.L.marker(FinalPosition, { icon: pulsingIcon })) // this.L.layerGroup(markers).addLayer(layerGroup) // } else { // var picGroupMarker = new this.L.FeatureGroup() // this.L.marker(FinalPosition, { icon: pulsingIcon }).addTo(picGroupMarker) // this.pulseHeighLightMarker = picGroupMarker.addTo(this.SolidWasteLayerGroup) // this.PulseCountSetting() // } // } // // /* -------------------------------------------------------------------------------------------------------------------------- */ // // // 对图标脉冲 进行set设置 // 高亮图层 // PulseCountSetting () { // var HeightLightTime = 1 // var PulseNumber = 5 // const pulseinterver = setInterval(() => { // if (PulseNumber > 0) { // PulseNumber-- // } else { // this.pulseClear(pulseinterver) // PulseNumber = HeightLightTime // } // }, 1000) // } // // /* -------------------------------------------------------------------------------------------------------------------------- */ // // // 清除 图层 // pulseClear (pulseinterver) { // clearInterval(pulseinterver) // pulseinterver = null // // if (this.SolidWasteLayerGroup) { // // this.SolidWasteLayerGroup.clearLayers() // } else { // this.SolidWasteLayerGroup = this.L.layerGroup().addTo(this.map) // } // if ((this.pulseHeighLightMarker)) { // this.pulseHeighLightMarker.remove() // } // } // // /* -------------------------------------------------------------------------------------------------------------------------- */ // // // 点击业务内容 弹出数据的数据进行修改 // solidWastePpopupContent (data) { // console.log(data) // const html = data.StoragePlaceName // return html // } // // /* -------------------------------------------------------------------------------------------------------------------------- */ // } // // export default AddSolidWasteHelper // // // // //