riku
2025-01-03 68ba3376731aa7a5760ba5fce1dc6ba0c80982b4
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
/* eslint-disable no-undef */
import { map, satellite } from './index_old';
import { useToolboxStore } from '@/stores/toolbox';
import { DialogUtil } from '@/utils/map/dialog';
 
const toolboxStore = useToolboxStore();
 
/**
 * 坐标拾取鼠标点击回调事件
 */
var _locationMarker, _locationText;
function _coorPickListener(e) {
  var text = `经度: ${e.lnglat.getLng()}<br/>纬度: ${e.lnglat.getLat()}`;
  if (_locationMarker == undefined) {
    var textM = new AMap.Text({
      style: {
        'font-size': '12px'
      },
      text: text,
      position: e.lnglat,
      offset: new AMap.Pixel(0, 30)
    });
 
    var marker = new AMap.Marker({
      position: e.lnglat
      // icon: icon,
      // anchor: 'top-center',
      // content: '<i class="fa fa-map-marker fa-2x" style="color: #E6DB06;" aria-hidden="true"></i>'
    });
    map.add(marker);
    map.add(textM);
    _locationMarker = marker;
    _locationText = textM;
  } else {
    _locationMarker.setPosition(e.lnglat);
    _locationText.setPosition(e.lnglat);
    _locationText.setText(text);
  }
}
 
export default {
  /**
   * 开关地物标注
   * @param {boolean} value
   */
  toggleFeatures(value) {
    value
      ? map.setFeatures(['bg', 'road', 'point', 'building'])
      : map.setFeatures(['bg', 'road']);
    toolboxStore.featuresStatus = value;
  },
 
  /**
   * 开关卫星地图
   * @param {boolean} value
   */
  toggleSatellite(value) {
    value ? satellite.show() : satellite.hide();
    toolboxStore.satelliteStatus = value;
  },
 
  /**
   * 开关控制罗盘
   * @param {boolean} value
   */
  toggleControlbar(value) {
    // value ? controlbar.show() : controlbar.hide();
    value ? $('.amap-controlbar').show() : $('.amap-controlbar').hide();
    toolboxStore.controlbarStatus = value;
  },
 
  /**
   * 开关坐标拾取
   * @param {boolean} value
   */
  toggleCoorPicking(value) {
    if (value) {
      map.on('click', _coorPickListener);
    } else {
      map.off('click', _coorPickListener);
      map.remove([_locationMarker, _locationText]);
      _locationMarker = undefined;
      _locationText = undefined;
    }
    toolboxStore.coorPickStatus = value;
  },
 
  /**
   * 开关数据弹框
   */
  toggleDataDialogStatus(value) {
    toolboxStore.dataDialogStatus = value;
    if (value) {
      DialogUtil.openWindow();
    } else {
      DialogUtil.closeWindow();
    }
  },
 
  /**
   * 开关溯源清单
   */
  toggleSceneSearch(value) {
    toolboxStore.sceneSearchStatus = value;
  }
};