riku
2025-06-09 38ff09bd2a638bc43a365efe0390cc3510d62e68
src/utils/map/marks.js
@@ -3,8 +3,10 @@
 */
import { map, AMap } from './index'
import util from './util'
var _massMarks = undefined
var _labelMarks = undefined
export default {
  /**
@@ -70,12 +72,16 @@
    map.add(massMarks)
  },
  createLabelMarks(img, dataList) {
  createLabelMarks(img, dataList, onClick) {
    if (_labelMarks) {
      map.remove(_labelMarks)
      _labelMarks = undefined
    }
    const layer = new AMap.LabelsLayer({
      zooms: [3, 20],
      zIndex: 1000,
      // 开启标注避让,默认为开启,v1.4.15 新增属性
      collision: true,
      collision: false,
      // 开启标注淡入动画,默认为开启,v1.4.15 新增属性
      animation: true
    })
@@ -96,36 +102,48 @@
          image: img,
          // clipOrigin: [14, 92],
          // clipSize: [50, 68],
          size: [30, 30],
          size: [20, 20],
          anchor: 'bottom-center',
          angel: 0,
          retina: true
        },
        text: {
          content: data.sceneName,
          // content: data.sceneName,
          direction: 'top',
          offset: [0, -5],
          style: {
            fontSize: 16,
            fontWeight: 'normal',
            fontSize: 12,
            // fontWeight: 'normal',
            fillColor: '#fff',
            strokeColor: '#333',
            strokeWidth: 0,
            backgroundColor: '#122b54a9'
            // strokeColor: '#333',
            // strokeWidth: 0,
            backgroundColor: '#14428b'
          }
        }
      }
      curData.extData = {
        index: i
        data: data
      }
      var labelMarker = new AMap.LabelMarker(curData)
      labelMarker.on('click', (event) => {
        console.log(labelMarker.getExtData())
        console.log(event)
        util.setFitView([event.target])
        // util.setZoomSmall()
        // util.setCenter(event.lnglat)
        // 自定义点击事件
        if (typeof onClick === 'function') {
          onClick(event.data.data.extData.data)
        }
      })
      // markers.push(labelMarker);
      layer.add(labelMarker)
    }
    _labelMarks = layer
    return layer
  },