Riku
2025-06-09 2547159bbd781c8e1a41ecc939385396c85f9766
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,62 @@
          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
  },
  drawMarker(title, lnglat, img) {
    const marker = new AMap.Marker({
      position: new AMap.LngLat(lnglat[0], lnglat[1]), // 经纬度对象,也可以是经纬度构成的一维数组[116.39, 39.9]
      title: title,
      // offset: new AMap.Pixel(-13, -12),
      // anchor: 'center',
      icon: new AMap.Icon({
        image: img,
        imageSize: [30, 30]
      })
    })
    map.add(marker)
  }
}