| | |
| | | * @Author: shuishen 1109946754@qq.com |
| | | * @Date: 2022-08-18 17:00:30 |
| | | * @LastEditors: shuishen 1109946754@qq.com |
| | | * @LastEditTime: 2023-05-11 09:36:50 |
| | | * @LastEditTime: 2023-05-16 20:44:11 |
| | | * @FilePath: \srs-police-affairs\src\components\map\index.vue |
| | | * @Description: 公用地图组件 |
| | | * |
| | |
| | | import yToolTip from './components/yToolTip.vue' |
| | | import createTools from '@/utils/tools/index' |
| | | import { mapGetters } from 'vuex' |
| | | import { getLineSpeed } from '@/utils/turfPolygon' |
| | | |
| | | import yxLayerJson from './yxlayer' |
| | | |
| | |
| | | } else { |
| | | that.layerPolygonAdd(params.layerName, params.positions, params.material, params.distanceDisplayCondition, 'polygon', params.params, params.incident, params.mouseOverIncident, params.mouseOutIncident, params.setStyle) |
| | | } |
| | | }) |
| | | |
| | | this.$EventBus.$on('layerPolygonArrowsAdd', (params) => { |
| | | that.layerPolygonArrowsAdd(params.layerName, params.positions, params.material, params.polygonName, params.params, params.incident, params.mouseOverIncident, params.mouseOutIncident, params.setStyle) |
| | | }) |
| | | |
| | | this.$EventBus.$on('layerPolylineAdd', (params) => { |
| | |
| | | }, |
| | | |
| | | /** |
| | | * 图层面添加 |
| | | * @param {*} layerName 图层名称 |
| | | * @param {*} positions 图层位置数据 |
| | | * @param {*} material 颜色 |
| | | * @param {*} distanceDisplayCondition 可见距离 |
| | | */ |
| | | layerPolygonArrowsAdd (layerName, positions, material, polygonName = '', params, incident = (e) => { }, mouseOverIncident = (e) => { }, |
| | | mouseOutIncident = (e) => { }, setStyle = {}) { |
| | | if (!layersObjcect[layerName] || layersObjcect[layerName] == null) { |
| | | this.mapAddLayer(layerName, 'VectorLayer') |
| | | |
| | | layersObjcect[layerName].allowDrillPicking = true |
| | | } |
| | | |
| | | if (polygonName == '') { |
| | | polygonName = layerName + params.id |
| | | } |
| | | |
| | | polygonObj[polygonName] = new global.DC.Polyline(positions) |
| | | |
| | | |
| | | let positionData = positions.split(';').map(item => { |
| | | return [Number(item.split(',')[0]), Number(item.split(',')[1])] |
| | | }).filter(item => { |
| | | return !item.some(it => it == 0) |
| | | }) |
| | | |
| | | polygonObj[polygonName].setStyle({ |
| | | width: (params.width / 2), |
| | | material: new global.DC.PolylineImageTrailMaterialProperty({ |
| | | color: new global.DC.Color(255, 255, 255), |
| | | speed: 20, |
| | | image: '/images/arrows.png', |
| | | repeat: { |
| | | x: (getLineSpeed(positionData) / 2), y: 1 |
| | | } |
| | | }), |
| | | clampToGround: false, |
| | | ...setStyle |
| | | }) |
| | | |
| | | polygonObj[polygonName].attrParams = params |
| | | layersObjcect[layerName].addOverlay(polygonObj[polygonName]) |
| | | }, |
| | | |
| | | /** |
| | | * 图层线添加 |
| | | * @param {*} layerName 图层名称 |
| | | * @param {*} positions 图层位置数据 |
| | |
| | | this.$EventBus.$off('mapClearLayer') |
| | | this.$EventBus.$off('layerPointAdd') |
| | | this.$EventBus.$off('layerPolygonAdd') |
| | | this.$EventBus.$off('layerPolygonArrowsAdd') |
| | | this.$EventBus.$off('layerPolylineAdd') |
| | | this.$EventBus.$off('layerWallAdd') |
| | | this.$EventBus.$off('rowLayerWallAdd') |