/** * 废气 */ const AnimalService = require('../service/AnimalService').default // const AjaxUtils = require('../../../utils/AjaxUtils').default // 区分不同类型 使用不同img // const ImgBlue = '/assets/images/map/exhaust/fq_blue.png' // const ImgGray = '/assets/images/map/exhaust/fq_gray.png' const ImagGreen = '/assets/images/map/exhaust/fq_green_new.png' // const ImagBright = '/assets/images/map/exhaust/fq_bright_green.png' const mapApi = require('../../../api/mapApi').default const publicBounced = require('../../BaseNav/PublicBounced/PublicBounced').default module.exports = function () { /** * 返回marker对象数组 * @param L leaflet对象 */ this.init = async (layer, L) => { this.animalService = new AnimalService({ L: L, layer: layer }) const res = await mapApi.getWasteGas() const data = res.Result.DataInfo || {} // console.log(data) for (let i = 0; i < data.length; i++) { // 经纬度 位置 const positionX = data[i].Latitude const positionY = data[i].Longitude // 定义类型 用来区分数据 const ContrLevel = data[i].ContrLevel var iconUrl = this.differentTypes(ContrLevel) // const marker = L.canvasMarker([positionX, positionY], { // img: { // // url: 'assets/images/map/marker-icon.png', // url: iconUrl, // size: STYLES.ICON_SIZE // } const marker = L.marker([positionX, positionY], { test: data[i], icon: L.icon({ iconUrl: iconUrl, iconSize: [20, 35], iconAnchor: [10, 20] }) }) layer.addLayer(marker) // layer.addLayer(L.marker([positionX, positionY], {})) } } this.bindTooltip = (layer) => { return layer.options.test.Name } this.clickListener = async (e) => { // console.log(e) this.animalService.pulseEffect(e.latlng) const dataValue = { StoragePlaceId: e.layer.options.test.StoragePlaceId } const result = await mapApi.getWasteGasDetails(dataValue) // console.log(result.Result.DataInfo) const PublicBounced = window.Vue.extend(publicBounced) const instance = new PublicBounced() instance.setGasData(e.layer.options.test, result.Result.DataInfo, 'feiqi') // console.log(e.layer.options.test) instance.$mount() document.body.appendChild(instance.$el) this.setPanTo(e.latlng, 240) } // 不同类型图片加载 this.differentTypes = (ContrLevel) => { var effectOfChange /* if (ContrLevel === 1) { effectOfChange = ImgBlue } else if (ContrLevel === 2) { */ effectOfChange = ImagGreen // } else if (ContrLevel === 3) { // effectOfChange = ImagBright // } else { // effectOfChange = ImgGray // } return effectOfChange } this.setPanTo = (pos, value) => { var position = pos position = window.map.latLngToLayerPoint(position) position.y += value position = window.map.layerPointToLatLng(position) window.map.flyTo(position) } }